ヘッダーをスキップ
Oracle® Fusion Middleware Oracle WebLogic Serverストア・アンド・フォワードの構成と管理
11g リリース1 (10.3.6)
B61638-04
  ドキュメント・ライブラリへ移動
ライブラリ
製品リストへ移動
製品
目次へ移動
目次

前
 
 

5 WebLogic SAFのトラブルシューティング

この章では、実行中のサーバーおよびそのコンテナ内にデプロイされているアプリケーションによって生成された診断データを作成、収集、分析、アーカイブ、およびアクセスする方法について説明します。このデータを基に、サーバーおよびアプリケーションの実行時パフォーマンスを把握できます。また、フォルト発生時に、このデータを使用して、フォルトを隔離および診断できます。WebLogic SAFは、このサービスを利用して、拡張された実行時統計、インポートされたSAFキューおよびトピックに送られる通知、メッセージ・ライフ・サイクルのJMSメッセージのロギング、ユーザーのWebLogicドメインの円滑な稼動を維持するのに役立つデバッグ機能を提供します。

SAFエージェントの統計のモニターについては、「SAFエージェントのモニター」を参照してください。

以下の節では、WebLogic SAFサービスのトラブルシューティングの方法について説明します。

WebLogic SAFのデバッグ

特定のアプリケーションに問題があると突き止めたら、WebLogic Serverのデバッグ機能をアクティブ化して、アプリケーション内の特定の問題を探し当てることができます。

デバッグの有効化

デバッグは、適切なServerDebug構成属性をtrueに設定することで有効化できます。必要に応じて、サーバーのStdoutSeverityDebugに設定することもできます。

構成属性は、以下のいずれかの方法で変更できます。

コマンド・ラインを使用してデバッグを有効化する

コマンド・ラインで適切なプロパティを設定します。例:

-Dweblogic.debug.DebugSAFSendingAgent=true 
-Dweblogic.log.StdoutSeverity="Debug"

この方法は静的なものであり、サーバーの起動時にのみ使用できます。

WebLogic Server管理コンソールを使用してデバッグを有効化する

WebLogic Server管理コンソールを使用して、デバッグ値を設定します。

  1. まだ行っていない場合、管理コンソールのチェンジ・センターで「ロックして編集」をクリックします(「チェンジ・センターの使用」を参照)。

  2. 管理コンソールの左ペインで、「環境」を展開して「サーバー」を選択します。

  3. 「サーバーの概要」ページで、デバッグを有効化または無効化するサーバーをクリックして、そのサーバーの設定ページを開きます。

  4. 「デバッグ」をクリックします。

  5. 「デフォルト」を展開します。

  6. 変更するデバッグ・スコープまたは属性のチェック・ボックスを選択します。SAFのデバッグの場合であれば、「DebugMessaging」チェック・ボックスを選択します。

  7. 「有効化」 (または「無効化」)を選択して、チェックを入れたデバッグ・スコープまたは属性を有効化(または無効化)します。

  8. 管理コンソールのチェンジ・センターで「変更のアクティブ化」をクリックしてこれらの変更をアクティブ化します。

  9. すべての変更が即座に有効になるわけではありません。再起動が必要な場合もあります(「チェンジ・センターの使用」を参照)。

    この方法は動的なものであり、サーバーの実行中にデバッグを有効化するのに使用できます。

WebLogic Scripting Toolを使用してデバッグを有効化する

WebLogic Scripting Tool (WLST)を使用してデバッグ値を設定します。たとえば、次のコマンドでは、debug.pyというデバッグ値を設定するためのプログラムが実行されます。

java weblogic.WLST debug.py

メイン・スコープであるweblogicは表示されません。safは、weblogicのサブ・スコープです。なお、DebugSAFSendingAgentの完全修飾のDebugScopemessaging.saf.adminです。

debug.py programプログラムには、以下のコードが含まれています。

user='user1'
password='password'
url='t3://localhost:7001'
connect(user, password, url)
edit()
cd('Servers/myserver/ServerDebug/myserver')
startEdit()
set('DebugSAFSendingAgent','true')
save()
activate()

JavaからもWLSTを使用することができます。次の例では、デバッグ値の設定に使用されるJavaファイルを示します。

import weblogic.management.scripting.utils.WLSTInterpreter;
import java.io.*;
import weblogic.jndi.Environment;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;

public class test {
        public static void main(String args[]) {
       try {
              WLSTInterpreter interpreter = null;
              String user="user1";
              String pass="pw12ab";
              String url ="t3://localhost:7001";
              Environment env = new Environment();
              env.setProviderUrl(url);
              env.setSecurityPrincipal(user);
              env.setSecurityCredentials(pass);
              Context ctx = env.getInitialContext();

              interpreter = new WLSTInterpreter();
              interpreter.exec
                     ("connect('"+user+"','"+pass+"','"+url+"')");
              interpreter.exec("edit()");
              interpreter.exec("startEdit()");
              interpreter.exec
                     ("cd('Servers/myserver/ServerDebug/myserver')");
              interpreter.exec("set('DebugSAFSendingAgent','true')");       
              interpreter.exec("save()");
              interpreter.exec("activate()");

       } catch (Exception e) {
       System.out.println("Exception "+e);
       }
       }
}

WLSTの使用は動的な手法で、サーバーの実行中にデバッグを有効化するために使用できます。

config.xmlファイルへの変更

コンソール、WLST、またはコマンド・ラインでデバッグ特性を変更すると、その内容がconfig.xmlファイルに反映されます。

次に示すconfig.xmlのサンプルの抜粋に、トランザクション・デバッグのスコープ(複数のデバッグ属性)と単一のSAF属性を示します。

例5-1 SAFのデバッグ・スタンザのサンプル

<server>
<name>myserver</name>
<server-debug>
<debug-scope>
<name>weblogic.transaction</name>
<enabled>true</enabled>
</debug-scope>
<debug-saf-sending-agent>true</debug-saf-sendingagent>
</server-debug>
</server> 

SAFのデバッグ・スコープ

次は、WebLogic SAF用の登録済デバッグ・スコープです。

  • DebugSAFStore (スコープweblogic.messaging.saf.store) - SAFによるストアの使用に関する限定的な情報を出力します。

  • DebugSAFReceivingAgent (スコープweblogic.messaging.saf.receivingagent) - SAFの受信側に関する情報を出力します。

  • DebugSAFSendingAgent (スコープweblogic.messaging.saf.sendingagent) - SAFの送信側に関する情報を出力します。

  • DebugSAFVerbose (スコープweblogic.messaging.saf.verbose) - 詳細な(内部)情報を出力します。

  • DebugSAFManager (スコープweblogic.messaging.saf.manager) - SAFの管理(エージェント間の会話の設定)に関する情報を出力します。

  • DebugSAFAdmin (スコープweblogic.messaging.saf.admin) - SAFの管理(休止/再開)に関する情報を出力します。


    注意:

    JMS SAF宛先をデバッグするには、JMS SAF (ストア・アンド・フォワード)宛先に関する情報を出力するDebugJMSSAF (スコープweblogic.jms.saf) WebLogic JMSスコープを使用することができます。

    WebLogic JMSのデバッグ・スコープについては、『Oracle WebLogic Server JMSの構成と管理』のWebLogic JMSのトラブルシューティングに関する項を参照してください。

リクエストの仕分け

これ以外のデバッグ方法は、SAFサービスを介して個々の(通常は仕分けされた)アプリケーション・リクエストのフローをトレースすることです。詳細は、『Oracle WebLogic Server診断フレームワークの構成と使用』のDyeInjectionモニターを介した仕分けベクトルの構成に関する項を参照してください。

JMSメッセージのSAFメッセージ・ライフ・サイクルのロギング

メッセージ・ライフ・サイクルは、JMSメッセージがSAFエージェントによって格納されてから、最終的にリモートのJMS宛先に転送されるまでに発生するイベントを外側から見た概念です。メッセージ・ライフ・サイクルのロギングを利用することで、管理者は、格納および転送されたJMSメッセージの存在やステータスをSAFエージェントから見た情報に容易にアクセスできます。各メッセージ・ログには、メッセージの格納、転送、期限切れなどの基本的なライフ・サイクル・イベントについての情報が含まれます。WebLogicロギング・サービス全般の詳細は、『Oracle WebLogic Serverログ・ファイルの構成とログ・メッセージのフィルタ処理』のWebLogicロギング・サービスの理解に関する項を参照してください。

SAFメッセージ・ロギングは、SAFエージェントを作成するとデフォルトで有効になります。ただし、このSAFエージェントにターゲット指定するJMSモジュールのSAFインポート済み宛先では、SAFメッセージ・ロギングを明示的に有効にする必要があります。ロギングは、長期間にわたって継続的に発生します。また、SAFエージェントがデプロイされている場合にリアルタイム・モードで使用したり、SAFエージェントが停止している場合にオフライン形式で使用したりできます。SAFメッセージ・ロギングの構成の詳細は、『Oracle WebLogic Server管理コンソール・ヘルプ』の次のトピックを参照してください。

SAFメッセージ・ライフ・サイクルのイベント

SAFインポート済みキューまたはトピックのSAFメッセージ・ライフ・サイクルのロギングを有効にすると、メッセージが基本的なメッセージ・ライフ・サイクル・イベントに対応する条件を満たすたびに、SAFエージェントのメッセージ・ログ・ファイルにレコードが追加されます。SAFメッセージのログ・エントリは、以下のライフ・サイクル・イベントによってトリガーされます。

  • 格納 - プロデューサがSAFインポート済みキューまたはトピックにメッセージを送信すると、このイベントがログに記録されます。

  • 転送 - SAFがリモート・キューまたはトピックにメッセージを転送すると、このイベントがログに記録されます。

  • 削除 - SAFエージェントを介してリモート・エンドポイントからメッセージが手動でパージされると、このイベントがログに記録されます。

  • 期限切れ - メッセージがSAFインポート済み宛先に設定された有効期限に達すると、このイベントがログに記録されます。

メッセージ・ログの場所

メッセージ・ログは、ドメイン・ディレクトリ内の次の場所に格納されます。例:

USER_DOMAIN\servers\servername\logs\safagents\saf_agent_name\jms\jms.messages.log

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

SAFメッセージ・ロギングの有効化

SAFキューおよびSAFトピックのSAFメッセージ・ロギングは、WebLogic Server管理コンソールを使用して有効にしたり無効にしたりできます。詳細は、Oracle WebLogic Server管理コンソール・ヘルプの次のトピックを参照してください。

WebLogic Java Management Extensions (JMX)を使用すると、SAFAgentRuntimeMBeanおよびSAFAgentRuntimeMBean MBeanにアクセスして、SAFメッセージ・ログを管理できます。詳細は、『Oracle WebLogic Server JMXによるカスタム管理ユーティリティの開発』のWebLogic ServerサブシステムMBeanの概要に関する項を参照してください。

SAFメッセージ・ロギングを有効にする際は、メッセージ・ヘッダー・フィールド、システム定義のメッセージ・プロパティ、およびユーザー定義のプロパティのそれぞれについて、ログ・エントリにそのすべてを含めるか一部のみを含めるかを指定できます。また、メッセージの本文を含めるかどうかも選択できます。メッセージ・ヘッダーとメッセージ・プロパティの詳細は、『Oracle WebLogic Server JMSのプログラミング』のMessageProducerとMessageConsumerに関する項を参照してください。

SAFメッセージ・ログの内容

ログに追加される各レコードには、メッセージに関する基本的な情報(メッセージID、メッセージの件名の相関IDなど)が含まれます。SAFエージェントを構成して、メッセージの種類やユーザー・プロパティなどの追加情報を含めることもできます。

SAFメッセージ・ログ・レコードのフォーマット

特に注記のない限り、JMSメッセージのSAFメッセージ・ライフ・サイクル・ログに追加されるすべてのレコードには、以下の情報が以下に列挙した順序で記録されます。

  • 日付 - このメッセージのログ・レコードが生成された日時。

  • トランザクション識別子 - メッセージが関連付けられているトランザクションのトランザクション識別子。

  • WLS診断コンテキスト - システム内を流れるリクエストまたは作業単位の一意の識別子。この情報がSAFメッセージ・ログに含まれているのは、同じリクエストに属すイベント間の相関性を示すためです。

  • 「日付」のミリ秒未加工値 - メッセージ・ログ・レコードが生成された日時をミリ秒で表した値。トラフィック量の多いアプリケーションでのトラブルシューティングに使用します。

  • 「日付」のナノ秒未加工値 - メッセージ・ログ・レコードが生成された日時をナノ秒で表した値。トラフィック量の多いアプリケーションでのトラブルシューティングに使用します。

  • JMSメッセージID - メッセージに割り当てられた一意の識別子。

  • JMS相関ID - メッセージのユーザー定義の識別子。通常は件名が同じメッセージの相関に使用します。

  • JMS宛先名 - メッセージの宛先サーバーの完全修飾名。

  • SAFメッセージ・ライフ・サイクル・イベント名 - ログ・エントリをトリガーしたメッセージ・ライフ・サイクル・イベントの名前。

  • JMSユーザー名 - メッセージを生成、消費、または受信したユーザーの名前。

  • JMSメッセージ転送識別子 - この情報は、ログに記録されたメッセージ・ライフ・サイクル・イベントが「メッセージ転送」イベントである場合にのみログに含まれます。メッセージがSAFキュー上で転送された場合は、リモート宛先の起点と、SAFエージェントで識別されたリモート宛先のOAM識別子に関する情報がログに含まれます。リモート宛先が恒久サブスクライバである場合は、ログに接続のクライアントIDとサブスクリプション名も含まれます。

    メッセージ転送識別子の構文は次のとおりです。

    MC:CA(…):OAMI(wls_server_name.jms.connection#.session#.consumer#)
    

    説明:

    • MCはメッセージ・コンシューマを表します。

    • CAはクライアント・アドレスを表します。

    • OAMIはOA&M識別子を表します。

    • CCは接続コンシューマを表します(適用される場合のみ)。

    コンシューマが恒久サブスクライバである場合は、追加情報が次の構文で表示されます。

    DS:client_id.subscription_name[message consumer identifier]
    

    DSは恒久サブスクライバを表します。

  • JMSメッセージ・コンテンツ - 宛先ごとにカスタマイズ可能なフィールド。ただし、メッセージの本文は使用できません。

  • JMSメッセージ・セレクタ - この情報は、ログに記録されたメッセージ・ライフ・サイクル・イベントが「メッセージ転送」イベントである場合にのみログに含まれます。ログには、JMS APIからのSelector引数が表示されます。

サンプル・ログ・ファイル・レコード

以下に示すサンプル・ログ・ファイル・レコードで、各メッセージ・ライフ・サイクル・イベントでログ・ファイルに記録される情報の種類を示します。各レコードは固定長ですが、イベントとの関連性やレコード内の各フィールドに有効な値が存在するかどうかに応じて含まれる情報が異なります。ログ・ファイル・レコードの構文は次のとおりです。

####<date_and_time_stamp> <transaction_id> <WLS_diagnostic_context> <date_in_
milliseconds> <date_in_nanoseconds> <JMS_message_id> <JMS_correlation_id> <JMS_
destination_name> <life_cycle_event_name> <JMS_user_name> <consumer_identifier>
 <JMS_message_content> <JMS_message_selector>

注意:

ログ・ファイルにJMSメッセージのコンテンツを含めることを選択する場合は、メッセージのコンテンツ内のすべての左向きの山カッコ(<)と右向きの山カッコ(>)がエスケープされる点に注意してください。ログ・ファイルでは、左向きの山カッコのかわりに"&lt;"、右向きの山カッコのかわりに"&gt;"が表示されます。

メッセージ格納イベント

####<Nov 3, 2005 11:11:02 AM EST> <> <> <1131034262637> <391826>
 <ID:<864239.1131034262172.0>> <>
 <SenderSafmodule!safDestinations2!xsafQ2@SendingAgent@D1S1> <Stored> <system> 
<> <&lt;?xml version="1.0" encoding="UTF-8"?&gt;

&lt;mes:WLJMSMessage xmlns:mes="http://www.oracle.com/WLS/JMS/Message"&gt;&lt;mes:Header&gt;&lt;mes:JM
SDeliveryMode&gt;NON_
PERSISTENT&lt;/mes:JMSDeliveryMode&gt;&lt;mes:JMSExpiration&gt;0&lt;/mes:JMSExpi
ration&gt;&lt;mes:JMSPriority&gt;5&lt;/mes:JMSPriority&gt;&lt;mes:JMSRedelivered
&gt;false&lt;/mes:JMSRedelivered&gt;&lt;mes:JMSTimestamp&gt;1131034262172&lt;/me
s:JMSTimestamp&gt;&lt;mes:Properties/&gt;&lt;/mes:Header&gt;&lt;mes:Body&gt;&lt;
mes:Text&gt;EndPointExpireAllWithMessageForward(NP):0&lt;/mes:Text&gt;&lt;/mes:B
ody&gt;&lt;/mes:WLJMSMessage&gt;> <> 

メッセージ転送イベント

####<Nov 3, 2005 11:11:30 AM EST> <> <> <1131034290391> <277193>
 <ID:<864239.1131034288312.0>> <>
 <SenderSafmodule!safDestinations3!safErrorQueue@SendingAgent@D1S1> 
<Forwarded> <<WLS Kernel>> <> <&lt;?xml version="1.0" encoding="UTF-8"?&gt;

&lt;mes:WLJMSMessage
xmlns:mes="http://www.oracle.com/WLS/JMS/Message"&gt;&lt;mes:Header&gt;&lt;mes:
JMSDeliveryMode&gt;NON_
PERSISTENT&lt;/mes:JMSDeliveryMode&gt;&lt;mes:JMSExpiration&gt;0&lt;/mes:JMSExpi
ration&gt;&lt;mes:JMSPriority&gt;5&lt;/mes:JMSPriority&gt;&lt;mes:JMSRedelivered
&gt;false&lt;/mes:JMSRedelivered&gt;&lt;mes:JMSTimestamp&gt;1131034288312&lt;/me
s:JMSTimestamp&gt;&lt;mes:Properties/&gt;&lt;/mes:Header&gt;&lt;mes:Body&gt;&lt;
mes:Text&gt;EndPointExpireAllWithMessageRedirect(NP):0&lt;/mes:Text&gt;&lt;/mes:
Body&gt;&lt;/mes:WLJMSMessage&gt;> <> 

メッセージ期限切れイベント

####<Nov 3, 2005 1:04:25 PM EST> <> <> <1131041065929> <42424>
 <ID:<130865.1131041065828.0>> <>
 <udd-saf!safDestinations!safRemoteQueue@SendingAgent@D1C1S1> <Expired> 
<<WLS Kernel>> <> <&lt;?xml version="1.0" encoding="UTF-8"?&gt;

&lt;mes:WLJMSMessage xmlns:mes="http://www.oracle.com/WLS/JMS/Message"&gt;&lt;mes:Header&gt;&lt;mes:
JMSDeliveryMode&gt;PERSISTENT&lt;/mes:JMSDeliveryMode&gt;&lt;mes:JMSExpiratio
n&gt;1131041065848&lt;/mes:JMSExpiration&gt;&lt;mes:JMSPriority&gt;7&lt;/mes:JM
SPriority&gt;&lt;mes:JMSRedelivered&gt;false&lt;/mes:JMSRedelivered&gt;&lt;mes:J
MSTimestamp&gt;1131041065828&lt;/mes:JMSTimestamp&gt;&lt;mes:Properties/&gt;
&lt;/mes:Header&gt;&lt;mes:Body&gt;&lt;mes:Text&gt;testSAFLogging_
Expired&lt;/mes:Text&gt;&lt;/mes:Body&gt;&lt;/mes:WLJMSMessage&gt;> <> 

メッセージ削除イベント

####<Nov 3, 2005 11:11:08 AM EST> <> <> <1131034268206> <803337>
 <ID:<864239.1131034262172.0>> <>
 <SenderSafmodule!safDestinations2!xsafQ2@SendingAgent@D1S1> <Removed> <<WLS
 Kernel>> <> <&lt;?xml version="1.0" encoding="UTF-8"?&gt;

&lt;mes:WLJMSMessage xmlns:mes="http://www.oracle.com/WLS/JMS/Message"&gt;&lt;mes:Header&gt;&lt;mes:JMS
DeliveryMode&gt;NON_
PERSISTENT&lt;/mes:JMSDeliveryMode&gt;&lt;mes:JMSExpiration&gt;0&lt;/mes:JMSExpi
ration&gt;&lt;mes:JMSPriority&gt;5&lt;/mes:JMSPriority&gt;&lt;mes:JMSRedelivered
&gt;false&lt;/mes:JMSRedelivered&gt;&lt;mes:JMSTimestamp&gt;1131034262172&lt;/me
s:JMSTimestamp&gt;&lt;mes:Properties/&gt;&lt;/mes:Header&gt;&lt;mes:Body&gt;&lt;
mes:Text&gt;EndPointExpireAllWithMessageForward(NP):0&lt;/mes:Text&gt;&lt;
/mes:Body&gt;&lt;/mes:WLJMSMessage&gt;> <> 

SAFエージェント・ログ・ファイルの管理

SAFエージェントを作成したら、古いログ・メッセージを別のファイルに移動(ローテーション)するための条件を構成できます。また、ログ・ファイルのデフォルト名を変更することも可能です。

メッセージ・ログ・ファイルのローテーション

古いログ・メッセージから新しいファイルへのローテーションは、ファイルが特定のサイズになったときに実施したり、指定した時間間隔で実施したりできます。また、古いログ・メッセージのローテーションを実施しないことも選択できます。この場合は、すべてのメッセージが単一のファイルに蓄積され、ファイル・サイズが大きくなり過ぎたときにはその中身を削除する必要があります。

ログ・ファイルが特定のサイズに達したときに古いメッセージをローテーションすることを選択した場合は、最小限のファイル・サイズを指定する必要があります。ログ・ファイルが指定の最小サイズに到達すると、サーバーが次回ファイル・サイズをチェックする際に、現在のログ・ファイルの名前が変更され、それ以降のメッセージを保存するための新規ログ・ファイルが作成されます。

定期的な間隔で古いメッセージをローテーションすることを選択した場合は、最初の新しいログ・ファイルが作成された時間と、そのファイルの名前が変更されて置換されるまでの時間間隔を指定する必要があります。

SAFエージェントのログ・ファイルのローテーションを設定する方法の詳細は、Oracle WebLogic Server管理コンソール・ヘルプSAFエージェントのJMSメッセージのログ・ローテーションの構成に関する項を参照してください。

メッセージ・ログ・ファイル名の変更

ローテーションされたログ・ファイルは、作成順に番号付けされます。たとえば、7番目にローテーションされたファイルはmyserver.log00007という名前になります。トラブルシューティングを容易にするため、ログ・ファイルの名前を変更したり、ログ・ファイルがローテーションされた日時を含めたりできます。ログ・ファイル名に日時を含めるには、ファイル名にjava.text.SimpleDateFormat変数を追加します。各変数はパーセント記号(%)で囲みます。ログ・ファイルの名前の変更時に相対パス名を指定した場合、サーバーのルート・ディレクトリが基準と解釈されます。

SAFエージェントのメッセージ・ログ・ファイル名を変更する方法の詳細は、Oracle WebLogic Server管理コンソール・ヘルプSAFエージェントのJMSメッセージのログ・ローテーションの構成に関する項を参照してください。

保存するメッセージ・ログ・ファイル数の制限

古いメッセージ・ログ・ファイルをファイル・サイズまたは時間間隔に基づいてローテーションする場合は、古いメッセージの格納のためにSAFエージェントが作成するログ・ファイルの数を制限することもできます。この制限に達すると、最も古いログ・ファイルが削除され、最新の接尾辞の付いた新しいログ・ファイルが作成されます。このオプションを有効にしない場合は新しいファイルが無限に作成されていくため、必要に応じてこれらのファイルを手動で削除する必要があります。

SAFエージェントのメッセージ・ログ・ファイル数を制限する方法の詳細は、Oracle WebLogic Server管理コンソール・ヘルプSAFエージェントのJMSメッセージのログ・ローテーションの構成に関する項を参照してください。

JMS SAF関連のよくある質問

この節では、WebLogicドメインでのJMS SAFの動作に関するよくある質問とその回答を示します。

Q.JMSプロデューサに対して、SAFではどの送信エージェントが選択されますか。

A. JMSプロデューサに対する送信エージェントの選択には、WebLogic Serverクラスタのロード・バランシング機能が使用されます。あるJMSプロデューサに対してSAFエージェントが選択されると、そのJMSプロデューサの稼動期間中、選択されたエージェントが使用されます。

Q. JMSクライアントはどのようにしてSAF宛先を検索しますか。

A. SAF宛先は、SAF JMS宛先でない宛先と同じ方法で検索できます。

Q. JMS SAFインポート済み宛先へのJMSプロデューサの送信メッセージをJMS順序単位に関連付けることはできますか。

A.はい。順序単位機能については、『Oracle WebLogic Server JMSのプログラミング』のメッセージ順序単位の使用に関する項を参照してください。

Q.なぜ、送信側がクラスタである場合には、JMS順序単位に関連付けられたJMSプロデューサでメッセージの送信が失敗するのですか。

A. SAFでJMS順序単位を使用するには、送信側クラスタでパス・サービスを構成する必要があります。パス・サービス機能については、『Oracle WebLogic Server JMSの構成と管理』のWebLogicパス・サービスの使用に関する項を参照してください。

Q.同じ順序単位内の別々のJMSプロデューサでは、同じ送信エージェントが選択されますか。

A.はい。JMS SAFでは、同じ送信エージェントにルーティングするためにパス・サービスが使用されます。

Q. JMS SAFインポート済み宛先にコンシューマをアタッチできますか。

A.いいえ。JMSコンシューマは、実際のJMS宛先にしかアタッチできません。

Q.分散宛先をインポートすることはできますか。

A.はい、JNDI名を使用してインポートできます。

Q.送信側クラスタにインポートされた分散宛先に対しては、どこで、サーバー・アフィニティを有効化、ロード・バランシングを有効化、および転送の遅延の各パラメータを構成するのですか。

A.サーバー・アフィニティを有効化およびロード・バランシングを有効化の各パラメータは、JMSプロデューサが作成されたJMS接続ファクトリで構成します。JMS接続ファクトリでJMS接続が作成され、JMS接続でJMSセッションが作成され、JMSセッションでJMSプロデューサが作成されます。転送の遅延のパラメータは、JMS分散宛先で構成します。

Q.送信側クラスタまたはサーバーのJMS接続ファクトリで構成された、サーバー・アフィニティを有効化およびロード・バランシングを有効化の各パラメータは、JMS宛先のある受信側クラスタまたはサーバーにも適用されますか。

A.はい。送信側クラスタまたはサーバーのこれらの属性は、受信側クラスタまたはサーバーにも適用されます。分散宛先に対するサーバー・アフィニティとロード・バランシングについては、『Oracle WebLogic Server JMSの構成と管理』の分散宛先リソースの構成に関する項を参照してください。

Q.送信側クラスタ上のXAトランザクションはJMS SAF境界を越えますか。つまり、受信側は送信側からのトランザクションに参加できますか。

A.いいえ。メッセージはトランザクションがコミットされるまで転送されません。

Q. JMS SAFでは、JMSセッション内で送信側からJMS宛先に送信されたメッセージの順序は保持されますか。

A.はい。

Q. SAFリモート・コンテキストには、プリンシパル名またはユーザー名とパスワードを構成する必要がありますか。

A. SAFリモート・コンテキストは、自分の好きなように構成できます。ユーザー名とパスワードはJMSモジュールに格納され、プリンシパル名は送信側ドメインで構成されている資格証明マッピング・プロバイダに格納されます。

Q.UDDのメンバーシップが変化されて、そして、今、SAFは適切に適切に動作しないようです。何が起こったのでしょうか。

A.プロセスの通信対象となるすべてのドメインに対して、クロス・ドメイン・セキュリティの構成が統一されていることを確認してください。1つのドメインにクロス・ドメイン・セキュリティが構成されている場合は、すべてのドメインにクロス・ドメイン・セキュリティを構成する(または、適切な例外リストに含める)必要があります。『Oracle WebLogic Server JTAのプログラミング』のドメイン間トランザクションに対するドメインの構成に関する項を参照してください。