個々の接続に対してプロパティーをローカルに設定する

3 つの方法のいずれでも、個々の接続に対してこれらのプロパティーを設定できます。

DB2® および Informix® Dynamic Server データ・ソースの場合

3 つの方式とは、2 とおりです。

pdqProperties ストリングを Connection オブジェクト内の URL に付加する
タイプ 2 の URL の場合は、次の構文図のようにして pdqProperties ストリングを付加します。
構文図を読む構文図をスキップする
                                                    .-,--------------------.          
                                                    V                      |    (1)   
>>-jdbc--:--db2--:--subsystem--:--pdqProperties--=----+-key-- -value-----+-+--;-----><
                                                      '-key--(--value--)-'            

注:
  1. pdqProperties 以外にも IBM® Data Server Driver for JDBC and SQLJ の他のプロパティーを指定できます。値も含めて、それぞれをセミコロンで区切ります。
タイプ 4 の URL の場合は、次の構文図のようにして pdqProperties ストリングを付加します。
構文図を読む構文図をスキップする
                                                                                            .-,--------------------.          
                                                                                            V                      |    (1)   
>>-jdbc--:--db2--:--//--server--+---------+--/--database-or-subsystem--:--pdqProperties--=----+-key-- -value-----+-+--;-----><
                                '-:--port-'                                                   '-key--(--value--)-'            

注:
  1. pdqProperties 以外にも IBM Data Server Driver for JDBC and SQLJ の他のプロパティーを指定できます。値も含めて、それぞれをセミコロンで区切ります。
Connection に渡すプロパティーを Properties オブジェクト内で設定する
プロパティーを設定する際には、次の例のようにプロパティーの前に接頭部 pdq を付けてください。
java.util.Properties myPdqProperties = new java.util.Properties();  
myPdqProperties.put("pdq.captureMode","ON");
DataSource オブジェクトでプロパティーを設定する
次の例のようにプロパティーを設定できます。
DB2SimpleDataSource dbsrc = new DB2SimpleDataSource ();
dbsrc.setServerName ("serv1.jke.com");
dbsrc.setDatabaseName ("STLEC1");
dbsrc.setPortNumber (446);
dbsrc.setUser ("sysadm");
dbsrc.setPassword ("passw0rd");
dbsrc.setDriverType (4);
dbsrc.setPdqProperties("captureMode(on),pureQueryXml(Sample22.xml)");
Connection con = dbsrc.getConnection (); 

Oracle データ・ソースの場合

DataSource オブジェクトで プロパティーを設定できます。4 つの異なるタイプの DataSource オブジェクトを使用できます。

4 つのすべての DataSource オブジェクトがこのメソッドを実装します。

public void setPdqProperties(String properties);
com.ibm.pdq.runtime.datasource.datadirect.EnhancedDataSourceForOracle
このオブジェクトは、DataDirect DataSource オブジェクトである com.ddtek.jdbcx.oracle.OracleDataSource をラップします。このオブジェクトを使用するには、DataDirect Connect for JDBC バージョン 4.0 を使用して Oracle データベースに接続する必要があります。
com.ibm.pdq.runtime.datasource.oracle.EnhancedDataSourceForOracle
このオブジェクトは、oracle.jdbc.pool.OracleDatasource を拡張します。このオブジェクトを使用するには、以下に示すいずれかの Oracle ドライバーを使用して、Oracle データベースに接続する必要があります。
com.ibm.pdq.runtime.datasource.oracle.EnhancedConnectionPoolDatasourceForOracle
このオブジェクトは、oracle.jdbc.pool.OracleConnectionPoolDataSource を拡張します。このオブジェクトを使用するには、以下に示すいずれかの Oracle ドライバーを使用して、Oracle データベースに接続する必要があります。
com.ibm.pdq.runtime.datasource.oracle.EnhancedXADataSourceForOracle
このオブジェクトは、oracle.jdbc.xa.client.OracleXADataSource を拡張します。このオブジェクトを使用するには、以下に示すいずれかの Oracle ドライバーを使用して、Oracle データベースに接続する必要があります。

Oracle のオブジェクトを拡張するいずれかの DataSource オブジェクトを使用するには、以下のいずれかのドライバーを使用して、Oracle データベースに接続する必要があります。

これらすべての オブジェクトは、DataDirect および Oracle のオリジナルのオブジェクトにある public メソッドを実装します。

例えば、OracleConnectionPoolDataSource オブジェクトにプロパティーを設定するコードは、次のようになります。

OracleConnectionPoolDataSource ocpds = new OracleConnectionPoolDataSource();

ocpds.setDriverType("oci8");
ocpds.setServerName("dlsun999");
ocpds.setNetworkProtocol("tcp");
ocpds.setDatabaseName("816");
ocpds.setPortNumber(1521);
ocpds.setUser("scott"); 
ocpds.setPassword("tiger");

PooledConnection pc = ocpds.getPooledConnection();

Connection conn = pc.getConnection();

以下のコード例は、EnhancedConnectionPoolDatasourceForOracle オブジェクトにプロパティーを設定する方法を示します。

EnhancedConnectionPoolDatasourceForOracle ecpdfo = new EnhancedConnectionPoolDatasourceForOracle();

ecpdfo.setDriverType("oci8");
ecpdfo.setServerName("dlsun999");
ecpdfo.setNetworkProtocol("tcp");
ecpdfo.setDatabaseName("816");
ecpdfo.setPortNumber(1521);
ecpdfo.setUser("scott"); 
ecpdfo.setPassword("tiger");
ecpdfo.setPdqProperties("captureMode(on),pureQueryXml(Sample22.xml)");

PooledConnection pc = ecpdfo.getPooledConnection();

Connection conn = pc.getConnection();

フィードバック