システム関数
VGLib.connectionService には、以下の 2 つの利点があります。
- プログラム実行時にデータベースへの接続または切断を可能にします。
- データベースのプロダクト名とリリース・レベルを受け取ります (オプショ
ン)。実行時処理がデータベースの特性に依存して実行されるように、受け取った情報を
case、if、
または while 文で使用できます。
VGLib.connectionService を使用して Java™ プログラムから新規接続を作成する場合、 システム変数 VGVar.sqlIsolationLevel を設定することによって分離レベルを指定します。
VGLib.connectionService は、VisualAge® Generator および EGL 5.0 からマイグレーションされたプログラム専用です。
関数は、(開発時間に) EGL 設定 VisualAge Generator
との互換性 が選択されている場合、または (生成時間に) ビルド記述子オプション VAGCompatibility が yes に選択されている場合にサポートされます。
新規プログラムの場合、代わりに以下のシステム関数を使用します。
VGLib.connectionService は値を戻しません。

- userID
- データベースへアクセスするときに使用されるユーザー ID。CHAR 型で長さが 8 の項目を引き数として使用する必要があります。リテラルは無効です。引き数を指定する必要がありますが、COBOL 生成では引き数は無視されます。背景情報については、『データベースの権限とテーブル名』を参照してください。
- password
- データベースへアクセスするときに使用されるパスワード。CHAR 型で長さが 8 の項目を引き数として使用する必要があります。リテラルは無効です。引き数を指定する必要がありますが、COBOL 生成では引き数は無視されます。
- serverName
- 接続を指定し、引き数 product と release が VGLib.connectionService の呼び出しに含まれている場合には、指定した接続を使用してこれらの引き数に値を代入します。
CHAR 型で長さが 18 の項目を引き数
serverName として使用する必要があります。有効な値を以下に示します。
- ブランク (内容なし)
- 接続が残っている場合、VGLib.connectionService はその接続を維持します。
接続が残っていない場合には、実行単位の開始時に有効な接続状況へ、結果 (値代入以外の
結果) が戻されます。詳細については、『デフォ
ルト・データベース』を参照してください。
- RESET
- COBOL の場合、RESET を指定すると、変更内容がコミットされ、カーソルが閉じられ、ロ
ックが解放され、現行データベースから切断され、実行単位の開始時に有効な接続状況に戻
ります。詳細については、『デフォルト・データベース』を参照してください。それでも RESET を指定するには、VGLib.connectionService を呼び出す前に、sysLib.commit または sysLib.rollback を呼び出してください。
Java プログラムの場合、RESET を指定すると、デフォルト・データベースに再接続しま
す。ただしデフォルト・データベースが使用できない場合には、接続状況は変更されません。
詳細については、『デフォルト・データベース』を参照してください。
- RESET
- RESET を指定すると、デフォルト・データベースに再接続しま
す。ただしデフォルト・データベースが使用できない場合には、接続状況は変更されません。
詳細については、『デフォルト・データベース』を参照してください。
- serverName
- データベースを識別します。データベースを識別します。
COBOL プログラムとしてコードを実行する場合には、次の点に注意してください。
- serverName の値は SYSIBM.LOCATIONS テーブルのロケーション列です。このテーブルは、CICS® 領域に接続している DB2® UDB サブシステムに含まれています。
- データベースを指定すると、すべてのカーソルが閉じられ、ロックが解放され、既存の接続が終了され、データベースへ接続します。ただし、serverName の値を指定する場合には、VGLib.connectionService を呼び出す前に、sysLib.commit または sysLib.rollback を呼び出してください。
COBOL プログラムとしてコードを実行する場合には、次の点に注意してください。
- serverName の値は SYSIBM.LOCATIONS テーブルのロケーション列です。このテーブルは、DB2 UDB サブシステムに含まれています。
- データベースを指定すると、すべてのカーソルが閉じられ、ロックが解放され、既存の接続が終了され、データベースへ接続します。ただし、serverName の値を指定する場合には、VGLib.connectionService を呼び出す前に、sysLib.commit または sysLib.rollback を呼び出してください。
Java プログラムとしてコードを実行する場合には、次の点に注意してください。 - 物理データベース名を検出するには、プロパティー vgj.jdbc.database.server (server は VGLib.connectionService 呼び出しで指定した名前) を検索します。
このプロパティーが定義されていない場合は、VGLib.connectionService 呼び出しで指定したサーバー名がそのまま使用されます。
- J2EE 接続と非 J2EE 接続ではデータベース名の形式が異なります。
- J2EE 環境で実行されるプログラムを生成した場合には、JNDI レジストリーでのデータ・ソースのバインド先となる名前 (jdbc/MyDB など) を使用します。
ビルド記述子オプション J2EE が YES に設定
されている場合に、この状態が発生します。
- 非 J2EE JDBC 環境のためのプログラムを生成した場合
には、接続 URL (jdbc:db2:MyDB など) を使用します。オプション J2EE が NO に設定
されている場合に、この状態が発生します。
- product
- データベースのプロダクト名を受け取ります。引き数を指定する場合には、CHAR 型で長さが 8 の項目を引き数として使用する必要があります。
コードで特定のデータベースへ接続するときに受け取るストリングを確認するには、データベースまたはドライバーの製品資料を参照するか、またはテスト環境でコードを実行し、受け取る値
をファイルへ書き込んでください。
- release
- データベースのリリース・レベルを受け取ります。引き数を指定する場合には、CHAR 型で長さが 8 の項目を引き数として使用する必要があります。
コードで特定のデータベースへ接続するときに受け取るストリングを確認するには、データベースまたはドライバーの製品資料を参照するか、またはテスト環境でコードを実行し、受け取る値
をファイルへ書き込んでください。
- connectionOption
- CICS for z/OS® 用プログラムを生成する場合は、このパラメーターは無視されます。有効な値は以下のとおりです。
- D1E
- デフォルトは、「D1E」です。オプション名の 1 は、
シングル・フェーズ・コミットがサポートされていることを示し、
E は、切断が明示的でなければならないことを示します。
この場合、コミットまたはロールバックは既存の接続で有効ではありません。
CICS 以外の COBOL プログラムを生成する場合は、一度に 1 つのデータベースしかアクセスできず、以前の接続 (あれば) のリソースを解放したり、異なるデータベースに接続したりするために、切断を明示的に要求する必要があります。
Java プログラムを生成する場合は、次のことが該当します。
- データベースへ接続しても、カーソルの終了、ロックの解放、既存の接続の終了は行わ
れません。ただし、実行単位がすでに同一データベースへ接続している場合には、D1E を指定すると、DISC
を指定してから D1E を指定した場合と同様の効果が得られます。
- 複数のデータベースから読み込むために複数の接続を使用している場合には、作業単位では 1 つのデータベースのみを更新する必要がある。これは、シングル・フェーズ・コミットのみが実行可能であるためである。
データベースへ接続しても、カーソルの終了、ロックの解放、既存の接続の終了は行われません。ただし、実行単位がすでに同一データベースへ接続している場合には、D1E を指定すると、DISC
を指定してから D1E を指定した場合と同様の効果が得られます。
複数のデータベースから読み込むために複数の接続を使用している場合には、作業単位
では1つのデータベースのみを更新する必要があります。これは、シングル・フェーズ・コミ
ットのみが実行可能であるためです。
- D1A
-
オプション名の
1 は、
シングル・フェーズ・コミットがサポートされていることを示し、
A は、切断が
自動的であることを示します。
このオプションの特性は、以下のとおりです。
- 1 度に 1 つのデータベースにしか接続できない
- データベースへのコミット、ロールバック、または接続によって、既存の接続が終了する
- DISC
- 指定されているデータベースから切断します。データベースから切断すると、このデータベースについてのみロールバックが実行され、ロックが解放されます。
- DCURRENT
- 現在接続されているデータベースから切断します。データベースから切断すると、このデータベースについてのみロールバックが実行され、ロックが解放されます。
- DALL
- すべてのデータベースから切断します。すべてのデータベースから切断すると、これらのデータベースでロールバックが実行されます。ただし、他のリカバリー可能リソースではロールバックは実行されません。
- SET
- 接続を現行接続に設定します。(デフォルトでは、実行単位内の最新の接続が現行接続になります。)
VisualAge Generator との互換性を維持するため、値 R、D1C、D2A、
D2C、D2E がサポートされています。ただしこれらの値は D1E と同等です。