WebLogic Server 環境のコンフィグレーション

     前  次    新しいウィンドウで目次を開く     
ここから内容の開始

WebLogic 永続ストアの使い方

以下の節では、永続ストアをコンフィグレーションおよびモニタする方法について説明します。永続ストアは、永続性を必要とする WebLogic Server のサブシステムおよびサービスに対し、組み込みの高性能なストレージ ソリューションを提供します。

 


永続ストアの概要

永続ストアは、永続性を必要とする WebLogic Server のサブシステムおよびサービスに対し、組み込みの高性能なストレージ ソリューションを提供します。たとえば、永続 JMS メッセージを格納したり、ストア アンド フォワード機能を使用して、メッセージを一時的に格納してから送信したりできます。永続ストアは、ファイルベースのストアまたは JDBC 対応データベースの永続性をサポートします。

表 6-1 に、永続ストアへの接続を作成できる WebLogic サービスおよびサブシステムの多くを示します。永続ストアを使用する各サブシステムには、そのサブシステムを特定するためのユニークな接続 ID が指定されます。

表 6-1 永続ストアのユーザ
サブシステム/サービス
格納対象
詳細についての参照先
診断サービス
ログ レコード、データ イベント、収集されたメトリック
『WebLogic 診断フレームワークのコンフィグレーションと使い方』の「WLDF コンフィグレーションについて
JMS メッセージ
永続メッセージ、恒久サブスクライバ
『WebLogic JMS プログラマーズ ガイド』の「メッセージング モデルについて
JTA トランザクション ログ (TLOG)
サーバによって調整された、完了していない可能性のあるコミット済みトランザクションに関する情報
『WebLogic JTA プログラマーズ ガイド』の「トランザクションの管理
パス サービス
メッセージのグループからメッセージング リソースへのマッピング
『WebLogic JMS のコンフィグレーションと管理』の「WebLogic パス サービスの使用
ストア アンド フォワード (SAF) サービス エージェント
SAF 送信エージェントから SAF 受信エージェントに再転送するメッセージ
『WebLogic ストア アンド フォワードのコンフィグレーションと管理』の「ストア アンド フォワード サービスについて
Web サービス
信頼性のある WebLogic Web サービスの呼び出しによる SOAP 要求メッセージおよび応答メッセージ
『WebLogic Web サービス プログラマーズ ガイド (応用編)』の「Web サービスの信頼性のあるメッセージングの使用
EJB タイマー サービス
EJB タイマー オブジェクト
『WebLogic エンタープライズ JavaBeans (EJB) プログラマーズ ガイド』の「エンタープライズ JavaBean について

ストアの接続 ID の詳細については、「ストア接続のモニタ」を参照してください。

永続ストアの特長

永続ストアの主な特徴は以下のとおりです。

高パフォーマンスのスループットとトランザクション サポート

永続ストアのパフォーマンス上の主な目標はスループットの向上です。複数のサブシステムが同じサーバ インスタンスまたは移行可能な対象を対象指定していれば、これらのサブシステムで同じ永続ストアを共有できます。

この点が、永続ストアを使用するパフォーマンス上の利点です。なぜなら、同じストアを使用する複数のサービスに関係するトランザクションであっても、そのトランザクションのトランザクション マネージャによって永続ストアが単一のリソースとして扱われるためです。たとえば、JMS と EJB のタイマーが 1 つのストアを共有し、JMS メッセージと EJB タイマーが単一のトランザクションで作成された場合、そのトランザクションは 1 フェーズとなり、リソースの書き込みは 1 回しか発生しません。一方、2 フェーズの場合であれば、リソースごとに 2 回ずつで合計 4 回のリソース書き込みが発生し、加えてトランザクション ログでのトランザクション エントリの書き込みが 1 回発生することになります。

ファイル ストアおよび JDBC ストアは、プロセスのクラッシュやハードウェアの電源障害が発生しても、コミットされた更新を失うことなく存続できます。コミットされていない更新は保持されるとは限りませんが、クラッシュ後にトランザクションが部分的に完了した状態で残されることはありません。

ファイル ストアと JDBC ストアの比較

以下に、ファイル ストアと JDBC ストアの類似点と相違点を挙げます。

ファイル ストア データのセキュリティ

ファイル ストア データのセキュリティを確保するには、すべてのファイル ストア ディレクトリに適切なディレクトリ パーミッションを設定する必要があります。データの暗号化が必要な場合は、適切なサード パーティ暗号化ソフトウェアを使用する必要があります。

永続ストアの高可用性

高可能性の点では、永続ファイルベースのストア (デフォルトまたはカスタム) は、「サーバ全体レベル」の移行機能の一部としてその親サーバとともに移行できます。この場合、サービスレベルではなく、サーバレベルで自動または手動で移行できます。詳細については、『WebLogic Server クラスタ ユーザーズ ガイド』の「サーバおよびサービスの移行について」を参照してください。ただし、ファイルベースのストアは、クラスタ内の移行可能な対象サーバからアクセスできる共有ディスク上にコンフィグレーションする必要があります。

永続ストアの移行

ファイルベースのストアおよび JDBC 対応ストアも、ストアを使用してデータを維持する JMS 関連サービス (ストア、JMS サーバ、SAF エージェント、パス サービスなど) の「サービスレベル」の移行の一部として移行できます。サービスレベルの移行は、JMS 関連サービスをグループ化した「移行可能対象」ごとに制御されます。移行可能対象は、クラスタ内のいずれか 1 つの物理サーバでホストされます。移行可能対象によってホストされる JMS サービスは、サーバ障害への対処として、または定期的なサーバ メンテナンスの一環として手動で移行できます。移行可能な対象を移行すると、その対象によってホストされているすべての固定サービスも移行されます。サービスレベルの移行の詳細については、『WebLogic Server クラスタ ユーザーズ ガイド』の「サービスレベルの移行」を参照してください。

移行可能な JMS 関連サービスで、デフォルトのファイル ストアを使用することはできません。したがって、カスタムのファイル ストアまたは JDBC ストアをコンフィグレーションし、関連付けた JMS サーバ、SAF エージェント、またはパス サービスと同じ移行可能対象にそのストアを対象指定する必要があります。

ヒント : パス サービスの場合は、専用のカスタム ストアと移行可能対象を使用するのがベスト プラクティスです。

また、移行可能なファイル ストアは、クラスタ内の移行可能対象から使用できる共有ディスク上にコンフィグレーションするか、ファイル ストアのデータをバックアップ サーバに移行するための移行前/移行後スクリプトを使用できるようにしておく必要もあります。詳細については、『WebLogic Server クラスタ ユーザーズ ガイド』の「JMS サービスで使用できるカスタム ストア」を参照してください。

高可用性ストレージ ソリューション

JMS サーバまたは JTA トランザクション ログの移行後に、リモート マシンに存在する永続ストアにアクセスするアプリケーションがある場合は、以下の高可用性ストレージ ソリューションのいずれかを実装する必要があります。

 


デフォルト永続ストアの使い方

管理サーバを含め、すべてのサーバ インスタンスには、コンフィグレーションが不要なデフォルトの永続ストアがあります。デフォルト ストアはファイルベースのストアで、サーバ インスタンスの data\store\default ディレクトリに格納された一連のファイルにデータを保持します。デフォルト ストア用のディレクトリは、存在しない場合には自動的に作成されます。このデフォルト ストアは、特定のストアを明示的に選択する必要がなく、システムのデフォルトのストレージ メカニズムを使用することで最適に動作するサブシステムから使用することができます。たとえば、永続ストアがコンフィグレーションされていない JMS サーバは、管理対象サーバ用のデフォルトのストアを使用して永続メッセージングをサポートします。

デフォルト ストアは、DefaultFileStoreMBean パラメータを直接操作してコンフィグレーションできます。この MBean がドメインのコンフィグレーション ファイルに定義されていない場合は、DefaultFileStoreMBean がデフォルト値で常に存在していることがコンフィグレーション サブシステムによって保証されます。

また、Administration Console を使用してデフォルト ストアのパラメータを変更することもできます。たとえば、デフォルトのディレクトリの場所や同期書き込みポリシーを変更できます。詳細については、Administration Console オンライン ヘルプの「デフォルト ストアの設定の変更」を参照してください。

デフォルトのファイル ストアを使用するだけでなく、特定のニーズに合わせてカスタム ファイル ストアや JDBC ストアをコンフィグレーションすることもできます。詳細については、「カスタム ファイル ストアと JDBC ストアの使い方」を参照してください。唯一の例外は、JTA トランザクション ログ (TLOG) です。TLOG では、常にデフォルト ストアを使用します。これは、サーバの起動プロセスの初期に必ずトランザクション ログを使用するためです。TLOG の詳細については、『WebLogic JTA プログラマーズ ガイド』の「トランザクション ログ ファイル」を参照してください。

デフォルト ストアの場所

デフォルト ストアのデータは、ドメインのルート ディレクトリの servername サブディレクトリにある data\store\default ディレクトリに保持されます。

たとえば、デフォルト ファイル ストアのディレクトリ名が指定されていない場合、次のディレクトリがデフォルトになります。

   bea_home\user_projects\domains\domain-name\servers\server-name\data\store\default

domainname はドメインのルート ディレクトリ (通常は c:\bea\user_projects\domains\domainname) です。これは、WebLogic Server プログラム ファイルが格納されるディレクトリ (通常は c:\bea\wlserver_10.0) に対応するディレクトリです。

ただし、DefaultFileStoreMBean パラメータを直接操作するか Administration Console を使用して、デフォルト ストアの格納場所を変更することもできます。詳細については、Administration Console オンライン ヘルプの「デフォルト ストアの設定の変更」を参照してください。

デフォルト ファイル ストアの例

ドメインのコンフィグレーション ファイルでのデフォルト ファイル ストアの定義例を示します。この例では、デフォルトのディレクトリと同期書き込みポリシーの設定がオーバーライドされています。

<server>
<name>myserver</name>
<default-file-store>
<directory>C:/store</directory>
<synchronous-write-policy>Disabled</synchronous-write-policy>
</default-file-store>
</server>

 


カスタム ファイル ストアと JDBC ストアの使い方

デフォルトのファイル ストアを使用するだけでなく、特定のニーズに合わせてファイル ストアや JDBC ストアをコンフィグレーションすることもできます。デフォルト ファイル ストアと同様、カスタム ファイル ストアもディレクトリに格納された一連のファイルにデータを保持します。一方、カスタム ファイル ストアを作成して、特定のストレージ デバイスにデータを保持したり、ファイル ストアにアクセスする JMS サービスがクラスタ内の別のサーバ メンバーにストアを移行できるようにしたりすることも可能です。ファイル ストアのディレクトリをコンフィグレーションする場合は、そのファイル ストアが配置されているサーバ インスタンスにアクセスできるディレクトリを設定する必要があります。

JDBC ストアは、リレーショナル データベースをストレージとして使用している場合にコンフィグレーションできます。JDBC ストアを使用することで、指定の JDBC データ ストアを介してアクセスできる標準の JDBC 対応データベースに永続メッセージを格納できます。JDBC ストアのデータベース テーブルに格納されたデータには、WLStore という論理名が付けられます。データベースの高可用性とパフォーマンスをコンフィグレーションするかどうかは、データベース管理者の判断です。JDBC ストアでは、JMS サービスを自動または手動で移行する移行可能対象をサポートすることもできます。

永続ストアのコンフィグレーションの詳細については、「カスタム永続ストアを使用すべき状況」を参照してください。

カスタム永続ストアを使用すべき状況

WebLogic Server では、カスタム ファイル ストアや JDBC ストアを作成するためのコンフィグレーション オプションが用意されています。たとえば、次のような状況が考えられます。

永続ストアの作成方法

カスタム永続ストアは、以下の方法でコンフィグレーションできます。

 


カスタム (ユーザ定義) ファイル ストアの作成

以下の節では、カスタム ファイル ストアの例を示し、同期書き込みポリシーを選択する上でのコンフィグレーション ガイドラインについて説明します。

カスタム ファイル ストアを作成する場合は、デフォルトの FileStoreMBean パラメータを直接編集できます。Administration Console を使用してカスタム ファイル ストアを作成する方法については、Administration Console オンライン ヘルプの「ファイル ストアの作成」を参照してください。

カスタム ファイル ストアをコンフィグレーションする主な手順

カスタム ファイル ストアを作成するための主な手順は次のとおりです。

  1. ファイル ストアのデータを格納するディレクトリを作成します。
  2. カスタム ファイル ストアを作成し、作成したディレクトリの場所を指定します。
  3. カスタム ファイル ストアにアクセスするサブシステムまたは移行可能対象に、以下の方法でカスタム ファイル ストアを関連付けます。
    • JMS サーバの場合は、[コンフィグレーション : 全般] ページでカスタム ファイル ストアを選択します。
    • ストア アンド フォワード エージェントの場合は、[コンフィグレーション : 全般] ページでカスタム ファイル ストアを選択します。
    • パス サービスの場合は、[コンフィグレーション : 全般] ページでカスタム ファイル ストアを選択します。

カスタム ファイル ストアの例

ドメインのコンフィグレーション ファイルでのデフォルト ファイル ストアの定義例を示します。この例では、ファイルが /disk1/jmslog ディレクトリに保持されるように定義されています。

<file-store>
<name>SampleFileStore</name>
<target>myserver</target>
<directory>/disk1/jmslog</directory>
</file-store>

表 6-2 に、ファイル ストアの変更可能なコンフィグレーション パラメータを示します。

表 6-2 ファイル ストアのコンフィグレーション オプション
オプション
必須/省略可能
説明
名前
必須
ファイル ストアの名前。ドメイン内のすべてのストアの間でユニークであることが必要。
対象
必須
ファイル ストアを対象指定するサーバ インスタンスまたは移行可能対象。複数のサブシステムが同じサーバ インスタンスまたは移行可能対象を対象指定していれば、これらのサブシステムで同じファイル ストアを共有できる。

注意 : JMS サービスで移行可能対象を使用する場合は、ファイル ストアを同じ移行可能対象に対象指定する必要がある。『WebLogic Server クラスタ ユーザーズ ガイド』の「サービスレベルの移行」を参照。

ディレクトリ
必須
ファイル ストアを保持するディレクトリのファイル システム上のパス名。
論理名
省略可能
必要に応じて、EJB などのサブシステムでモジュールをクラスタ全体にデプロイする場合に使用する。ただし、クラスタ内のサーバ インスタンスごとに別々の物理ストアが必要になる。このようなコンフィグレーションでは、各物理ストアに固有の名前を付けるが、すべての永続ストアで同じ論理名を共有する。
同期書き込みポリシー
省略可能
必要に応じて、ファイル ストアがディスクにレコードをフラッシュする方法を定義する。指定できる値は、[Direct-Write] (デフォルト)、[Cache-Flush]、および [Disabled]。

Administration Console を使用してカスタム ファイル ストアをコンフィグレーションする手順については、Administration Console オンライン ヘルプの「ファイル ストアの作成」を参照してください。

同期書き込みポリシーのコンフィグレーションのガイドライン

デフォルトの同期書き込みポリシーである [Direct-Write] では、ファイル ストアのデータが Solaris および Windows オペレーティング システムのディスクに直接書き込まれます。通常は、[Cache-Flush] を選んだ場合よりも速く書き込まれます。

通常、デフォルト ポリシーから [Disabled] に変更すると、ファイル ストアのパフォーマンスは大幅に向上します。その代わり、オペレーティング システムがクラッシュしたり、ハードウェアの障害が発生したりした場合には、メッセージがトランザクション対応であっても、送信したメッセージが失われたり、同じメッセージを重複して受信したりする可能性があります。これは、書き込みがメモリにキャッシュされると、ディスクに正常に格納されるまで待機せず、すぐにトランザクションが完了するためです。オペレーティング システムでは通常のシャットダウン時に未処理の書き込みをすべてフラッシュするので、OS をシャット ダウンするだけではこうしたエラーは発生しません。こうしたエラーは、ビジー状態のサーバの電源を突然遮断することでエミュレートできます。

 


JDBC ストアの作成

以下の節では、JDBC ストアの例を示し、既存の DDL を使用した JDBC ストア用のデータベースの作成について説明します。また、DDL ファイルで Oracle blob レコード カラムを有効にする方法についても説明します。

JDBC ストアを作成する場合は、デフォルトの JDBCStoreMBean パラメータを直接編集できます。Administration Console を使用して JDBC ストアを作成する手順については、Administration Console オンライン ヘルプの「JDBC ストアの作成」を参照してください。

JDBC ストアでプレフィックスを使用する場合のコンフィグレーション ガイドライン、および JDBC データ ソースの推奨設定については、「JDBC ストアのコンフィグレーションのガイドライン」を参照してください。

JDBC ストアをコンフィグレーションする主な手順

JDBC ストアを作成するための主な手順は次のとおりです。

  1. JDBC ストアへのインタフェースとなる JDBC データ ソースまたはマルチ データ ソースを作成します。
  2. JDBC ストアを作成し、これを JDBC データ ソースまたはマルチ データ ソースに関連付けます。
  3. プレフィックス オプションに、コンフィグレーションする JDBC ストア テーブルごとに 1 つのユニークな値をコンフィグレーションすることを強くお勧めします。
  4. JDBC ストアを使用するサブシステムに、JDBC ストアを関連付けます。
    • JMS サーバの場合は、[コンフィグレーション : 全般] ページで JDBC ストアを選択します。
    • ストア アンド フォワード エージェントの場合は、[コンフィグレーション : 全般] ページで JDBC ストアを選択します。
    • パス サービスの場合は、[コンフィグレーション : 全般] ページでカスタム ファイル ストアを選択します。

JDBC ストアの例

ドメインのコンフィグレーション ファイルでの JDBC ストアの定義例を示します。この例では、JDBC データ ソース MyDataSource を使用しており、論理名が指定されています。

<jdbc-store>
<name>SampleJDBCStore</name>
<target>yourserver</target>
<data-source>MyDataSource</data-source>
<logical-name>Baz</logical-name>
</jdbc-store>

表 6-3 に、JDBC ストアの変更可能なコンフィグレーション パラメータを示します。

表 6-3 JDBC ストアのコンフィグレーション オプション
オプション
必須/省略可能
説明
名前
必須
JDBC ストアの名前。ドメイン内のすべてのストアの間でユニークであることが必要。
対象
必須
JDBC ストアを対象指定するサーバ インスタンスまたは移行可能対象。複数のサブシステムが同じサーバ インスタンスまたは移行可能な対象を対象指定していれば、これらのサブシステムで同じ JDBC ストアを共有できる。

注意 : JMS サービスで移行可能対象を使用する場合は、JDBC ストアを同じ移行可能対象に対象指定する必要がある。『WebLogic Server クラスタ ユーザーズ ガイド』の「サービスレベルの移行」を参照。

データ ソース
必須
ストアのデータベース テーブル (WLStore) にアクセスするために、この JDBC ストアによって使用される JDBC データ ソースまたはマルチ データ ソース。このデータ ソースまたはマルチ データ ソースは、JDBC ストアと同じサーバ インスタンスを対象指定していなければならない。

注意 : グローバル トランザクションをサポートするようにコンフィグレーションされた JDBC データ ソースは指定できない。したがって、非 XA JDBC ドライバを使用する JDBC データ ソースを指定しなければならない。また、このデータ ソースで [ロギング ラスト リソース] または [2 フェーズ コミットのエミュレート] を有効にすることはできない。

プレフィックス名
省略可能
通常、JDBC ストアのテーブルのプレフィックスは [[[catalog.]schema.]prefix] というフォーマットで指定する。
複数の JDBC ストアを使用する場合は、コンフィグレーションする JDBC ストアごとに 1 つのユニークなプレフィックスを設定する必要がある。プレフィックスを指定しないと、JDBC ストアのテーブル名は単に WLStore となり、データベースでは JDBC 接続の現在のユーザに基づいて暗黙的にスキーマが決定される。また、2 つの JDBC ストアで同じデータベース テーブルを共有することはできない。詳細については、「JDBC ストアでのプレフィックスの使い方」を参照。
論理名
省略可能
必要に応じて、EJB などの WebLogic Server サブシステムでモジュールをクラスタ全体にデプロイする場合に使用する。ただし、クラスタ内のサーバ インスタンスごとに別々の物理ストアが必要になる。このようなコンフィグレーションでは、各物理ストアに固有の名前を付けるが、すべての永続ストアで同じ論理名を共有する。
DDL ファイルからのテーブルの作成
省略可能
JDBC ストアのデータベース テーブル (WLStore) を作成するために、必要に応じて、サポートされている DDL (データ定義言語) ファイルで使用する。このオプションは、JDBC ストアのデータベース テーブルがすでに存在する場合は無視される。詳細については、「デフォルトおよびカスタム DDL ファイルを使用した JDBC ストア テーブルの自動作成」を参照。

Administration Console を使用して JDBC ストアをコンフィグレーションする手順については、Administration Console オンライン ヘルプの「JDBC ストアの作成」を参照してください。

サポートされる JDBC ドライバ

JDBC ストアを使用する場合、JDBC ドライバを介してアクセスできるデータベースであればバッキング データベースにできます。WebLogic Server では、サポートされるデータベース用の一部の JDBC ドライバが自動的に検出されます。

これらのデータベースごとに対応する DDL (データ定義言語) ファイルがあり、WL_HOME\server\lib\weblogic.jar ファイル内の weblogic/store/io/jdbc/ddl ディレクトリに格納されています。WL_HOME は、WebLogic Server の最上位のインストール ディレクトリです。

表 6-4 サポートされる JDBC ドライバと対応する DDL ファイル
データベース
DDL ファイル
Cloudscape
cloudscape.ddl
IBM DB2
db2.ddl
db2v6.ddl
Informix
informix.ddl
Microsoft SQL (MSSQL) Server
msssql.ddl
HP NonStop SQL
nssql.ddl
MySQL
mysql.ddl
Oracle
oracle.ddl
oracle_blob.ddl
Pointbase
pointbase.ddl
Sybase
sysbase.ddl
Times Ten
timesten.ddl

DDL ファイルは、JDBC ストアのデータベース テーブル (WLStore) を作成するための SQL コマンド (末尾がセミコロン) を含むテキスト ファイルです。したがって、このリストに含まれていないデータベースを使用する場合は、そのデータベースに合わせて既存の DDL ファイルを編集します。詳細については、「カスタム DDL ファイルを使用した JDBC ストア テーブルの作成」を参照してください。

デフォルトおよびカスタム DDL ファイルを使用した JDBC ストア テーブルの自動作成

[JDBC ストア : コンフィグレーション] ページには [DDL ファイルからのテーブルの作成] オプションがあります。このオプションを使用すると、JDBC ストアのバッキング テーブル (WLStore) の作成に使用するコンフィグレーション済みの DDL ファイルにアクセスできます。JDBC ストアのバッキング テーブルがすでに存在する場合、このオプションは無視されます。このオプションを使用するのは、サポートされないデータベース用に作成したカスタム DDL ファイルを指定する場合や、以前のリリースの JMS JDBC ストア テーブルを現在の JDBC ストア テーブルにアップグレードする場合などです。

[DDL ファイルからのテーブルの作成] フィールドに DDL ファイル名が指定されておらず、バッキング テーブルが存在しないことが JDBC ストアによって検出されると、データベース ベンダに固有のコンフィグレーション済み DDL ファイルが実行され、自動的にテーブルが作成されます (「サポートされる JDBC ドライバ」を参照してください)。

[DDL ファイルからのテーブルの作成] に DDL ファイル名が指定されており、バッキング テーブルが存在しないことが JDBC ストアによって検出されると、まずファイル パスに指定した DDL ファイルが検索され、見つからない場合は CLASSPATH 内の DDL ファイルが検索されます。ファイルが見つかった時点で、その DDL ファイル内の SQL が実行されて JDBC ストアのバッキング テーブルが作成されます。コンフィグレーション済みのファイルが見つからず、既存のテーブルもない場合、JDBC ストアは起動に失敗します。

カスタム DDL ファイルを使用した JDBC ストア テーブルの作成

サポートされる JDBC ドライバ」のリストにないデータベースを使用する場合は、既存の DDL テンプレート ファイルをコピーし、使用するデータベースに合わせて編集できます。

  1. JDK で用意されている JAR ユーティリティを使用すると、次のコマンドで DDL ファイルを /weblogic/store/io/jdbc/ddl ディレクトリに抽出できます。
  2. jar xf weblogic.jar /weblogic/store/io/jdbc/ddl
    注意 : weblogic/store/io/jdbc/ddl パラメータを省略すると、jar ファイル全体が抽出されます。
  3. 使用しているデータベースに合わせて DDL ファイルを編集します。SQL コマンドは複数行にわたって指定できます。末尾にはセミコロン (;) を付けます。シャープ記号 (#) で始まる行はコメントです。
  4. 変更を保存し、新しい DDL の名前を適切な名前に変更します (例 : mydatabase.ddl)。
  5. Administration Console オンライン ヘルプの「JDBC ストアの作成」の説明に従って JDBC ストアを作成します。
  6. [コンフィグレーション] ページの [DDL ファイルからのテーブルの作成] オプションを使用して、作成したカスタム DDL ファイルを指定します (例 : /mydatabase.ddl)。
  7. 注意 : Windows システムの場合、絶対パス名には必ずドライブ文字を含めます。

Oracle BLOB レコード カラムの有効化

Oracle データベースの場合は、oracle_blob.ddl ファイルを使用すると、レコード カラムの型がデフォルトの LONG RAW 型ではなく BLOB 型の JDBC ストア テーブルを作成できます。oracle_blob.ddl ファイルは、「サポートされる JDBC ドライバ」に示すように、WebLogic CLASSPATH にあらかじめコンフィグレーションされています。

JDBC ストアで Oracle BLOB DDL を使用するには

  1. JDBC ストアを使用するサーバ インスタンスを停止します。
  2. JDBC ストア テーブルの管理」の説明に従って、現在の JDBC テーブルを削除します。
  3. サーバ インスタンスを再起動します。
  4. Administration Console オンライン ヘルプの「JDBC ストアの作成」の説明に従って、新しい JDBC ストアを作成します。
  5. [コンフィグレーション] ページの [DDL ファイルからのテーブルの作成] オプションで、oracle_blob.ddl ファイルの場所として /oracle_blob.ddl を指定します。
  6. [完了] をクリックすると、JDBC ストアのバッキング テーブルが作成されます。

すでに Oracle の LONG RAW カラムに入っているデータを保持する必要がある場合は、この方法で BLOB に切り替えないようにしてください。このような場合は、SQL ALTER TABLE コマンドに関する Oracle ドキュメントを参照してください。

JDBC ストア テーブルの管理

JDBC utils.Schema ユーティリティを使用すると、既存のバージョンを削除することで新しい JDBC ストア データベース テーブル (WLStore) を再生成できます。通常、このテーブルは自動的に作成されるため、このユーティリティを実行する必要はありません。しかし、既存の JDBC ストア データベース テーブルに障害が発生した場合は、utils.Schema ユーティリティを使用して削除できます。

utils.Schema ユーティリティは Java プログラムで、以下の項目を指定するコマンドライン引数をとります。

utils.Schema ユーティリティを使用した JDBC ストア テーブルの削除

utils.Schema コマンドを次のように入力します。

   $ java utils.Schema url JDBC_driver [options] DDL_file
注意 : utils.Schema を実行するには、CLASSPATHweblogic.jar ファイルを指定する必要があります。

表 6-5 に、utils.Schema のコマンドライン引数を示します。

表 6-5 utils.Schema のコマンドライン引数
引数
説明
url
データベース接続 URL。この値は、JDBC 仕様の定義に従ってコロン区切りの URL にする。
JDBC_driver
JDBC ドライバ クラスの完全パッケージ名。
options
省略可能なコマンド オプション。
データベースの必要に応じて、以下のものを指定する。
  • ユーザ名とパスワード。次のように指定する。
    -u <username> -p <password>
  • JDBC データベース サーバのドメイン ネーム サーバ (DNS) 名。次のように指定する。
    -s <dbserver>
-verbose オプションも指定可能。このオプションを指定すると、utils.Schema は実行時に SQL コマンドをエコーする。
DDL_file
実行する SQL コマンドが記された DDL テキスト ファイルの絶対パス名。詳細については、「サポートされる JDBC ドライバ」を参照。

たとえば、次のコマンドでは、ユーザ名 user1、パスワード foobar で、Oracle サーバ DEMOMYWLStore という JDBC テーブルが削除されます。

$ echo "drop MYWLStore;" > drop.ddl
$ java utils.Schema 
jdbc:weblogic:oracle:DEMO \
weblogic.jdbc.oci.Driver -u user1 -p foobar -verbose \
drop.ddl

 


JDBC ストアのコンフィグレーションのガイドライン

以下の節では、JDBC ストアのプレフィックスを使用する場合のガイドライン、JDBC ストア用の WebLogic JDBC データ ソースの推奨設定、および JDBC ストアを使用した JMS トランザクションの処理について説明します。

JDBC ストアでのプレフィックスの使い方

JDBC ストア データベースには、WLStore というデータベース テーブルが含まれます。このデータベース テーブルは、WebLogic Server によって自動的に生成され、内部的に使用されます。JDBC ストアには任意指定のプレフィックス名パラメータがあり、これを使用するとより正確にデータベース テーブルにアクセスできます。

JDBC WLStore テーブル名のプレフィックスはコンフィグレーションするのが常にベスト プラクティスです。特に次の場合にはコンフィグレーションする必要があります。

JDBC ストア テーブルの規則

データの消失を避けるため、以下の規則に従ってください。

プレフィックス名のフォーマットのガイドライン

ほとんどのデータベースでは、JDBC ストアのバッキング データベース テーブルのプレフィックス名オプションを、コンフィグレーションした JDBC ストアごとに次のフォーマットで設定する必要があります。これにより、JDBC ストア テーブル名にプレフィックスが付加され、有効なテーブル名になります。

   [[[catalog.]schema.]prefix]

[[catalog.]schema.]prefix フォーマット内の各ピリオド記号は重要です。通常、catalog は DBMS が参照するシステム テーブルのセットを識別し、schema はテーブル オーナー (username) の ID に対応します。プレフィックスを指定しないと、JDBC ストアのテーブル名は単に WLStore となり、データベースでは JDBC 接続の現在のユーザに基づいて暗黙的にスキーマが決定されます。

たとえば、データベース管理者は、次のようにプロダクション データベースで販売部門用の固有のテーブルを管理できます。

   [[[Production.]JMSAdmin.]Sales]

この場合、テーブルは JMSAdmin スキーマによって Production カタログ内に作成され、SalesWLStore という名前になります。

Oracle などの一部の DBMS ベンダの場合、設定または選択するカタログがないので、このフォーマットは [[schema.]prefix] となります。詳細については、お使いの DBMS のドキュメントでテーブルの完全修飾名に関する説明を参照してください。ただし、その DBMS で指定されている構文が、このオプションに必要なフォーマットとは異なる場合があることに注意します。

警告 : WLStore テーブルがすでにデータベース内にある状態でプレフィックス名の設定を変更する場合は、既存のテーブル データの保持の面で注意が必要です。この場合、データベース管理者が既存のデータベース テーブルの名前を変更して、新たにコンフィグレーションしたテーブルの名前に一致させる必要があります。

JDBC ストア用の JDBC データ ソースの推奨設定

JDBC ストアに JDBC データ ソースまたはマルチ データ ソースを使用する場合は、以下の設定を推奨します。

障害が発生したデータベースへの自動再接続

WebLogic Server には、堅牢な JDBC データ ソースが用意されています。JDBC 接続プールでは、障害が発生したデータベースがオンラインに復旧した場合、WebLogic Server を再起動しなくても、自動的にこのデータベースとの再接続を確立できます。この機能を活用し、JDBC ストアをより堅牢なものとして使用するには、JDBC ストアに関連付けられている JDBC データ ソースの以下のオプションをコンフィグレーションします。

TestConnectionsOnReserve="true"
TestTableName="SYSTABLES"
ConnectionCreationRetryFrequencySeconds="600"

JDBC のデフォルトのテスト テーブル名については、『WebLogic JDBC のコンフィグレーションと管理』の「データ ソースの接続テスト オプション」を参照してください。データベースの再接続の試行数の設定については、『WebLogic JDBC のコンフィグレーションと管理』の「接続作成の再試行の有効化」を参照してください。

WebLogic Type 4 JDBC DB2 ドライバ用に必要な設定

JDBC ストアとして使用するデータ ソースで DB2 用の WebLogic Type 4 JDBC ドライバを使用する場合は、JMS の内部的なバッチ処理の要件を満たすため、BatchPerformanceWorkaround プロパティを「true」に設定する必要があります。

詳細については、『WebLogic Type 4 JDBC ドライバ ガイド』の「バッチ挿入およびバッチ更新に関するパフォーマンスの回避策」を参照してください。

JDBC ストアを使用した JMS トランザクションの処理

JDBC ストアは、グローバル トランザクションをサポートするようにコンフィグレーションされた JDBC データ ソースを使用するようにコンフィグレーションすることはできません。JDBC ストアは、非 XA JDBC ドライバを使用する JDBC データ ソースを使用する必要があります。また、このデータ ソースで [ロギング ラスト リソース] または [2 フェーズ コミットのエミュレート] を有効にすることはできません。

JDBC ストアは、XAResource インタフェースを実装しているため、JDBC ストア自体のリソース マネージャとして動作し、JDBC ドライバ レベルより上位のトランザクションを処理します。つまり、ストア自体が XAResource を実装し、メッセージがデータベースに格納されている場合でもそのデータベースに依存せずにトランザクションを処理します。

このため、JDBC ストアとデータベース (JMS メッセージが格納されているデータベースと同じ場合でも) を使用する場合、それは常に 2 フェーズ コミット トランザクションになります。

JDBC ストアでの JMS トランザクションの使用については、『WebLogic JMS プログラマーズ ガイド』の「WebLogic JMS によるトランザクションの使い方」を参照してください。

パフォーマンスは、以下の方法で向上させることもできます。

 


永続ストアのモニタ

既存の各永続ストアおよび開かれている各ストア接続の統計情報をモニタできます。

ストアのモニタ

各永続ストアは、実行時には PersistentStoreRuntimeMBean インスタンスによって表現されます。以下のオプションが用意されています。

表 6-6 永続ストアの実行時オプション
オプション
説明
CreateCount
この永続ストアに対して発行された作成リクエストの数
ReadCount
この永続ストアに対して発行された読み込みリクエストの数
UpdateCount
この永続ストアによって発行された更新リクエストの数
DeleteCount
この永続ストアによって発行された削除リクエストの数
ObjectCount
この永続ストアに含まれるオブジェクトの数
Connections
この永続ストアのアクティブな接続の数
PhysicalWriteCount
永続ストアがそのデータを恒久ストレージにフラッシュした回数

ストア接続のモニタ

永続ストアは、開かれている各永続ストア接続についても PersistentStoreConnectionRuntimemMBean を登録します。以下のオプションが用意されています。

表 6-7 永続ストア接続の実行時オプション
オプション
説明
CreateCount
この接続に対して発行された作成リクエストの数
ReadCount
この接続に対して発行された読み取りリクエストの数
UpdateCount
この接続によって発行された更新リクエストの数
DeleteCount
この接続によって発行された削除リクエストの数
ObjectCount
この接続に含まれるオブジェクトの数

表 6-8 に、永続ストアへの接続を作成できる WebLogic サービスおよびサブシステムの実行時プレフィックス名のほとんどを示します。

表 6-8 永続ストアの実行時プレフィックス名
サブシステム/サービス
実行時プレフィックス名
デプロイメント
weblogic.deploy.internal
internal はデプロイメント接続の名前
診断サービス
weblogic.diagnostics.internal
internal は診断アーカイブ接続の論理名
EJB タイマー サービス
weblogic.ejb.timer.internal
internal は、サーバ インスタンス内でユニークに特定される EJB デプロイメント
JMS サービス
JMS サーバ :
weblogic.messaging.jmsServer.internal
internal は JMS サーバ接続の名前
JMS 恒久サブスクライバ :
weblogic.messaging.jmsServer.durablesubs.internal
internal は恒久サブスクライバ接続の名前
JTA トランザクション ログ (TLOG)
weblogic.transaction.internal
internal は TLOG 接続の名前
パス サービス
weblogic.messaging.PathService.internal
internal はパス サービス接続の名前
SAF サービス
SAF エージェント
weblogic.messaging.SAFAgent@server1.internal
internal は SAF エージェントの接続の名前
SAF 恒久サブスクライバ :
weblogic.messaging.SAFAgent@server1.durablesubs.internal
internal は恒久サブスクライバ接続の名前
Web サービス
weblogic.wsee.server.store.internal
internal は Web サービスの接続の名前

 


永続ストアの管理

WebLogic ストア管理ユーティリティを使用すると、WebLogic 永続ストアのトラブルシューティングを行うことができます。ストア ユーティリティで操作できるのは、実行中のサーバ インスタンスによって開かれていないストアのみです。このユーティリティは、Java コマンドラインまたは WLST (WebLogic Scripting Tool) から実行できます。詳細については、「Java コマンドラインを使用したストア管理」および「WLST を使用したストア管理」を参照してください。

ストア管理の最も一般的な使用例は、サイズを減らすためにファイル ストアを圧縮する場合や、トラブルシューティングを目的としてファイル ストアまたは JDBC ストアの内容を XML ファイルにダンプする場合です。これらの使用例については後ほど説明します。

表 6-9 に、Java および WLST で使用できるストア管理コマンドを示します。

表 6-9 永続ストアの管理オプション
Java コマンド
WLST メソッド
説明
help
helpstore
使用できるコマンド、使用方法、使用例を表示する。
compact
compactstore
ファイル ストアによって占有されているスペースを圧縮およびデフラグする。このコマンドはオフラインでのみ機能し、JDBC ストアには使用できない。

注意 : 実行中のファイル ストアは、速度の面で最適化されており、スペースの面は考慮されていない。したがって、compact を実行することでストアのサイズが減り、割り当てられたスペースをより効率的に利用できる。

openfile
openfilestore
それ以降の処理のために既存のファイル ストアを開く。ファイル ストアが存在しない場合は、-create パラメータに基づいて、開かれた状態の新しいファイル ストアが作成される。
openjdbc
openjdbcstore
それ以降の処理のために既存の JDBC ストアを開く。JDBC ストアが存在しない場合は、開かれた状態の新しい JDBC ストアが作成される。
dump
dumpstore
ストアまたは接続の内容を、人間が読み取れる形式でユーザ指定の XML ファイルにダンプする。XML ファイルの形式は、永続ストアの診断イメージで使用する形式と同じ。
list
liststore
ストア名、開かれているストア、またはストア内の接続を一覧表示する。
なし
getstoreconns
指定したストア内の接続のリストを返す (スクリプト アクセス用)。
なし
getopenstores
開かれているストアのリストを返す (スクリプト アクセス用)。
opts
なし
ストア管理ツールの呼び出しオプションを一覧表示する。
verbose
なし
追加情報 (スタック トレースなど) の表示を制御する。
close
closestore
開かれているストアを閉じる。
quit
exit
ストア管理セッションを終了する。

永続ストアは、ファイル システム (ファイル ストア) または JDBC 対応のデータベース (JDBC ストア) によってバッキングできます。openfile/openfilestore() オプションと openjdbc/openjdbcstore() オプションを除けば、これら 2 種類のストアを操作するオプションに違いはありません。

ほとんどのコマンドとメソッドはストア名に対して実行でき、それ以外のコマンドやメソッドも接続名に対して実行できます。ストア接続は、永続ストア内のレコードの論理グループです。たとえば、JMS および JTA サブシステムでは、それぞれに対応するレコードが同じストア内の別々の接続に永続化されます。

Java コマンドラインを使用したストア管理

永続ストア管理ユーティリティを Java コマンドラインから起動するには、次のように入力します。

  > java weblogic.store.Admin
> storeadmin->

ストア管理ヘルプの使用

help と入力すると、使用できるストア管理コマンドの詳細な説明と、典型的なコマンド使用例が表示されます。次に示す例は、ストア名、開かれているストア、またはストア内の接続を一覧表示する list コマンドについての包括的なヘルプです。

  storeadmin->help list
Command:
list
Description:
lists store names, open stores, or connections in a store
Usage:
list [-store storename|-dir dir]
Examples:
list #lists all opened stores by storename
list -store store1 #lists all connections in store1
list -dir dir1 #lists all storenames found in dir1

ファイル ストアの内容のダンプ

ここでは、一連のストア管理コマンドを使用して、myfilestore に指定したファイル ストアの内容を、人間が読み取れる XML ファイル形式で一時ディレクトリにエクスポートする例を示します。この例では、ストアの接続名や実際のレコードの内容はダンプされません。これらをダンプするには、-conn パラメータや -deep パラメータを指定する必要があります。

  > storeadmin-> list -dir .
> storeadmin-> openfile -store myfilestore -dir .
> storeadmin-> dump -store myfilestore -out d:\tmp\filestore1-out
> storeadmin-> close -store myfilestore

list コマンドは、現在のディレクトリ内にあるすべてのストア名を表示します。dumplist (開かれているストアを一覧表示する場合のみ) などの管理機能を呼び出す前に、まず openfile コマンドや openjdbc コマンドを実行してファイルや JDBC ストアを開く (または作成して開く) 必要があります。開かれているストアの管理操作が完了したら、close コマンドでストアを閉じる必要があります。

ファイル ストアの圧縮

ここでは、mystores ディレクトリ内でファイル ストアによって占有されているスペースを、compact コマンドを使用して圧縮する例を示します。

  > storeadmin->compact -dir c:\mystores -tempdir c:\tmp

compact コマンドは、開かれていないファイル ストアに対してのみ実行できます。-dir ソース ディレクトリ内のファイルを格納するストアはすべて閉じておく必要があります。また、「tempdir」一時ディレクトリには、少なくともソース ディレクトリと同程度の余分なスペースが必要です。一時ディレクトリとして、ソース ディレクトリ内のディレクトリを指定することはできません。圧縮が正常に完了すると、新たに圧縮されたストア ファイルが mystores ディレクトリに格納されます。さらに、tmp ディレクトリの下にユニークな名前の新しいディレクトリが作成され、圧縮前のストア ファイルが格納されます。

WLST を使用したストア管理

WLST インタフェースには、Java コマンドラインにはないメソッドがいくつか用意されています。たとえば、WLST のスクリプトで使用できる getopenstoresgetstoreconns は、適切な Java オブジェクトを返します。

ストア管理ヘルプの使用

WLST から永続ストア管理ユーティリティにアクセスするには、次のように入力します。

> java weblogic.WLST

helpstore() と入力すると、使用できるストア管理コマンドの詳細な説明と、典型的なコマンド使用例が表示されます。次に示す例は、ストア名、開いているストア、またはストア内の接続を一覧表示する list コマンドについてのヘルプです。

  > wls:/offline> helpstore(liststore)
lists storenames, opened stores, or connections (for interactive access)
Parameters store and dir cannot both be specified concurrently.
    Usage: liststore(store='null',dir='null')
    @param store [optional] a previously opened JDBC or File store's name.
If store is specified, all connections in the store are listed.
@param dir [optional] directory for which to list available store names
If dir is specified, all store names in the directory are listed.
    If neither store nor dir are specified, all open store names are listed.
@return 1 on success, 0 on failure

なお、等号記号「=」が付いているパラメータは省略可能です。たとえば、compactstore メソッドは、compactstore(dir='storename', tempdir='/tmp') のように呼び出すこともできますが、compactstore(store='storename') のように呼び出して tempdir のデフォルト値を使用することもできます。省略可能なパラメータのデフォルト値は、コマンド固有のヘルプに一覧表示されます。

WLST を使用した JDBC ストアの内容のダンプ

ここでは、dumpstore メソッド (store, outfile, conn='null', deep='false') を使用して、myJDBCStore という JDBC ストアの内容を、人間が読み取れる XML ファイル形式で mystoredump-out.xml というファイルにエクスポートする例を示します。この例では、ストアの接続名や実際のレコードの内容はダンプされません。これらをダンプするには、conn パラメータや deep パラメータを指定する必要があります。

  > wls:/offline>
(openjdbcstore('myJDBCStore', 'oracle.jdbc.OracleDriver',
'jdbc:oracle:thin:@test2k31:1521:test120a', './wlstoreadmin-dump.props',
'jmstest', 'jmstest', '', 'jdbcstoreprefix')
dumpstore('myJDBCStore', 'mystoredump-out')
closestore('myJDBCStore')

dumpstoreliststore (開かれているストアを一覧表示する場合のみ) などの管理機能を呼び出す前に、まず openjdbcstore メソッドや openfilestore メソッドを使用してストアを開く (または作成して開く) 必要があります。開かれているストアの管理操作が完了したら、closestore コマンドでストアを閉じる必要があります。

WLST を使用したファイル ストアの圧縮

ここでは、mystores ディレクトリ内でファイル ストア ファイルによって占有されているスペースを、compactstore メソッド (dir,tempdir='null') を使用して圧縮する WLST スクリプトの例を示します。

  > wls:/offline> compactstore('c:\mystores','c:\tmpmystore.dir')

compactstore() メソッドは、開かれていないファイル ストアに対してのみ使用できます。「dir」ソース ディレクトリ内のファイルを格納するストアはすべて閉じておく必要があります。また、「tempdir」一時ディレクトリには、少なくともソース ディレクトリと同程度の余分なスペースが必要です。一時ディレクトリとして、ソース ディレクトリ内のディレクトリを指定することはできません。圧縮が正常に完了すると、新たに圧縮されたストア ファイルが mystores ディレクトリに格納されます。さらに、tmpmystore ディレクトリの下にユニークな名前の新しいディレクトリが作成され、圧縮前のストア ファイルが格納されます。

 


永続ストアの制限事項

永続ストアには以下の制限があります。


ページの先頭       前  次