デフォルトでは、MFDBFH でデータベース接続が確立されると、残りのプロセスの実行用に接続が開いたままになります。これは、データベース接続の確立と切断による不要なパフォーマンス オーバーヘッドを回避するためです。ただし、データベース接続の有効期間を制限する必要がある場合があります。次に例を示します。
このデフォルトの動作をオーバーライドするには、dbfhconfig -connopts コマンド ライン ユーティリティを使用してデータベース構成ファイルを更新します。次の表に、各オプションで作成されるエントリと変更後の動作の説明を示します。
属性 | 説明 | 例 |
connection.close.heartbeat="true|false" | CAS プロセスのハートビート スレッドでリージョン間データベース接続を接続キャッシュに戻すか、ハートビート (5 秒間隔) ごとに切断するかを指定します。キャッシュされるか切断されるかは、構成されている接続キャッシュのサイズによって決まります。接続が切断された場合は、データベースに対する操作が次に必要になったときに再接続されます。デフォルトは「false」です。 | <dsn name="SS.MYFILES" type="datastore" dsname="MYFILES" connection.close.heartbeat="false"/> |
connection.close.syncpoint="true|false" | データベース接続を接続キャッシュに戻すか、CAS 同期ポイントごとに切断するかを指定します。キャッシュされるか切断されるかは、構成されている接続キャッシュのサイズによって決まります。接続が切断された場合は、データベースに対する操作が次に必要になったときに再接続されます。デフォルトは「false」です。 | <dsn name="SS.MYFILES" type="datastore" dsname="MYFILES" connection.close.syncpoint="false"/> |
connection.close.task="true|false" | データベース接続を接続キャッシュに戻すか、各 CAS タスク (CICS トランザクションやバッチ ジョブなど) の終了時に切断するかを指定します。キャッシュされるか切断されるかは、構成されている接続キャッシュのサイズによって決まります。接続が切断された場合は、データベースに対する操作が次に必要になったときに再接続されます。デフォルトは「false」です。 | <dsn name="SS.MYFILES" type="datastore" dsname="MYFILES" connection.close.task="false"/> |
connection.max.cached=<n/> | MFDBFH で後で再利用するために接続キャッシュに保持しておく接続の最大数を指定します。値を 0 に設定すると、接続がキャッシュされず、不要になるとすぐに切断されます。デフォルトは 10 です。 | <dsn name="SS.MYFILES" type="datastore" dsname="MYFILES" connection.max.cached=0/> |
connection.max.dbopts=<n/> | 接続が接続キャッシュに戻されるか切断されるまでに、MFDBFH がその接続で実行できるデータベース操作の最大数を指定します。デフォルトは INT_MAX (2147483647) です。 | <dsn name="SS.MYFILES" type="datastore" dsname="MYFILES" connection.max.dbopts=5000/> |
単一の <dsn> エントリに対して複数の属性を構成できます。たとえば、SQL Server の master データベースへの接続について、その接続をデータベースが存在するかどうかを確認した後や新しいデータベースを作成するときに切断するには、接続の有効期間の属性を次のように指定します。
<dsn name="SS.MASTER" type="database" dbname="master" connection.max.cached=0 connection.max.dbopts=0/>