db2 jdbc ドライバーで statementPool をアクティブにしようとしていますが、うまくいきません。ここに記載されているさまざまな手法を試しました:http: //publib.boulder.ibm.com/infocenter/dzichelp/v2r2/index.jsp?topic=%2Fcom.ibm.db2z10.doc.java%2Fsrc%2Ftpc% 2Fimjcc_c0052041。 htm
Javaコードは次のとおりです。
csUrl += ":maxStatements=1000;";
System.err.println("Connecting to csUrl : " + csUrl);
DB2ConnectionPoolDataSource ds = new DB2ConnectionPoolDataSource();
//DB2SimpleDataSource ds = new DB2SimpleDataSource();
//ds = new DB2ConnectionPoolDataSource();
ds.setServerName("edited");
ds.setPortNumber(edited);
ds.setDatabaseName("edited");
ds.setCurrentSchema("edited");
ds.setMaxStatements(1000);
ds.setDriverType(4);
Connection connection = ds.getPooledConnection(csUser, csPassword).getConnection();
//Connection connection = ds.getConnection(csUser, csPassword);
//Connection connection = DriverManager.getConnection(csUrl);
//Connection connection = m_driver.connect(csUrl, propertiesUserPassword);
boolean pooling = connection.getMetaData().supportsStatementPooling();
if (pooling) {
System.err.println(">>> Pooling is ON!");
} else {
System.err.println(">>> Pooling is OFF! <<<");
}
: に従ってすべての手法が失敗し connection.getMetaData().supportsStatementPooling()
、statementPooling は常に非アクティブ化されます。
DB2 Express /Linux を実行しています: データベース サーバー = DB2/LINUXX8664 10.1.2 と一致する jdbc ドライバー。
異なる db2 バックエンド (db2 10 zOs) を使用した同じコードでも同じ結果が得られるため、Express の問題ではないと思います。クライアント コードは Windows で実行されています。
社内のステートメントキャッシュがありますが、特に DB2 をいじりたいと思っていました。これは、PooledDataSource を介して提供される論理接続間でプールを共有できるように見えるためです。
ありがとう :)