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;
次のコードは、MongoDBDataSource をJNDI ネーミングサービスに登録し、サービスからDataSource のインスタンスを取得し、インスタンスからプールされた接続を作成します。
try {
MongoDBConnectionPoolDataSource mongodbDataSource = new MongoDBConnectionPoolDataSource();
mongodbDataSource.setURL("jdbc:mongodb:UseConnectionPooling=true;Server=127.0.0.1;Port=27017;Database=test;User=test;Password=test;");
ctx.bind("jdbc/mongodb", mongodbDataSource);
ds = (DataSource) ctx.lookup("jdbc/mongodb");
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();
}