この構成は2ノード・クラスタです。常にアクティブなノードは1つのみです。2つ目のノー ドは、1つ目のノードに障害が発生した場合にアクティブになります。Cold Failoverについて
は、『Oracle Application Server高可用性ガイド』を参照してください。
構成構成 構成構成
次の例に示すように、両方のノードを同じ構成にします。両方のOC4Jインスタンスの jms.xmlを変更します。jms-serverのhostパラメータを次のように設定します。
<jms-server host=vmt.us.oracle.com port="9127">
….
….
</jms-server>
ファイル・ベースのメッセージの永続性をキューに使用する場合、両方のノードからアクセス できる共有ディスク上にファイルを置く必要があります。共有ディスクは、一方のノードから 他方のノードにフェイルオーバーする際に、仮想IPを使用する必要があります。次のように persistence-fileを構成します。
<queue name="Demo Queue" location="jms/demoQueue"
persistence-file="/path/to/shared_file_system/demoQueueFile">
<description>A dummy queue</description>
</queue>
更新、停止および起動 更新、停止および起動 更新、停止および起動 更新、停止および起動
各ノードでは、次のコマンドを使用して、構成の更新、停止および起動を行います。
$ORACLE_HOME/dcm/bin/dcmctl updateConfig -ct oc4j
$ORACLE_HOME/opmn/bin/opmnctl stopall
$ORACLE_HOME/opmn/bin/opmnctl startall
JMSの高可用性とクラスタリング
OracleAS の専用 の専用 の専用 の専用 JMS サーバー サーバー サーバー サーバー
この構成では、Oracle Application Serverクラスタ環境で1つのOC4Jインスタンスが専用JMS サーバーとして構成されます。このOC4Jインスタンスはすべてのメッセージを処理するため、
常にメッセージの順序付けが維持されます。すべてのJMSアプリケーションは、この専用サー バーを使用してコネクション・ファクトリと宛先をホスティングし、エンキューおよびデ キューのリクエストを処理します。
専用JMSプロバイダとして機能するOC4J JVMは、クラスタ内のすべてのJMSアプリケー ションに対して1つのみです。そのために、opmn.xmlファイル内のJMSポート範囲は専用 OC4Jインスタンス用の1つのポートのみに制限されます。
この図はOC4JのHomeインスタンス内のアクティブなJMSサーバーを示していますが、JMS プロバイダは専用OC4Jインスタンス内でホスティングすることをお薦めします。たとえば、
HomeはOracle Application Serverのインストール後に実行されるデフォルトのOC4Jインスタ
ンスですが、Oracle Enterprise Manager 10gを使用して2つ目のOC4Jインスタンスを作成す る必要があります。次のopmn.xmlファイルの例では、OC4JインスタンスJMSserverが作 成されます。
図 図 図
図3-3 OracleASの専用の専用の専用の専用JMSサーバーサーバーサーバーサーバー
OC4JインスタンスJMSserverを作成した後、このOracle Application Serverインスタンス についてopmn.xmlファイルに次の2つの変更を加える必要があります。
1. このOC4Jインスタンス(JMSserver)用に起動されるJVMが1つのみであることを確認 します。
2. このインスタンスのJMSポート範囲の値を1つのみ指定します。
OC4Jインスタンス内のJVMを1つに限定することで、他のJVMが同じ永続性ファイル・セッ トを使用しないことが保証されます。
ポート値を1つにすると、OPMNでは、常にこの値が専用JMSサーバーに割り当てられます。
このポート値を使用して、jms.xmlファイル内でコネクション・ファクトリを定義できます。
他のOC4Jインスタンスは、これを専用JMSサーバーへの接続に使用します。
OPMNと動的ポート割当ての詳細は、『Oracle Process Manager and Notification Server管理者 ガイド』を参照してください。
OPMN 構成の変更 構成の変更 構成の変更 構成の変更
次のXMLはopmn.xmlファイルから抜粋したもので、必要な変更内容と、変更する箇所を見 つける方法を示しています。
■ Oracle Enterprise Manager 10gを使用してOC4JインスタンスJMSserverが作成されてお
り、(1)で示されている行はJMSserver定義の開始位置を示しているとします。
■ (2)で示されている行は、OC4J JVMにJMSポートを割り当てるときにOPMNで使用される JMSポート範囲です。JMSプロバイダとして機能させる必要のある専用OC4Jインスタン スについて、この範囲を1つの値に限定します。この例では、元の範囲は3701~3800で す。コネクション・ファクトリ定義では、この値を3701~3701として構成し、使用ポー トを確認します。
■ (3)で示されている行では、JMSserverのデフォルト・アイランドに含まれるJVMの数を 定義します。デフォルトでは、この値は1に設定されます。この値は常に1にする必要が あります。
<ias-component id="OC4J">
(1) <process-type id="JMSserver" module-id="OC4J" status="enabled">
<module-data>
<category id="start-parameters">
<data id="java-options" value="-server
-Djava.security.policy=$ORACLE_HOME/j2ee/home/config/java2.policy -Djava.awt.headless=true
"/>
</category>
<category id="stop-parameters">
<data id="java-options"
value="-Djava.security.policy=
$ORACLE_HOME/j2ee/home/config/java2.policy -Djava.awt.headless=true"/>
</category>
</module-data>
<start timeout="600" retry="2"/>
<stop timeout="120"/>
<restart timeout="720" retry="2"/>
<port id="ajp" range="3000-3100"/>
<port id="rmi" range="3201-3300"/>
(2) <port id="jms" range="3701-3701"/>
(3) <process-set id="default_island" numprocs="1"/>
</process-type>
</ias-component>
OracleAS JMS の構成 の構成 の構成 の構成
この使用例で前述したように、OC4Jインスタンスの1つはJMSサーバー専用です。他のOC4J インスタンスおよびOC4J外部で実行されるスタンドアロンJMSクライアントは、JMS要求を 専用JMSサーバーに転送するように設定する必要があります。すべてのコネクション・ファク トリと宛先は、JMSサーバー・インスタンスのjms.xmlファイル内で定義されます。この jms.xmlファイルを、JMSサーバーと通信する他のすべてのOC4Jインスタンスにコピーする 必要があります。
注意 注意 注意
注意: 構成ファイルを手動で(つまりOracle Enterprise Manager 10gを使用 せずに)編集する場合は、次のDistributed Configuration Management
(DCM)コマンドを実行します。
dcmctl updateConfig
詳細は、『Distributed Configuration Management管理者ガイド』を参照して
ください。
JMSの高可用性とクラスタリング
専用JMSサーバー上のjms.xmlファイル内で構成するコネクション・ファクトリでは、サー バーのホスト名とポート番号を明示的に指定する必要があります。これらの値(特にポート番 号)には、前述のとおり専用サーバー用にOPMNで定義された1つのポート番号を使用する必 要があります。これと同じコネクション・ファクトリの構成を他のすべてのOC4Jインスタン スにも使用します。これにより、OC4Jインスタンスすべてがその操作について専用JMSサー バーを指すことになります。
そのため、専用JMSサーバーがhost1、ポート3701上で実行される場合、クラスタ内の各 OC4Jインスタンス用のjms.xmlファイル内で定義されたコネクション・ファクトリはすべ て、host1、ポート3701を指す必要があります。このポートは、専用OC4Jインスタンス(こ の例ではJMSserver)内で専用JMSサーバー用にopmn.xmlファイル内で使用可能な単一 ポートです。
専用JMSサーバー上のjms.xmlファイル内で構成されている宛先は、他のすべてのOC4Jイ ンスタンス上でも構成する必要があります。ただし、これらの宛先の物理ストアは専用JMS サーバー上にあります。
キュー・コネクション・ファクトリ定義の例 キュー・コネクション・ファクトリ定義の例 キュー・コネクション・ファクトリ定義の例 キュー・コネクション・ファクトリ定義の例
専用OracleAS JMSサーバーのjms.xmlファイル内でキュー・コネクション・ファクトリを定
義する例を次に示します。
<!-- Queue connection factory -->
<queue-connection-factory name="jms/MyQueueConnectionFactory"
host="host1" port="3701"
location="jms/MyQueueConnectionFactory"/>
専用JMSサーバーのjms.xmlファイルには、管理上の変更(つまり、新規Destinationオ ブジェクトの追加)を行う必要があります。次に、JMSアプリケーションを実行する他のすべ てのOC4Jインスタンスのjms.xmlファイル内で、同じ変更を実行します。この変更には、手 動で実行する方法と、専用JMSサーバーのjms.xmlファイルを他のOC4Jインスタンスにコ ピーする方法があります。
アプリケーションのデプロイ アプリケーションのデプロイ アプリケーションのデプロイ アプリケーションのデプロイ
JMSアプリケーションが実際にデプロイされる場所は、ユーザーが決定します。専用JMSサー バーは、JMS要求を処理する一方で、デプロイされたJMSアプリケーションも実行できます。
また、JMSアプリケーションは他のOC4Jインスタンス(つまりHome)にもデプロイできま す。
専用JMSサーバーのjms.xmlファイルは、JMSアプリケーションがデプロイされるOC4Jイ ンスタンスすべてに伝播させる必要があることに注意してください。JMSアプリケーションは、
別のJVMで実行中のスタンドアロンJMSクライアントにデプロイすることもできます。
高可用性 高可用性 高可用性 高可用性
OPMNには、専用JMSサーバーの稼働を維持するために、フェイルオーバー・メカニズムが 用意されています。なんらかの理由でJMSサーバーに障害が発生すると、OPMNはそれを検 出してJVMを再起動します。ハードウェア障害が発生した場合、メッセージをリカバリする唯 一の方法は、永続する宛先がネットワーク・ファイル・システム上でホスティングされるよう にすることです。OC4Jインスタンスを起動し、これらの永続するファイルを指すように構成で きます。
OPMNによるOracle Application Serverプロセスの管理の詳細は、『Oracle Process Manager
and Notification Server管理者ガイド』を参照してください。