|
この章では、AquaLogic Data Services Platform に対してアプリケーションレベルの設定をコンフィグレーションする方法について説明します。 この章の内容は以下のとおりです。
AquaLogic Data Services Platform 対応アプリケーションの実行時設定を参照したり、コンフィグレーションしたりできます。実行時設定には、アクセス制御、キャッシュ設定、サーバ リソース (スレッドの使用数を含む)、ログ レベルなどがあります。
注意 : | Data Services Platform Console (アクセス名 : ldconsole) へのアクセス方法については、「AquaLogic Data Services Platform Console の起動」を参照してください。 |
アプリケーションの全般的な設定を指定するには、次の手順に従います。
[全般] 設定ページが表示されます (図 5-1 を参照)。 管理者特権を持つユーザ名を使用して、コンソールにログインする必要があります。
表 5-1 に、[全般] タブで設定可能なアプリケーションの設定を示します。
|
|||
|
|||
|
|||
|
アプリケーションを開発段階からステージング段階、プロダクション段階へと移行するときに、データ ソースの場所やその他のアーティファクトの名前を変更したほうが便利な場合がよくあります。 たとえば、機密情報などの保護された情報を守るために開発時に「ダミーの」データ ソースを使用している場合には、ある時点でテスト用のデータ ソースを実際のデータのある新しいデータ ソースに置換する必要があります。 Data Services Platform Console を使用して、こうした変更を行うことができます。
エンド ポイントの変更は、データ ソースの名前や場所に限定されているわけではありません。 従属アーティファクトの名前を変更することもできます。 リレーショナル ソースの場合は、カタログ名、スキーマ名、パッケージ名、テーブル名、ストアド プロシージャ名などを変更できます。
注意 : | エンド ポイントの変更は、元の名前に戻されるか、またはさらに変更されるまで有効です。 エンド ポイント名を元の値にするには、単に [表示されます。] をクリックするだけです。 このオプションでは、元の名前に直接戻されます。以前設定した値に戻されることはありません。 そのため、長期にわたっていくつかの名前を割り当てた場合でも [表示されます。] をクリックすると、値は [元の値] カラムにある名前に戻されます。 |
注意 : | アーティファクトのエンド ポイントを変更する場合は必ず、そのアーティファクト固有の部分が古いソースと同じままであることを確認してください。 リレーショナル ソースの場合、ベンダのタイプ、バージョンなどのプロパティは同じでなければなりません。 |
特定のオブジェクトのエンド ポイントを変更すると、新しいエンド ポイントが元の名前の横に括弧で囲まれて表示されます。次の 図 5-3 では、元のデータソース名の横に、角括弧で囲まれた新しいデータソース名が表示されています。
表 5-2 に、エンド ポイント設定を変更できるアーティファクトを示します。
定義されたリレーショナル データベースを使用するデータ サービスおよび関数ライブラリのリストを表示できます。 [使用場所] タブをクリックすると、データ サービスとその固有のパスのリストが表示されます (図 5-4 を参照)。
AquaLogic Data Services Platform では、リレーショナル データ ソースへのアクセスに SQL 言語が使用されます。 コンパイル時に、組み込みクエリ オプティマイザが、バックエンド ソースに対する最適な実行方式を決定します。 その後 SQL クエリが生成され、基底のデータベースに送信されます。
リレーショナル ラッパーによって生成される SQL クエリは、基底の各データベースに固有のものです。 生成される SQL クエリは多くの場合で有効な結果を返しますが、生成されるクエリをさらに最適化したほうが望ましい場合もあります。 ほとんどの RDBS システムでは、そうした最適化が実行ヒントを介して行われます。
SQL 文の置換によって、生成される SQL クエリにヒントを追加することができます。これを行うには、AquaLogic Data Services Platform によってデフォルトで生成されるクエリの代わりに実行される、編集された SQL 文を指定します。
警告 : | AquaLogic Data Services Platform によって生成される SQL 文とは異なり、置換される SQL 文は確認されずに基底のデータベースに渡されます。 このため、データベースにヒントを提供する以外の目的でこの機能を使用しないことをお勧めします。 さらに、デプロイする前に、置換される SQL 文と生成される SQL 文をテストで比較して、予期されるパフォーマンス上の利点が得られることを確認するようお勧めします。 |
AquaLogic Data Services Platform サーバでは、元の生成される SQL クエリとユーザが指定する置換クエリとの間に置換テーブルが保持されます。 ユーザによって指定された SQL クエリのみが置換されます。
AquaLogic Data Services Platform の管理者は、AquaLogic Data Services Console を使用して置換クエリを定義および管理します。
置換クエリは、元の SQL クエリの代わりに実行されます。 AquaLogic Data Services Platform 実行時エンジンは、元のクエリの型/カラム情報を使用して SQL 結果セットを読み込みます。 「SQL 文の置換の要件」で示されている条件に違反した不正な置換があると、以下のような問題が発生する場合があります。
生成されるクエリでも置換クエリでも、外部化されたエンド ポイントのサポートには特別な構文が使用されます (詳細については、「データ ソースのエンド ポイントの変更」を参照)。 次の置換クエリでは、こうした特別な構文 (強調箇所) が示されています。
SELECT /*+ FIRST_ROWS (10)*/ t1."BILL_TO_ID" AS c1, t1."C_ID" AS c2, t1."DATE_INT" AS c3, t1."ESTIMATED_SHIP_DT" AS c4,
t1."HANDLING_CHRG_AMT" AS c5, t1."ORDER_DT" AS c6, t1."ORDER_ID" AS c7, t1."SALE_TAX_AMT" AS c8,
t1."SHIP_METHOD_DSC" AS c9, t1."SHIP_TO_ID" AS c10, t1."SHIP_TO_NM" AS c11, t1."STATUS" AS c12,
t1."SUBTOTAL_AMT" AS c13, t1."TOTAL_ORDER_AMT" AS c14, t1."TRACKING_NO" AS c15
FROM {RTLAPPLOMS}.{CUSTOMER_ORDER} t1
注意 : | 置換される SQL 文に SQL フラグメント (文字列リテラルなど) を追加する場合は、二重の開始中括弧を使用する規則にも従う必要があります。 |
注意 : | たとえば、 |
SELECT t1.ID FROM CUSTOMER() WHERE $i/ID > `a{bee}c' return $i/ID
SELECT t1.ID FROM {CUSTOMER} t1 WHERE t1.ID > `a{{bee}c'
注意 : | 元のクエリと同じ名前プレースホルダを使用する置換クエリを指定する必要があります。 SQL 生成ステージの最後に、元の名前は現在のエンド ポイント名に置換されます。 エンド ポイントの設定が見つからない場合は、元の名前が使用されます。 |
置換 SQL 文は、Data Services Platform Console の [置換された SQL 文] オプションを使用して作成され、登録されます (図 5-5 を参照)。
置換 SQL クエリの作成時には、以下の情報を指定する必要があります。
説明を除く、すべての項目を入力してください (説明は省略可能です)。
作成日時と最終更新日時が、システムによって自動追跡されます。
置換される SQL クエリに関しては、以下の要件があります。
注意 : | サブクエリを使用するクエリの場合、最も外側のサブクエリのみがカラムのエリアスを保持しなければなりません。内部のサブクエリは保持する必要はありません。 |
SQL 文の置換を行う順序に決まりはありません。 そのため、この節の例とその手順は、SQL 文の置換を作成およびテストする 1 つの方法にすぎません。
http://localhost:7001/ldconsole
SELECT t1."BILL_TO_ID" AS c1, t1."C_ID" AS c2, t1."DATE_INT" AS c3, t1."ESTIMATED_SHIP_DT" AS c4,
t1."HANDLING_CHRG_AMT" AS c5, t1."ORDER_DT" AS c6, t1."ORDER_ID" AS c7, t1."SALE_TAX_AMT" AS c8,
t1."SHIP_METHOD_DSC" AS c9, t1."SHIP_TO_ID" AS c10, t1."SHIP_TO_NM" AS c11, t1."STATUS" AS c12,
t1."SUBTOTAL_AMT" AS c13, t1."TOTAL_ORDER_AMT" AS c14, t1."TRACKING_NO" AS c15
FROM {RTLAPPLOMS}.{CUSTOMER_ORDER} t1
SELECT /*+ FIRST_ROWS (10)*/ t1."BILL_TO_ID" AS c1, t1."C_ID" AS c2, t1."DATE_INT" AS c3, t1."ESTIMATED_SHIP_DT" AS c4,
t1."HANDLING_CHRG_AMT" AS c5, t1."ORDER_DT" AS c6, t1."ORDER_ID" AS c7, t1."SALE_TAX_AMT" AS c8,
t1."SHIP_METHOD_DSC" AS c9, t1."SHIP_TO_ID" AS c10, t1."SHIP_TO_NM" AS c11, t1."STATUS" AS c12,
t1."SUBTOTAL_AMT" AS c13, t1."TOTAL_ORDER_AMT" AS c14, t1."TRACKING_NO" AS c15
FROM {RTLAPPLOMS}.{CUSTOMER_ORDER} t1
警告 : | AquaLogic Data Services Platform によって生成される SQL 文とは異なり、置換される SQL 文は確認されずに基底のデータベースに渡されます。 このため、データベースにヒントを提供する以外の目的でこの機能を使用しないことをお勧めします。 さらに、デプロイする前に、置換される SQL 文と生成される SQL 文をテストで比較して、予期されるパフォーマンス上の利点が得られることを確認するようお勧めします。 |
最適なスレッド数の設定は、AquaLogic Data Services Platform をデプロイするマシンの物理的なリソース、予期される負荷、およびデプロイするアプリケーションのタイプに応じて変わります。 スレッド数を増やすことで処理を高速化できますが、各スレッドでメモリが消費されるので使用可能なリソースに基づいてバランスを取る必要があります。
スレッド数を設定する場合は、以下の一般的なガイドラインに従ってください。
AquaLogic Data Services Platform では Web サービスの呼び出しを取得するためだけにスレッド プールが使用されます。スレッドは、クエリによって Web サービスが呼び出される場合にのみ発生します。 そのため、Web サービスのコンテンツに依存しないアプリケーションに対しては、スレッド数を比較的少なく設定することができます。
WebLogic Server とアプリケーションのパフォーマンス チューニングの詳細については、次のドキュメントを参照してください。
[モニタ] タブを使用して、AquaLogic Data Services Platform アプリケーションの統計情報とステータス情報 (特にクエリ アクティビティに関する情報) を表示できます。 また、アクティブなアプリケーション プロセスをモニタし、プロセスを開始したユーザ、プロセスの実行時間、プロセス タイプに対するキャッシュされたエントリ数などの情報を表示することもできます。
[全般] 設定ページが表示されます。 管理者特権を持つユーザ名を使用して、コンソールにログインする必要があります。
アプリケーションのモニタ情報が表示されます (図 5-9 を参照)。
表 5-3 では、[モニタ] タブに表示される情報について説明します。
データ サービス関数は、一度呼び出されると、結果を取得するか、またはタイムアウト期間が経過する (タイムアウト期間が設定されている場合) まで実行されます。 タイムアウトを設定することで、応答不能なデータ ソースに対する最大待機時間をクエリに指定できます。
場合によっては、関数の実行をキャンセルしなければならないこともあります。 [モニタ] タブで、実行中のクエリを表示してキャンセルすることができます。 [モニタ] タブには、クエリに関連付けられたユーザやキャッシュの情報も表示されます。
プロセスを終了すると、進行中の処理が終了し、以降のノードを実行せずにプロセスが完了します。
注意 : | 送信されたクエリは、XA ドライバを使用している場合にのみロールバックされます。 |
注意 : | クエリを終了すると、クライアントで weblogic.xml.query.exceptions.XQuerySystemException が発生します。 |
管理プロパティとは、AquaLogic Data Services Console を使用してコンフィグレーションできるユーザ定義のプロパティです。 管理プロパティの値は、XQuery 関数 (データ サービス関数またはセキュリティ XQuery 関数) で使用できます。
注意 : | セキュリティ XQuery 関数については、「AquaLogic Data Services Platform リソースの保護」を参照してください。 |
管理プロパティを使用することで、データ サービス関数またはセキュリティ XQuery 関数の本文を変更することなく管理者によって簡単に変更できる関数パラメータを、容易に保持できるようになります。
管理プロパティはアプリケーション スコープを持ちます。つまり、アプリケーションのすべてのデータ サービスでプロパティ値を使用できます。 プロパティ値には、BEA 関数 get-property()
を使用する XQuery を介してアクセスできます。 この関数はプロパティ名を引数として取り、値を文字列として返します。 また、パラメータのデフォルト値として機能する引数も取ります。 デフォルト値は、そのプロパティがコンソールでコンフィグレーションされていない場合に使用されます。
以下に、管理プロパティを使用する、XQuery 関数ライブラリの関数の詳細な例を示します。
declare function f1:getMaximumAccountViewable() as xsd:decimal {
let $amount := fn-bea:get-property("maxAccountValue", "1000.00")
cast as xsd:decimal
return $amount
};
表 5-4 では、[管理プロパティ] タブに表示される情報について説明します。
場合によっては、別のアプリケーションによってデータベース テーブルがロックされているために AquaLogic Data Services Platform でテーブルからデータを読み込めないことがあります。この場合、AquaLogic Data Services Platform によって発行されたクエリは、そのアプリケーションがロックを解放するまでキューに入れられます。 この状態を回避するには、トランザクション アイソレーションを設定して WebLogic Server 上の JDBC 接続プールでコミットされていないデータを読み込めるようにします。
トランザクション アイソレーション レベルを設定するには、次の手順に従います。
http://<HostName>
:<Port>
/console
たとえば、WebLogic Server のローカル インスタンス (自分のマシンで実行されているインスタンス) の Administration Console を起動するには、Web ブラウザのアドレス フィールドに次の URL を入力します。
[接続] タブが表示されます (図 5-11 を参照)。
ページが拡張され、[詳細オプション] セクションが表示されます。
SQL SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED