connect()

システム関数 SysLib.connect によって、プログラムは実行時にデータベースへ接続することができます。この関数は、値を戻しません。

  SysLib.connect(
    database STRING in,
    userID STRING in,
    password STRING in
    [, commitScope enumerationCommitScope in
    [, disconnectOption enumerationDisconnectOption in
    [, isolationLevel enumerationIsolationLevel in
    [, commitControl enumerationCommitControlOption in
    ]]]] )
database
データベースを識別します。データベースを識別します。
COBOL プログラムとしてコードを実行する場合には、次の点に注意してください。
  • database を RESET に設定すると実行単位の開始時に有効な接続状況へ戻ります。詳細については、『デフォルト・データベース』を参照してください。
  • それ以外の場合、database の値は SYSIBM.LOCATIONS テーブルのロケーション列です。このテーブルは、CICS® 領域に接続している DB2® UDB サブシステムに含まれています。
  • いずれの場合も、システム関数 SysLib.connect によって、すべてのカーソルが閉じられ、ロックが解放され、既存の接続が終了され、データベースへ接続します。これらのアクションにかかわらず、SysLib.connect を呼び出す前に、SysLib.commit または SysLib.rollback を呼び出します。
COBOL プログラムとしてコードを実行する場合には、次の点に注意してください。
  • database を RESET に設定すると実行単位の開始時に有効な接続状況へ戻ります。詳細については、『デフォルト・データベース』を参照してください。
  • それ以外の場合、database の値は SYSIBM.LOCATIONS テーブルのロケーション列です。このテーブルは、DB2 UDB サブシステムに含まれています。
  • いずれの場合も、システム関数 SysLib.connect によって、すべてのカーソルが閉じられ、ロックが解放され、既存の接続が終了され、データベースへ接続します。これらのアクションにかかわらず、SysLib.connect を呼び出す前に、SysLib.commit または SysLib.rollback を呼び出します。
Java™ プログラムとしてコードを実行する場合には、次の点に注意してください。
  • database を RESET に設定すると、デフォルト・データベースに再接続します。ただし、デフォルト・データベースが使用できない場合には、接続状況は変更されません。詳しくは、『デフォルト・データベース』を参照してください。
  • それ以外の場合、物理データベース名を確認するには、プロパティー vgj.jdbc.database.server (serverSysLib.connect 呼び出しで指定したデータベースの名前) を検索します。このプロパティーが定義されていない場合は、SysLib.connect 呼び出しで指定されたデータベース名がそのまま使用されます。
  • J2EE 接続と非 J2EE 接続ではデータベース名の形式が異なります。
    • J2EE 環境で実行されるプログラムを生成した場合には、JNDI レジストリーでのデータ・ソースのバインド先となる名前 (jdbc/MyDB など) を使用します。ビルド記述子オプション J2EE が YES に設定 されている場合に、この状態が発生します。
    • 非 J2EE JDBC 環境のためのプログラムを生成した場合 には、接続 URL (jdbc:db2:MyDB など) を使用します。オプション J2EE が NO に設定 されている場合に、この状態が発生します。
userID
データベースへアクセスするときに使用されるユーザー ID。CHAR 型で長さが 8 の項目を引数として使用する必要があります。リテラルは有効です。引数を指定する必要がありますが、COBOL 生成では引数は無視されます。背景情報については、『データベースの権限とテーブル名』を参照してください。
password
データベースへアクセスするときに使用されるパスワード。CHAR 型で長さが 8 の項目を引数として使用する必要があります。リテラルは有効です。引数を指定する必要がありますが、COBOL 生成では引数は無視されます
commitScope
このパラメーターは、Java 出力を生成する場合にのみ有効です。 値は以下のワードのいずれかであり、引用符および変数は使用できません。
type1 (デフォルト)
シングル・フェーズ・コミットのみがサポートされます。新規接続によって、すべてのカーソルが閉じられ、ロックが解放され、既存の接続が終了します。ただし、type1 接続を行う前に、SysLib.commit または SysLib.rollback を呼び出します。

type1 を commitScope の値として使用する場合、パラメーター disconnectOption の値は、デフォルトであるワード explicit である必要があります。

type2
データベースへ接続しても、カーソルの終了、ロックの解放、既存の接続の終了は行われません。複数のデータベースから読み込むために複数の接続を使用できますが、1 つの作業単位に 1 つのデータベースのみを更新する必要があります。これは、シングル・フェーズ・ コミットしか使用できないためです。
twophase
type2 と同じ。
disconnectOption
このパラメーターは、Java 出力を生成する場合にのみ有効です。値は以下のワードのいずれかであり、引用符および変数は使用できません。
explicit (デフォルト)
プログラムが SysLib.commit または SysLib.rollback を呼び出した後、接続はアクティブのままです。接続リソースを解放するには、プログラムで SysLib.disconnect を実行する必要があります。

type1 を commitScope の値として使用する場合、パラメーター disconnectOption の値に、 ワード explicit を設定 (またはデフォルトに設定) する必要があります。

automatic
コミットまたはロールバックによって、既存の接続が終了します。
conditional
コミットまたはロールバックによって既存の接続が自動的に終了します (カーソルが開いていて保留オプションがそのカーソルに対して有効である場合を除く)。保留オプションに関する詳細については、『オープン』を参照してください。
isolationLevel
このパラメーターは、別のデータベース・トランザクションからのデータベース・トランザクションの独立性レベルを示します。これは、Java 出力を生成する場合にのみ意味があります。
以下のワードは厳密性の少ない順であり、 ここでも、引用符および変数は使用できません。
  • readUncommitted
  • readCommitted
  • repeatableRead
  • serializableTransaction (デフォルト値)

詳しくは、Sun Microsystems, Inc の JDBC 資料を参照してください。

commitControl
このパラメーターは、データベースに変更を加えるたびに、コミットを行うかどうかを指定します。 このパラメーターは、EGL で生成された COBOL コードでは無視されます。
有効な値は以下のとおりです。
  • noAutoCommit (デフォルト) は、コミットを自動実行しないことを意味します。通常は、その方が実行速度が速くなります。その場合のコミットとロールバックの詳しい規則については、『作業論理単位』を参照してください。
  • autoCommit は、更新が即時に有効になることを意味します。

一時的に autoCommit から noAutoCommit に切り替えることもできます。詳細については、『SysLib.beginDatabaseTransaction」を参照してください。

定義に関する考慮事項

SysLib.connect は以下のシステム変数を設定します。
  • VGVar.sqlerrd[3]
  • SysVar.sqlca
  • SysVar.sqlcode
  • VGVar.sqlerrmc (COBOL コードでのみ使用可能)
  • VGVar.sqlWarn[2]
  • VGVar.sqlWarn[7] (COBOL コードでのみ使用可能)

  SysLib.connect(myDatabase, myUserid, myPassword);
ご利用条件 | フィードバック
(C) Copyright IBM Corporation 2000, 2005. All Rights Reserved.
(C) Copyright IBM Japan 2005.