VGLib.connectionService

システム関数 VGLib.connectionService には、以下の 2 つの利点があります。

VGLib.connectionService を使用して Java™ プログラムから新規接続を作成する場合、 システム変数 VGVar.sqlIsolationLevel を設定することによって分離レベルを指定します。

VGLib.connectionService は、VisualAge® Generator および EGL 5.0 からマイグレーションされたプログラム専用です。 関数は、(開発時間に) EGL 設定 VisualAge Generator との互換性 が選択されている場合、または (生成時間に) ビルド記述子オプション VAGCompatibilityyes に選択されている場合にサポートされます。

新規プログラムの場合、代わりに以下のシステム関数を使用します。

VGLib.connectionService は値を戻しません。


VGLib.connectionService 構文図
userID
データベースへアクセスするときに使用されるユーザー ID。CHAR 型で長さが 8 の項目を引き数として使用する必要があります。リテラルは無効です。引き数を指定する必要がありますが、COBOL 生成では引き数は無視されます。背景情報については、『データベースの権限とテーブル名』を参照してください。
password
データベースへアクセスするときに使用されるパスワード。CHAR 型で長さが 8 の項目を引き数として使用する必要があります。リテラルは無効です。引き数を指定する必要がありますが、COBOL 生成では引き数は無視されます
serverName
接続を指定し、引き数 productreleaseVGLib.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 (serverVGLib.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 と同等です。

定義に関する考慮事項

VGLib.connectionService は、以下のシステム変数を設定します。
  • VGVar.sqlerrd
  • sysVar.sqlca
  • sysVar.sqlcode
  • VGVar.sqlerrmc (COBOL コードでのみ使用可能)
  • VGVar.sqlWarn

  VGLib.connectionService(myUserid, myPassword, 
    myServerName, myProduct, myRelease, "D1E");
ご利用条件 | フィードバック
(C) Copyright IBM Corporation 2000, 2005. All Rights Reserved.(C) Copyright IBM Japan 2005.