|
|
仕様変更および追加情報 |
特記事項
Webアプリケーションのタイムアウトエントリー(ENTRY TIME_OUT();)内でEXITコマンドは使用しないでください。タイムアウトエントリー内で使用すると、DSMがその後行う処理(変数のクリアやDB接続の切断など)が実行されず、次のアプリケーションに影響を及ぼす可能性があります。
なお、すべてのバージョンにおいて、タイムアウトエントリー内でのEXITコマンドは使用禁止です。
マルチスレッド対応
Java I/F外部関数
XML操作外部関数
SOAP機能外部関数
Apache DSO対応(NOMAD for UNIX Ver6.0)
Ver5.11までサポートしていた「分散機能」は、Ver6.0のマルチスレッド対応によりサポート外となりますのでご注意ください。
NOMAD for NT Serverのバックエンドモードでは、WAITを発行しても処理の完了を待機しないように変更しました。これは、Ver5.11以前の不具合に対応したためです。そのため、処理の完了を待機する場合は「WAIT QUIET」を発行してください。
NOMAD for UNIXのマルチスレッド動作時、アプリケーションは1つのB/NOMADプロセスに対して1つのキュー管理プログラムにしか接続できません。つまり、異なるセッション(スレッド)でも、異なるキュー管理プログラムに接続することができません。これを回避するにはリソース管理機能を利用し、異なるキュー管理プログラムに接続するアプリケーションは、異なるB/NOMADで実行するように予約してください。
上記の仕様変更を除き、Ver5.11のアプリケーションは変更せずにVer6.0上で使用可能です。ただしマルチスレッド動作の場合、作業ディレクトリの階層構造が以前のバージョンと異なるため、作業ディレクトリからの相対パスでファイルを指定するようなアプリケーションは、変更が必要になります(「マルチスレッド対応」を参照してください」)。
Ver5.1以前では、.udbファイル(NOMADが使用する情報を格納するテンポラリ的NDBファイル)が存在する場合は再利用していたため、内容がNOMADの期待するものでない場合(例:空ファイル)、標準出力エラーとともにQUITしていました。
しかし、この仕様ではNOMADがいつまでも正常に動作しませんので、NOMAD起動時に.udbファイルが存在する場合は強制削除する仕様に変更しました。
Ver5.1以前のIntraNomadおよびNOMAD for NT Serverでは自らがOPENしているファイルをFILE DELETEすることが可能でしたが、Ver5.11からは不可になりました。この際返されるエラーコードは8009です。
Microsoftのデーターベースサーバー「SQL Server 2000」に対応しました。
文字列を半角から全角に変換する外部関数「HAN2ZEN」が拡張され、「HAN2ZENV」となりました。
引数と戻り値がA型からV型に変更されたため、以前の「HAN2ZEN」とは互換性がありません。
以前の「HAN2ZEN」は、Windows/UNIX共に「fc3glapi」モジュールに統合されています。
NOMAD Ver5.0までは、NOMADの外部ファンクションを使用したライブラリ(モジュール)は、プラットフォームごとにそのファイル構成が異なっていました。このため、NOMADプロシージャを他のプラットフォームに持っていく場合には、プロシージャのソースの変更が必要でした(FUNCTIONコマンドで指定するファイル名が、プラットフォームごとで異なっていたためです。また、NOMAD Ver5.0以前のAIXでは、1ライブラリに対し1ファンクションの定義しかできませんでした)。
NOMAD Ver5.1では、サポートされるプラットフォームにおいて、1ライブラリに複数のファンクションを定義できるようになり、FUNCTIONコマンドのファイル名指定の記述を統一することができるようになりました。
また、Ver5.1において、サポートプラットフォームでのファイル名の統一を行いました。
これに伴い、ファイル名が以下のように変更されています。
Windows環境
Ver5.0以前
(ファイル名)Ver5.1以降
(ファイル名)内容 fc3glapi.dll fc3glapi.dll 半角から全角への文字変換(HAN2ZEN)
引数・戻り値はA型です。--- han2zenv.dll 半角から全角への文字変換(HAN2ZENV)
引数・戻り値はV型です。nomfcalc.dll nomfcalc.dll(変更なし) 高精度浮動小数点乗算(ef_multcut/ef_multrnd/ef_multrvl) fcmqfunc.dll fcmqfunc.dll(変更なし) MQ関連(mq***)
AIX環境
Ver5.0以前
(ファイル名)Ver5.1以降
(ファイル名)内容 han2zen fc3glapi 半角から全角への文字変換(HAN2ZEN)
引数・戻り値はA型です。--- han2zenv 半角から全角への文字変換(HAN2ZENV)
引数・戻り値はV型です。nommultcut
nommultrnd
nommultrvlnomfcalc 高精度浮動小数点乗算(ef_multcut/ef_multrnd/ef_multrvl) mq*** fcmqfunc MQ関連(mq***)
Solaris / Linux環境
Ver5.0以前
(ファイル名)Ver5.1以降
(ファイル名)内容 han2zen fc3glapi 半角から全角への文字変換(HAN2ZEN)
引数・戻り値はA型です。--- han2zenv 半角から全角への文字変換(HAN2ZENV)
引数・戻り値はV型です。nomfcalc nomfcalc(変更なし) 高精度浮動小数点乗算(ef_multcut/ef_multrnd/ef_multrvl) nommq fcmqfunc MQ関連(mq***)
◆ ただし、既存のアプリケーションの互換性を保つため、旧来のファイルも残しています。
指定した時間の間、処理を停止させるSLEEPコマンドを追加しました。
これにより、アプリケーション内でループ等によるウェイトで占有されてしまうCPU時間を抑えることができます。
近年注目を浴びつづけている新しいオペレーションシステム「Linux」に対応しました。
対応プラットフォーム、制限事項は以下の通りです。【対応プラットフォーム】
カーネル Ver2.2.12以上、glibc Ver2.1.2以上。
動作検証済みプラットフォーム
- Turbo Linux Server6.1J
- Turbo Linux Workstation 6.0J
- Redhat Linux 6.2J
【仕様・制限事項】
- 日本語以外の言語の非サポート
オプションLANGUAGEはJAPANESEのみサポートします。
JAPANESE以外の値を設定してもJAPANESEと同様の扱いとなります。
- 対応日本語コードはEUCコードのみ
本バージョンにおいては、対応日本語コードはEUCです。
- 他プラットフォームとのバイナリファイル非互換
他OSとのバイナリファイル(NDB、NPCやNOMAD上で作成されたバイナリファイル)の互換性を保証しません。
- 同時ファイルオープン数の制限
異なるファイルの同時オープン数は、システム上で動作するNOMAD全体で99までです。(Solarisと同様)
従来のWindows 95、Windows 98、Windows NTに加え、Windows 2000にも対応しました。
データベースのインターフェースとして、IBM社の「DB2 UDB(ユニバーサル・データベース)」に対応しました。
浮動小数点演算(乗算)において、16ケタ以上の実数値を使用した演算では、丸め誤差や切り捨て誤差が発生し、正確な答えが得られません。
この問題を解決するために、内部的に16ケタ以上の乗算を行う関数を追加しました。※これらは外部関数です。実行には、「nomfcalc.dll」(Solaris/Linuxでは「nomfcalc」、AIXでは「nommultcut/nommultrvl/nommultrnd」)ファイルが必要です。
【概要】
EF_MULTCUT関数は乗算を行い、指定の小数点位置での切り捨てを行います。
EF_MULTRVL関数は乗算を行い、指定の小数点位置での切り上げを行います。
EF_MULTRND関数は乗算を行い、指定の小数点位置での四捨五入を行います。【書式】
EF_MULTCUT (文字式1, 文字式2, 文字式3, 数式 ) ;
EF_MULTRVL (文字式1, 文字式2, 文字式3, 数式 ) ;
EF_MULTRND (文字式1, 文字式2, 文字式3, 数式 ) ;各パラメータの詳細は、EF_MULTCUT/EF_MULTRVL/EF_MULTRND関数を参照してください。
ファイルアクセスを高速化するために、READコマンドを拡張しました。
【概要】
ファイルIDからSET節で指定された形式でデータを読み込み、INSERT節で指定されたマスターへ挿入するか、もしくはCALL節で指定されたプロシージャを呼び出します。
【書式】
READ ファイルID
[
SET &項目名/&変数名 [ FORM 入力フォーマット ] ...
{
INSERT マスター名
または、
CALL プロシージャ名 [ (式 [ ,式 ] ... ) ] ;
}
] ;
※各パラメータの詳細は、READ、SET、CALLコマンドを参照してください。
NOMAD for NT Server、NOMAD for UNIXの性格上、同一ディレクトリで同一ファイルに同時にアクセスする可能性があり、それをサポートするためにファイル排他制御機能を実装しました。文法上は従来からの変更はありません。
動作についてはFILE OPENコマンドを参照してください。
Oracleからのエラーメッセージ、エラー番号を格納するために以下のようなシステム&変数が追加されました。
変数名 ユーザー変更 内部フォーマット 初期値 内容 &ORAERMSG 不可 V2047 N/A Oracleからのエラーメッセージを格納します。 &ORAERNUM 不可 I2 N/A Oracleからのエラー番号を格納します。
Oracleからのエラーメッセージのうち、NOMAD DBに対応するエラーが存在しない場合は、すべてトランザクションエラー(7028)として処理されます。