UCP
ユニットテストでコネクションプールを使うではTomcat JDBC Connection Poolを使って、コネクションプールを実現したけど、Oracleを使っている場合はUCP(Universal Connect Pool)を使うと比較的簡単に同様のことが実現できる。https://docs.oracle.com/cd/E16338_01/java.112/b56283/intro.htm
UCPは以下のサイトからダウンロードできるけど、単独でダウンロードしなくても、Oracle11gのクライアントにも入っているので、それを利用してもいい。
http://www.oracle.com/technetwork/jp/database/enterprise-edition/ucp-096353-ja.html
UCPを使用するにはOracleのJDBCドライバ以外にucp.jarへの参照が必要になるので、まずこの参照を設定しよう。
次に初期化部分を以下のようにする。
import oracle.ucp.jdbc.PoolDataSource; import oracle.ucp.jdbc.PoolDataSourceFactory; static void init() throws NamingException, SQLException { System.setProperty(Context.INITIAL_CONTEXT_FACTORY, "local.MyContextFactory"); System.setProperty(Context.URL_PKG_PREFIXES, "local"); PoolDataSource ds = PoolDataSourceFactory.getPoolDataSource(); ds.setURL("jdbc:oracle:thin:@//localhost:1521/testdb"); ds.setConnectionFactoryClassName("oracle.jdbc.pool.OracleDataSource"); ds.setUser("testdb"); ds.setPassword("testdb"); ds.setMaxPoolSize(100); ds.setMinPoolSize(10); Context ctx = new InitialContext(); ctx.bind("jdbc/test", ds); }
ポイントはPoolDataSourceFactoryからPoolDataSourceを取得して、そこに各設定をしていくところ。
基本的な流れは前回までと同じ。
0 件のコメント:
コメントを投稿