SQL Outline の実行時プロパティーの設定方法

SQL Outline のプロパティーは複数の場所で設定します。プロパティーは、グローバルにもローカルにも設定できます。プロパティーを設定する場所により、優先順位が決まります。

このトピックには以下のセクションが含まれています。

重要: IBM は、これらのプロパティーを DataSource オブジェクト内でローカルに設定することを推奨します。 これらのプロパティーをグローバルに設定する場合は、pdq.properties ファイルを使用してみてください。一部のグローバル・プロパティーを pdq.properties ファイルに設定し、他のグローバル・プロパティーを DB2JccConfiguration.properties ファイルに設定することは避けてください。 プロパティーを 1 つの場所でグローバルに設定した方がプロパティーの管理が容易になり、プロパティー間の優先順位が分かりやすくなります。

プロパティーをグローバルに指定する

これらのプロパティー設定方式は、すべての接続が同じデータ・ソース用であり、アプリケーションのすべてのユーザーが同じ特権のセットを持っている場合にのみ使用します。

pureQuery のプロパティーをグローバルに指定する
pdq.properties ファイルの使用方法
これらのプロパティーを pdq.properties ファイルで設定する場合、これらのプロパティーの値は、pdq.properties ファイルを参照するアプリケーション内のすべての pureQueryXML ファイルに適用されます。

pdq.properties という名前のプレーン・テキスト・ファイルがクラスパス内にまだない場合は、作成してください。

プロパティーを設定する際には、次の例のようにプロパティーの前に接頭部 pdq を付けてください。

pdq.captureMode=ON
pdq.executionMode=STATIC
pdq.allowDynamicSQL=TRUE
この方式を使用する場合は、クラスパス内に DB2JccConfiguration.properties ファイルもなければなりません。 このファイルには次の行が含まれている必要があります。
db2.jcc.pdqProperties=""

Web アプリケーションを開発する場合、pdq.properties ファイルをご使用のアプリケーションの WEB-INF/classes フォルダー内に置くか、WEB-INF/lib フォルダーの JAR ファイル内に置いてください。

スタンドアロン・アプリケーションを開発する場合には、そのアプリケーションのクラスパス内にある任意のフォルダーまたは JAR ファイルに pdq.properties ファイルを配置してください。

JVM システム・プロパティーの使用方法
アプリケーションの開始時に Java 仮想マシンにプロパティーを渡す場合にこの方式を使用します。 これらのプロパティーを JVM システム・プロパティーとして設定した場合、値は、java コマンドで開始するアプリケーション内のすべての pureQueryXML ファイルに適用されます。
構文図を読む構文図をスキップする
         .---------------------------------------.   
         V                                       |   
>>-java---- -Dpdq.--property--=--+-value-------+-+-------------><
                                 '-"--value--"-'     

プロパティーに複数のストリング値を指定する場合は区切り文字として引用符を使用する必要があります。

この方式を使用する場合は、クラスパス内に DB2JccConfiguration.properties ファイルもなければなりません。このファイルには次の行が含まれている必要があります。
db2.jcc.pdqProperties=""
IBM Data Server Driver for JDBC and SQLJ 専用にプロパティーをグローバルに指定する
これらの方法のいずれでも、enableDynamicSQLReplacement、maxStackTracesCaptured、または packagePrefixExclusions プロパティーは設定できません。 これらを設定するには、前の 2 つの方式のいずれかを使用する必要があります。
DB2JccConfiguration.properties ファイルの使用方法
DB2JccConfiguration.properties の検索には、標準の Java リソース検索機能を使用します。IBM DB2 Driver for JDBC and SQLJ は、db2.jcc.propertiesFile Java システム・プロパティーが設定されていない場合にのみ、このリソースを検索します。

DB2JccConfiguration.properties は、独立のファイルであっても、JAR ファイルに含まれていても構いません。

DB2JccConfiguration.properties ファイルが ISO 8859-1 (Latin-1) コード化スキームでエンコードされている場合、または一部の Unicode でエンコードされた (\udddd) 文字を含む Latin-1 コード化スキームでエンコードさされている場合は、事前に文字変換を行わなくても IBM DB2 Driver for JDBC and SQLJ がこのファイルを使用できます。DB2JccConfiguration.properties が他の何らかのコード化スキームでエンコードされている場合は、Java native2ascii コンバーターを使用して、内容を、Latin-1 または Unicode でエンコードされた文字に変換する必要があります。

DB2JccConfiguration.properties が独立したファイルである場合は、DB2JccConfiguration.properties のパスが CLASSPATH 連結に含まれていなければなりません。

DB2JccConfiguration.properties が JAR ファイル内にある場合は、JAR ファイルが CLASSPATH 連結に含まれていなければなりません。

SQL Outline のプロパティーの設定には次の構文を使用します。

構文図を読む構文図をスキップする
                             .-,--------------------.   
                             V                      |   
>>-db2.jcc.pdqProperties--=----+-key----value-----+-+----------><
                               '-key--(--value--)-'     

enableDynamicSQLReplacement プロパティーをこの方式で設定することはできません。

これらのプロパティーは、db2.jcc.propertiesFile Java システム・プロパティーで指定した名前のリソース・ファイル内で設定できます。

例えば、db2.jcc.propertiesFile 値の絶対パス名を指定できます。 独立した Java アプリケーションの場合、java コマンドの実行時に -Ddb2.jcc.propertiesFile=path オプションを指定することで構成プロパティーを設定できます。

JVM システム・プロパティーの使用方法
アプリケーションの開始時に Java 仮想マシンにプロパティーを渡す場合にこの方式を使用します。
構文図を読む構文図をスキップする
                                    .-,--------------------.   
                                    V                      |   
>>-java -Ddb2.jcc.pdqProperties--=----+-key----value-----+-+---><
                                      '-key--(--value--)-'     

IBM Data Server Driver for JDBC and SQLJ を使用する個々の接続に対してプロパティーをローカルに指定する

3 つの方法のいずれでも、個々の接続に対してこれらのプロパティーを設定できます。これらのローカルな方式のいずれでも、enableDynamicSQLReplacementmaxStackTracesCaptured、または packagePrefixExclusions プロパティーを設定することはできません。

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

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

タイプ 4 の URL の場合は、次の構文図のようにして pdqProperties ストリングを付加します。
構文図を読む構文図をスキップする
                                                                                            .-,--------------------.   
                                                                                            V                      |   
>>-jdbc--:--db2--:--//--server--+---------+--/--database-or-subsystem--:--pdqProperties--=----+-key----value-----+-+-><
                                '-:--port-'                                                   '-key--(--value--)-'     

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),executionMode(DYNAMIC)");
Connection con = dbsrc.getConnection (); 

これらのプロパティーを設定する場所の優先順位

pureQuery は、SQL Outline の実行時プロパティーの値を検索する際には、可能性のある場所を以下の順序で検索します。

  1. Connection オブジェクトの URL、Properties オブジェクト、または DataSource オブジェクト
  2. DB2JccConfiguration.properties ファイルまたは Java 仮想マシンに渡される db2.jcc.pdqProperties ストリング
  3. pdq.properties ファイルまたは Java 仮想マシンに渡されるプロパティー

pureQuery は、プロパティーの値を見つけると、他の場所でのそのプロパティーの値の検索を停止します。pureQuery がプロパティーの値を見つけられなかった場合は、そのプロパティーのデフォルト値を使用します。

関連タスク
SQL ステートメントを静的に実行するための JDBC アプリケーションの実行
関連資料
SQL Outline 用の SQL ステートメントのキャプチャー
STATIC モードで実行中の JDBC アプリケーションのプロパティーの設定
DYNAMIC モードで実行中の JDBC アプリケーションのプロパティーの設定
関連情報
IBM Data Server Driver for JDBC and SQLJ 構成プロパティーのカスタマイズ

フィードバック