クライアント用の動作環境ファイルには、アプリケーションの実行に必要な環境情報として実行パラメタを記述します。
実行パラメタは、以下に示す種類があります。
分類 | 実行パラメタ | 概要 | 記述数 | 記述の省略 |
---|---|---|---|---|
通信 | リモートのサーバと通信するための情報 | 複数可 | リモートのデータベースにアクセスする場合省略不可。ローカルの場合は指定できない。 | |
通信時の待ち時間 | 単一 | 省略可能 | ||
文字データ処理 | 文字コードの変換をクライアントで行うか否か | 単一 | 省略可能 | |
アプリケーション中の文字のコード | 単一 | 省略可能 | ||
アプリケーション中の日本語文字のコード | 単一 | 省略可能 | ||
排他 | 使用するDSOの占有の単位、占有モード | 単一 | 省略可能 | |
占有待ちの方式 | 単一 | 省略可能 | ||
占有の単位を行とする | 単一 | 省略可能 | ||
デバッグ | SQL_SNAP機能を利用するか否か | 単一 | 省略可能 |
■通信に関する実行パラメタ
◆SERVER_SPEC
SERVER_SPEC = (通信方法,SQLサーバ名[,[データ資源名][,[ホスト名][,[ポート番号]]]])
CONNECT文でSQLサーバ名を指定した場合、サーバとの通信状態を確立するために必要な情報を記述します。このため、CONNECT文で接続するSQLサーバ名は、アプリケーションの実行時にすべてSERVER_SPECに記述しておく必要があります。ローカルのデータベースだけにアクセスする場合は、この実行パラメタは指定しません。
なお、通信方法によって、記述形式が異なります。
性能を重視した通信(RDB2_TCP)の場合
SERVER_SPEC = (RDB2_TCP,SQLサーバ名,データ資源名,ホスト名,ポート番号)
グローバルサーバへの通信(RDA)の場合
SERVER_SPEC = (RDA,SQLサーバ名,データ資源名,ホスト名,ポート番号)
以下の中から1つを選択します。
RDB2_TCP: データベースシステムへダイレクトに結合する。
RDA : RDA-SVを経由してグローバルサーバのデータベースシステムと結合する。
CONNECT文で指定したSQLサーバ名を記述します。SQLサーバ名は、SERVER_SPECで指定されたデータ資源に対して接続する際の名前を、利用者が任意に指定します。
サーバ上に存在するデータ資源名(アクセス環境名)を指定します。通信方法がRDB2_TCPの場合は、データベース名を指定します。
ホスト名管理ファイルに設定した18バイト以内のホスト名を指定します。
サーバのポート番号を指定します。
通信方法がRDB2_TCPの場合、システム用の動作環境ファイルにおいて、MAX_CONNECT_TCPを必ず設定してください。
参照
ポート番号の詳細については、“B.2 ネーミングサービスの起動”の<port_no>を参照してください。
◆WAIT_TIME
WAIT_TIME = (待ち時間)
サーバからのデータ受信の待ち時間を指定します。
WAIT_TIMEで指定された時間内に、サーバからのデータが受信できなかった場合には、実行中のSQL文はエラーとなり、コネクションは切断されます。
0を指定した場合は、データが受信できるまで待ちます。単位は秒です。
なお、本実行パラメタは、トランザクションモニタ配下では指定できません。
待ち時間を0~32767で指定します。省略した場合は、0が指定されたとみなします。
■文字データ処理に関する実行パラメタ
◆CHARACTER_TRANSLATE
CHARACTER_TRANSLATE = ({CLIENT | SERVER})
データベースシステムの文字コード系が、アプリケーションで使用している文字コード系と異なる場合、コード変換をクライアントで行うか、サーバで行うかを指定します。省略した場合は、SERVERが指定されたとみなします。サーバの負荷を少しでも減らしたい場合は、クライアントで行うよう指定します。
クライアントでコード変換を行う場合に指定します。
サーバでコード変換を行う場合に指定します。
◆CHAR_SET
CHAR_SET = ({EUC_S90|EUC_U90|EUC|SJIS|UTF8})
文字列型のホスト変数、文字列型の動的パラメタ、および、SQLMSGの文字コード系を指定します。この指定は、アプリケーションをC言語で記述している場合に有効です。
データベースに格納される文字列型データの文字コード系とCHAR_SETとの関係を以下に示します。
データベースの文字コード系 | CHAR_SETの指定 | ||||
---|---|---|---|---|---|
EUC_S90 | EUC_U90 | EUC | SJIS | UTF8 | |
日本語EUCコードのS90コード | ◎ | × | ○ | ○ | |
日本語EUCコードのU90コード | × | ◎ | ○ | ○ | |
シフトJISコード | ○ | ○ | ◎ | ○ | |
UNICODE | ○ | ○ | ○ | ◎ |
◎:指定可能(省略値)
○:指定可能
×:指定不可能
アプリケーションをCOBOLで記述している場合は、本パラメタは無視され、以下のようになります。なお、アプリケーションの実行時のロケールは、OSのデフォルトロケールと同じでなければなりません。
実行時のロケールが日本語EUCコードのS90コードの場合はEUC_S90
実行時のロケールが日本語EUCコードのU90コードの場合はEUC_U90
実行時のロケールがシフトJISコードの場合はSJIS
実行時のロケールがUNICODEの場合はUTF8
ホスト変数内文字列のデータの文字コード系が日本語EUCコードのS90コードの場合に指定します。
ホスト変数内文字列のデータの文字コード系が日本語EUCコードのU90コードの場合に指定します。EUCは下位互換として存在します。
ホスト変数内文字列のデータの文字コード系がシフトJISコードの場合に指定します。
ホスト変数内文字列のデータの文字コード系がUNICODEの場合に指定します。
◆NCHAR_CODE
NCHAR_CODE = ({EUC_S90|EUC_U90|EUC|COBOL_EUC_S90|COBOL_EUC_U90|COBOL_EUC|SJIS|UTF8|UCS2|UCS2B })
各国語文字列型のホスト変数、各国語文字列型の動的パラメタの文字コード系を指定します。この指定は、アプリケーションをC言語で記述している場合に有効です。
アプリケーションをC言語で記述している場合の、CHAR_SETとNCHAR_CODEの関係を以下に示します。
| NCHAR_CODEの指定 | |||||||||
---|---|---|---|---|---|---|---|---|---|---|
CHAR_SETの指定 | EUC_S90 | COBOL_EUC_S90 | EUC_U90 | EUC | COBOL_EUC_U90 | COLBOL_EUC | SJIS | UTF8 | UCS2 | UCS2B |
EUC_S90 | ◎ | ○ | × | × | × | |||||
EUC_U90 | × | ◎ | ○ | × | × | |||||
EUC | ||||||||||
SJIS | × | × | ◎ | × | ||||||
UTF8 | × | × | × | ◎ | ○ |
◎:有効(省略値)
○:有効
×:無効(指定値を無視して省略値になります)
データベースに格納される各国語文字列型データの文字コード系とNCHAR_CODEとの関係を以下に示します。
データベースの文字コード系 | NCHAR_CODEの指定 | |||||||||
---|---|---|---|---|---|---|---|---|---|---|
EUC_S90 | COBOL_EUC_S90 | EUC_U90 | EUC | COBOL_EUC_U90 | COLBOL_EUC | SJIS | UTF8 | UCS2 | UCS2B | |
日本語EUCコードのS90コード | ◎ | × | ○ | ○ | ||||||
日本語EUCコードのU90コード | × | ◎ | ○ | ○ | ||||||
シフトJISコード | ○ | ○ | ◎ | ○ | ||||||
UNICODE | ○ | ○ | ○ | ◎ |
◎:指定可能(省略時は、CHAR_SETに設定される値かCHAR_SETの省略値)
○:指定可能
×:指定不可能
アプリケーションをCOBOLで記述している場合は、本パラメタは無視され、以下のようになります。なお、アプリケーションの実行時のロケールは、OSのデフォルトロケールと同じでなければなりません。
実行時のロケールが日本語EUCコードのS90コードの場合はCOBOL_EUC_S90
実行時のロケールが日本語EUCコードのU90コードの場合はCOBOL_EUC_U90
実行時のロケールがシフトJISコードの場合はSJIS
実行時のロケールがUNICODEの場合は、UCS2B
ホスト変数内文字列のデータの文字コード系が日本語EUCコードのS90コードの場合に指定します。
ホスト変数内文字列のデータの文字コード系が日本語EUCコードのU90コードの場合に指定します。EUCは下位互換として存在します。
ホスト変数内文字列のデータの文字コード系が日本語EUCコードのS90コードのCOBOLの内部表現形式(COBOL_EUC)の場合に指定します。
ホスト変数内文字列のデータの文字コード系が日本語EUCコードのU90コードのCOBOLの内部表現形式(COBOL_EUC)場合に指定します。COBOL_EUCは下位互換として存在します。
ホスト変数内文字列のデータの文字コード系がシフトJISコードの場合に指定します。
ホスト変数内文字列のデータの文字コード系がUNICODEのUTF-8コードの場合に指定します。
ホスト変数内文字列のデータの文字コード系がUNICODEのUCS-2コードの場合に指定します。
ホスト変数内文字列のデータの文字コード系がUNICODEのUCS-2コードのバイトスワップ形式の場合に指定します。
■排他に関する実行パラメタ
◆DSO_LOCK
DSO_LOCK = (DSO名[/[P][{占有モード}]][,DSO名[/[P][{占有モード}]]・・・])
アプリケーションで使用するDSOおよびその占有の単位、占有モードを指定します。DSO_LOCKが指定された場合、SET TRANSACTION文および動作環境ファイルのDEFAULT_ISOLATIONは指定できません。
また、システム用およびクライアント用の動作環境ファイルにR_LOCK=YESを指定することはできません。
アプリケーションで使用するDSO名を以下の形式で指定します。
データベース名.DSO名
DSOの占有の単位をページとします。省略した場合は、占有の単位はDSIとなります。
占有のモードとして以下のいずれかを指定します。省略した場合は、EXが指定されたとみなします。
EX: 非共有モードの排他を行います。
SH: 共有モードの排他を行います。
◆ISOLATION_WAIT
ISOLATION_WAIT = ({WAIT | REJECT})
あるトランザクションで資源にアクセスしようとしたとき、別のトランザクションがその資源を占有していた場合に、資源の占有が解除されるまで待つか否かを指定します。省略した場合は、WAITが指定されたとみなします。
資源の占有が解除されるまで待ちます。
エラーとしてアプリケーションに復帰します。
◆R_LOCK
R_LOCK = ({YES | NO})
占有の単位を行とするかどうかを指定します。省略した場合は、システム用の動作環境ファイルにおけるR_LOCKの指定に従います。
占有の単位を行とします。このパラメタを指定した場合、クライアント用およびサーバ用の動作環境ファイルにDSO_LOCKパラメタを指定することはできません。
占有の単位は、DSO_LOCKの指定に従います。このパラメタを指定し、かつDSO_LOCKが指定されていない場合は、Symfoware/RDBによって自動的に占有の単位が選択されます。
注意
動作環境ファイルのR_LOCKを省略した場合、DEFAULT_ISOLATIONまたはSET TRANSACTION文にREPEATABLE_READを指定しても、独立性水準はSERIALIZABLEになります。
動作環境ファイルにR_LOCK=YESを指定した場合、DEFAULT_ISOLATIONまたはSET TRANSACTION文にSERIALIZABLEを指定しても、独立性水準はREPEATABLE READになります。
■デバッグに関する実行パラメタ
◆SQL_SNAP
SQL_SNAP = ({ON | OFF}[,[スナップファイル名][,[出力レベル][,[繰り返し幅]]]])
SQL_SNAP機能を利用するかどうかを指定します。省略した場合は、OFFが指定されたとみなします。
SQL_SNAP機能は、アプリケーションが実行したSQL文の情報をファイルに出力する機能です。
SQL_SNAP機能を利用する場合に指定します。
SQL_SNAP機能を利用しない場合に指定します。
SQL_SNAP機能が出力するSQL文の実行情報の出力先ファイル名を指定します。ファイル名を省略した場合は、アプリケーションのファイル名の拡張子を“.SNP”に変更したものとなります。ファイル名にディレクトリの指定がない場合は、カレントディレクトリが指定されたものとみなします。指定されたファイルがすでに存在する場合は、情報を追加して出力します。
出力する情報のレベルとして、1または2を指定します。省略した場合は、2が指定されたとみなします。出力レベルの指定と出力情報の対応については、“表C.4 出力レベルの指定と出力情報の対応”を参照してください。
出力する情報の繰り返し幅として、1から32767を指定します。1つのSQL文の出力を1とします。繰り返し幅を指定した場合は、その幅でサイクリックに情報を出力します。省略した場合は、先頭からの情報をすべて出力します。
出力する情報 | 出力レベル | |
---|---|---|
1 | 2 | |
アプリケーション名 | ○ | ○ |
SQL文 (注) | ○ | ○ |
カーソル情報 | ○ | ○ |
ホスト変数情報 | - | ○ |
SQLSTATE | ○ | ○ |
SQL文の処理時間 | ○ | ○ |
メッセージ | ○ | ○ |
注)SQL文名だけ出力します。
なお、出力されるSQL文は、アプリケーションに記述したものと同一ではありません。翻訳・結合編集時に加工したものが出力されます。
■レベル1を指定した場合
出力レベルに1を指定した場合は、以下の情報が出力されます。
SQL-SNAP START 14:01:13 (1) 04/18 (2) APPLICATION : sample1 (3) STATEMENT : CONNECT (4) SQLSTATE : 00000 (5) SQLMSG : JYP2001I 正常に終了しました. (6) SQL-SNAP END 14:01:16 (7) (00:00:03.204000) (8) SQL-SNAP START 14:01:16 04/18 APPLICATION : sample1 STATEMENT : OPEN (9) CURSOR NAME : 会社名取出 (10) CURSOR : SELECT DISTINCT 会社名 FROM BUSINESS.取引先会社,BUSINESS.発注,BUS INESS.在庫 WHERE 取引先会社.取引先番号=発注.取引先番号 AND 取引製 品番号=製品番号 AND 製品名=? (11) SQLSTATE : 00000 SQLMSG : JYP2001I 正常に終了しました. SQL-SNAP END 14:01:17 (00:00:00.867000) SQL-SNAP START 14:01:17 04/18 APPLICATION : sample1 STATEMENT : FETCH (12) CURSOR NAME : 会社名取出 (13) SQLSTATE : 00000 SQLMSG : JYP2001I 正常に終了しました. SQL-SNAP END 14:01:17 (00:00:00.055000) : |
(1) SQL文の実行を開始した時刻(時:分:秒)を示します。
(2) SQL文の実行を開始した日付(月/日)を示します。
(3) 実行したアプリケーションの名前を示します。
(4) 実行したSQL文の種類を示します。ここでは、CONNECT文を実行したことを示します。
(5) SQL文の実行後にSQLSTATEに通知された状態コードを示します。ここでは、CONNECT文の実行結果として、状態コード“00000”がSQLSTATEに通知されたことを示します。
(6) SQL文の実行後にSQLMSGに通知されたメッセージ内容を示します。ここでは、CONNECT文の実行結果として、メッセージ“JYP2001I 正常に終了しました.”がSQLMSGに通知されたことを示します。
(4)~(6)は、1つのSQL文の実行情報です。1つのSQL文の実行情報は、SQL-SNAP START と SQL-SNAP ENDの間に表示されます。
(7) SQL文の実行を終了した時刻(時:分:秒)を示します。
(8) SQL文の開始から終了までの経過時間(時:分:秒)を示します。
(9) カーソルのOPEN文を実行したことを示します。
(10) オープンしたカーソル名を示します。ここでは“会社名取出”を示します。
(11) カーソルの探索条件を示します。
(12) FETCH文を実行したことを示します。
(13) FETCH文を実行したカーソル名を示します。ここでは“会社名取出”を示します。
■レベル2を指定した場合
出力レベルに2を指定した場合は、以下の情報が出力されます。
SQL-SNAP START 14:01:13 (1) 04/18 (2) APPLICATION : sample1 (3) STATEMENT : CONNECT (4) CONNECTION INFORMATION (5) 001 : <SQL-SERVER> : SV1 002 : <USER-NAME> : USER1/PASS1 SQLSTATE : 00000 (6) SQLMSG : JYP2001I 正常に終了しました. (7) SQL-SNAP END 14:01:16 (8) (00:00:03.204000) (9) SQL-SNAP START 14:01:16 04/18 APPLICATION : sample1 STATEMENT : OPEN (10) CURSOR NAME : 会社名取出 (11) CURSOR : SELECT DISTINCT 会社名 FROM BUSINESS.取引先会社,BUSINESS.発注,BUS INESS.在庫 WHERE 取引先会社.取引先番号=発注.取引先番号 AND 取引製 品番号=製品番号 AND 製品名=? (12) INPUT VARIABLE (13) 001 : ATTRIBUTE NCHAR(10) (14) 0000(00000) a5c6a5ec a5d3a1a1 a1a1a1a1 a1a1a1a1 * テレビ * (14) 0010(00016) a1a1a1a1 * * (14) SQLSTATE : 00000 SQLMSG : JYP2001I 正常に終了しました. SQL-SNAP END 14:01:17 (00:00:00.867000) SQL-SNAP START 14:01:17 04/18 APPLICATION : sample1 STATEMENT : FETCH (15) CURSOR NAME : 会社名取出 (16) OUTPUT VARIABLE (17) 001 : ATTRIBUTE NCHAR(10) (18) 0000(00000) a5a2a5a4 a5c7a5a2 bea6bbf6 a1a1a1a1 * アイデア商事 * (18) 0010(00016) a1a1a1a1 * * (18) SQLSTATE : 00000 SQLMSG : JYP2001I 正常に終了しました. SQL-SNAP END 14:01:17 (00:00:00.055000) : |
(1) SQL文の実行を開始した時刻(時:分:秒)を示します。
(2) SQL文の実行を開始した日付(月/日)を示します。
(3) 実行したアプリケーションの名前を示します。
(4) 実行したSQL文の種類を示します。ここでは、CONNECT文を実行したことを示します。
(5) 実行したCONNECT文のコネクション情報を示します。ここでは、コネクション情報として、SQLサーバ名“SV1”およびユーザ指定“USER1/PASS1”を示します。
(6) SQL文の実行後にSQLSTATEに通知された状態コードを示します。ここでは、CONNECT文の実行結果として、状態コード“00000”がSQLSTATEに通知されたことを示します。
(7) SQL文の実行後にSQLMSGに通知されたメッセージ内容を示します。ここでは、CONNECT文の実行結果として、メッセージ“JYP2001I 正常に終了しました.”がSQLMSGに通知されたことを示します。
(4)~(7)は、1つのSQL文の実行情報です。1つのSQL文の実行情報は、SQL-SNAP START と SQL-SNAP ENDの間に表示されます。
(8) SQL文の実行を終了した時刻(時:分:秒)を示します。
(9) SQL文の開始から終了までの経過時間(時:分:秒)を示します。
(10) カーソルのOPEN文を実行したことを示します。
(11) オープンしたカーソル名を示します。ここでは“会社名取出”を示します。
(12) カーソルの探索条件を示します。
(13) カーソルに対する入力のホスト変数を示します。
(14) カーソルに対する入力のホスト変数の属性とデータの内容を16進数で示します。ここでは、ホスト変数“製品名”の属性とデータを示します。
(15) FETCH文を実行したことを示します。
(16) FETCH文を実行したカーソル名を示します。ここでは“会社名取出”を示します。
(17) FETCH文により位置づけた行に対する出力のホスト変数を示します。
(18) FETCH文に指定した出力のホスト変数の属性とデータの内容を16進数で示します。ここでは、ホスト変数“会社名”の属性と内容を示します。