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;
次のコードは、StripeDataSource をJNDI ネーミングサービスに登録し、サービスからDataSource のインスタンスを取得し、インスタンスからプールされた接続を作成します。
try {
StripeConnectionPoolDataSource stripeDataSource = new StripeConnectionPoolDataSource();
stripeDataSource.setURL("jdbc:stripe:UseConnectionPooling=true;InitiateOAuth=GETANDREFRESH;OAuthClientId=MyClientId;OAuthClientSecret=MyClientSecret;CallbackURL=http://localhost:33333;");
ctx.bind("jdbc/stripe", stripeDataSource);
ds = (DataSource) ctx.lookup("jdbc/stripe");
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();
}