Oracle NoSQL Databaseの接続プーリングは、RDFグラフ機能のOraclePoolNoSqlクラスを介して提供されます。このクラスを初期化すると、利用可能な接続のプールからOracleNoSqlConnectionオブジェクトを返すことができます。このオブジェクトは基本的に、Oracle NoSQL Database接続のラッパーです。OracleNoSqlConnectionオブジェクトでdisposeが呼び出されると、クローズされるかわりに接続が実際にプールに返されます。OraclePoolNoSqlの使用方法の詳細は、APIリファレンス情報(Javadoc)を参照してください。
次の例では、3つの初期接続を使用してOraclePoolNoSqlオブジェクトを設定しています。
public static void main(String[] args) throws Exception { String szStoreName = args[0]; String szHostName = args[1]; String szHostPort = args[2]; String szModelName = args[3]; // Property of the pool: wait if no connection is available at request. boolean bWaitIfBusy = true; System.out.println("Creating OracleNoSQL pool"); OracleNoSqlPool pool = OracleNoSqlPool.createInstance(szStoreName, szHostName, szHostPort, 3, // pool size bWaitIfBusy, true); // lazyInit System.out.println("Done creating OracleNoSql pool"); // grab an Oracle NoSQL connection and do something System.out.println("Get a connection from the pool"); OracleNoSqlConnection conn = pool.getResource(); OracleModelNoSql model = OracleModelNoSql.createOracleModelNoSql(szModelName, conn); System.out.println("Clear model"); model.removeAll(); model.getGraph().add(Triple.create(Node.createURI("u:John"), Node.createURI("u:cousinOf"), Node.createURI("u:Jackie"))); model.close(); //return connection back to the pool conn.dispose(); // grab another Oracle NoSQL connection and do something System.out.println("Get a connection from the pool"); conn = pool.getResource(); String queryString = "select ?x ?y ?z WHERE {?x ?y ?z}"; System.out.println("Execute query " + queryString); Query query = QueryFactory.create(queryString) ; QueryExecution qexec = QueryExecutionFactory.create(query, model); try { ResultSet results = qexec.execSelect(); ResultSetFormatter.out(System.out, results, query); } finally { qexec.close(); } model.close(); //return connection back to the pool conn.dispose(); // Close pool. // This will close all resources even if they have not been freed up System.out.println("Close pool, this will close all resources"); pool.close(); }