CData JDBC Driver for OFX 2019J - Online Help

接続プール

CData JDBC Driver for OFX 2019J - Build 19.0.7354

本製品 は標準JDBCコネクションプーリングを実装しています 。プーリングの有効化にはUseConnectionPooling を設定します。次のセクションでは、それらの設定および使用方法について説明します。

プールされた接続の操作

プールされていない接続との通信と同じように、標準JDBC オブジェクトを使って接続を開いたり、閉じたりすることができます。この場合、取得された Connection オブジェクトは、コネクションプールにより所有される物理的接続のハンドルです。接続が閉じられると、接続が廃棄されずにハンドルがプールに戻され、次の接続リクエストに使われます。

プールに戻されるには、明示的に接続を閉じなければなりません。

プールされた接続のインストール

プールからConnection オブジェクトを取得するには、OFXDataSource のインスタンスを使ってUseConnectionPooling 接続プロパティをtrue に設定する必要があります。

コネクションプールの設定

UseConnectionPooling に加え、次の接続プロパティを設定し、コネクションプールをコントロールします。

  • PoolMaxSize:同時に開ける接続の最大数を定義します。
  • PoolIdleTimeout:どの時間接続がオープンでアイドルしたままにできるかを設定します。この制限を超えた場合、接続はプールに戻されます。
  • PoolWaitTime:どのくらいの時間新しい接続リクエストが、接続が有効になるまで待機すべきかの制限を設定します。この制限を超えた場合、リクエストはエラーを返します。デフォルトで接続リクエストは接続が有効になるまで無制限で待ち続けます。

OFXDataSource の例

コネクションプールを開始するには、UseConnectionPooling を使用してOFXDataSource をインスタンス化します。

OFXDataSource ofxDataSource = new OFXDataSource("cdata.jdbc.ofx.OFXDriver", "jdbc:ofx:UseConnectionPooling=true;OFXUser=myUser;OFXPassword=myPassword;FIID=myFIID;");

JNDI の例

次の例は、JNDI でコネクションプールを使用する方法を示します。

以下のコードは、JNDI File System Service Provider を初期化します。このサンプルを実行するには、classpath にfscontext.jar ファイルとproviderutil.jar ファイルを追加する必要があります。これらのファイルは、Oracle Java Archive からダウンロードできます。Java SE セクションで、[Java Platform Technologies]->[Java Naming and Directory Interface]を選択します。

 
Hashtable env = new Hashtable();
env.put(Context.INITIAL_CONTEXT_FACTORY,
    "com.sun.jndi.fscontext.RefFSContextFactory");
env.put(Context.PROVIDER_URL, "file:///tmp");

Context ctx = new InitialContext(env); 
DataSource ds = null;
Connection conn = null;
次のコードは、OFXDataSource をJNDI ネーミングサービスに登録し、サービスからDataSource のインスタンスを取得し、インスタンスからプールされた接続を作成します。
try {
  OFXDataSource ofxDataSource = new OFXDataSource("cdata.jdbc.ofx.OFXDriver", "jdbc:ofx:UseConnectionPooling=true;OFXUser=myUser;OFXPassword=myPassword;FIID=myFIID;");
  ctx.bind("jdbc/ofx", ofxDataSource);
  ds = (DataSource) ctx.lookup("jdbc/ofx");

  conn = ds.getConnection();
  Statement stat = conn.createStatement();
  boolean ret = stat.execute("SELECT 1");
  ResultSet rs=stat.getResultSet(); 
} catch(Exception ex) { } finally {
  if(conn != null) conn.close();
}

コネクションプールを閉じる

JRE 1.3 もしくはそれ以上では、アプリケーションが止まると自動的にコネクションプールは閉じられます。DataSource オブジェクトのclose メソッドを呼び出して手動でコネクションプールを閉じることが可能です。

 
 
Copyright (c) 2020 CData Software, Inc. - All rights reserved.
Build 19.0.7354.0