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 CHAR(8) in,
    password CHAR(8) in,
    serverName CHAR(18) in
    [, product CHAR(8) inOut,
       release CHAR(8) inOut
    [, connectionOption STRING in
    ]])
userID
データベースへアクセスするときに使用されるユーザー ID。CHAR 型で長さが 8 の項目を引数として使用する必要があります。リテラルは無効です。引数を指定する必要があります。背景情報については、『データベースの権限とテーブル名』を参照してください。
password
データベースへアクセスするときに使用されるパスワード。CHAR 型で長さが 8 の項目を引数として使用する必要があります。リテラルは無効です。引数を指定する必要があります。
serverName
接続を指定し、引数 productreleaseVGLib.connectionService の呼び出しに含まれている場合には、指定した接続を使用してこれらの引数に値を代入します。
CHAR 型で長さが 18 の項目を引数 serverName として使用する必要があります。有効な値を以下に示します。
ブランク (内容なし)
接続が残っている場合、VGLib.connectionService はその接続を維持します。 接続が残っていない場合には、実行単位の開始時に有効な接続状況へ、結果 (値代入以外の 結果) が戻されます。詳細については、『デフォ ルト・データベース』を参照してください。
RESET
RESET を指定すると、デフォルト・データベースに再接続しま す。ただしデフォルト・データベースが使用できない場合には、接続状況は変更されません。

詳細については、『デフォルト・データベース』を参照してください。

serverName
データベースを識別します。
  • 物理データベース名を検出するには、プロパティー 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
有効な値は以下のとおりです。
D1E
デフォルトは、「D1E」です。オプション名の 1 は、 シングル・フェーズ・コミットがサポートされていることを示し、 E は、切断が明示的でなければならないことを示します。 この場合、コミットまたはロールバックは既存の接続で有効ではありません。

データベースへ接続しても、カーソルの終了、ロックの解放、既存の接続の終了は行われません。ただし、実行単位が既に同一データベースへ接続している場合には、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.sqlWarn

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