JNDI
JNDI でのコネクションプーリング
Java Naming and Directory Service(JNDI)は、分散アプリケーションがサービスを検索できるようにするAPI です。JNDI を使用すると、コネクションプールを簡単に設定できます。
JNDI を使用してコネクションプールを設定するには、以下のサンプルコードに示すように、JNDI ファイルシステムサービスプロバイダーを初期化する必要があります。このサンプルを実行するには、クラスパスに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;
次のコードは、GoogleCloudStorageDataSource をJNDI ネーミングサービスに登録し、サービスからDataSource のインスタンスを取得し、インスタンスからプールされた接続を作成します。
try {
GoogleCloudStorageConnectionPoolDataSource googlecloudstorageDataSource = new GoogleCloudStorageConnectionPoolDataSource();
googlecloudstorageDataSource.setURL("jdbc:googlecloudstorage:UseConnectionPooling=true;InitiateOAuth=GETANDREFRESH;ProjectId='project1';");
ctx.bind("jdbc/googlecloudstorage", googlecloudstorageDataSource);
ds = (DataSource) ctx.lookup("jdbc/googlecloudstorage");
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();
}