Oracle® Fusion Middleware Oracle WebLogic Server WebLogic Tuxedo Connectorの管理 12c (12.2.1.1.0) E79380-01 |
|
![]() 前へ |
![]() 次へ |
この章の内容は以下のとおりです。
Tuxedoキュー・ブリッジはOracle WebLogic Tuxedo Connectorの一部であり、Tuxedoアプリケーション環境と通信するWebLogic Serverアプリケーションのために双方向JMSインタフェースを提供します。環境間でのメッセージングの転送は、クライアント・アプリケーションのかわりにサービスを呼び出すのに使用するテキスト、Byte、またはXMLデータ・ストリームを含むJMSベースのメッセージで構成されます。
Tuxedoキュー・ブリッジの機能は次のように決定されます。
接続性は、Tuxedoキュー・ブリッジにおける属性構成とWTCサーバーのリダイレクトによって決定されます。
Tuxedoキュー・ブリッジは、Java Messaging Service (JMS)を使用してTuxedo /QまたはTuxedoサービスへのインタフェースを提供します。
Tuxedoキュー・ブリッジは、既存のTuxedoシステムに接続性を提供するために、XMLとFML32間においてシンプルな変換を提供します。
この項では、JMSのメッセージがTuxedoキュー・ブリッジを介してTuxedoキューおよびサービスに渡されるまでの流れを説明します。
注意:
メッセージは、確認応答されるまでJMSキューに保持されます。
Webが有効化されたWLPIアプリケーションなどのJMSクライアントにより、Tuxedoで処理されるメッセージがJMSキューに配置されます。このメッセージがトランザクションの一部だった場合、トランザクションがコミットされます。
メッセージがJMSキューから移動し、Tuxedoキュー・ブリッジ・コンバータで処理されます。
Tuxedoキュー・ブリッジ・コンバータによりメッセージ・タイプがチェックされ、サポートされているJMSメッセージ・タイプがJATMIのバッファ・タイプに変換されます。
BytesMessage、TextMessage、XMLが、それぞれTypedCArray、TypedString、TypedFML32に変換されます。TranslateFML
属性の値に従って、XML/FML変換が実行されます。
変換エラーが発生した場合、エラーはwlsServerErrorDestination
キューに送られ、メッセージはJMSセッションで確認応答されます。
認識されないJMSメッセージを受信した場合、適宜エラー・メッセージがログされ、そのメッセージは確認応答された後、破棄されます。これは構成エラーと解釈され、Tuxedoキュー・ブリッジはメッセージをエラー・キューにリダイレクトしません。
変換されたメッセージが、T/Domainゲートウェイを使用してTuxedoに送られます。
JmsQ2TuxQ
のリダイレクト・セットを利用し、JATMIのtpenqueue
を使用して、メッセージがTuxedoキューに送られます。
JmsQ2TuxS
のリダイレクト・セットを利用し、JATMIのtpcall
を使用して、メッセージがTuxedoサービスに送られます。
tpenqueue
またはtpcall
が成功した場合、戻り値がReplyQに置かれます。メッセージがJMSセッションで確認応答されます。
tpenqueue
またはtpcall
が失敗した場合、メッセージはTuxedoキュー・ブリッジによりwlsServerErrorDestination
キューに送られ、JMSセッションで確認応答されます。wlsServerErrorDestination
キューが構成されていない場合、メッセージは破棄され、Tuxedoキュー・ブリッジは応答確認されていない次のメッセージを処理します。
この項では、TuxQ2JmsQ
リダイレクトを利用して、TuxedoのメッセージがTuxedoキュー・ブリッジを介してJMSキューに渡されるまでの流れを説明します。
注意:
Tuxedoキュー・ブリッジはトランザクションを使用して、Tuxedo /QからJMSキューへの転送中にメッセージが失われないようにします。
Tuxedoキュー・ブリッジにより、Tuxedoキューの使用可能なメッセージがポーリングされます。
Tuxedoサービスにより、メッセージがTuxedoキューに配置されます。
Tuxedoキュー・ブリッジでは、JATMIのtpdequeue
を使用して、Tuxedoからメッセージを転送し、JMSキューに配置します。
何らかの理由で、指定された再試行回数を使い果たしてもメッセージがJMSキューにリダイレクトされない場合、メッセージはTuxedoキューと同じキュー・スペースにあるtuxErrorDestination
キューに配置されます。
Tuxedoキュー・ブリッジがメッセージをtuxErrorDestination
キューに配置できなかった場合は、エラー・ログが記録されて、メッセージは失われます。
tuxErrorDestination
キューが指定されていない場合、メッセージは失われます。
Tuxedoキュー・ブリッジには、次のような制限があります。
JMSからメッセージを取り出してTuxedoキューに配置する場合や、Tuxedoサービスを呼び出す場合には、トランザクションは使用されません。
Tuxedoキュー・ブリッジは、スレッド・インテンシブです。JMSキューからTuxedoへメッセージが転送されるたびに、スレッドが使用されます。構成されているTuxedoキューをモニターするには、ポーリング・スレッドが必要になります。
XML/FML変換は、簡単なメッセージ構造の構築のために行われます。XMLからFMLへの変換の詳細は、Oracle WebLogic Server Oracle WebLogic Tuxedo Connectorアプリケーションの開発のFML32の考慮事項を参照してください。
Tuxedoキュー・ブリッジの接続性は、Tuxedoキュー・ブリッジにおける属性構成とWTCサーバーのリダイレクトによって決定されます。これらの属性には、Tuxedoへの接続を確立するために必要な情報が含まれています。
完全なTuxedoキュー・ブリッジの構成には、次の条件が必要です。
1つのキュー・ブリッジが構成されていること
1つ以上のリダイレクトが構成されていること
通常、Tuxedoキュー・ブリッジは、完全なTuxedoキュー・ブリッジの構成が存在する中で、WTCをデプロイした後にアクティブ化されます。Tuxedoキュー・ブリッジがアクティブになったら、WTCキュー・ブリッジを停止するまで構成に対して追加や変更はできません。
WTCがアクティブ化され、Tuxedoキュー・ブリッジが非アクティブ化されている場合、次のような追加と変更が可能です。
WTCキュー・ブリッジの追加(WTCキュー・ブリッジ構成がない場合)
WTCキュー・ブリッジの変更
WTCキュー・ブリッジの削除
WTCリダイレクトの追加
WTCリダイレクトの変更
WTCリダイレクトの削除
WTCキュー・ブリッジの構成を変更したら、変更をアクティブ化する必要があります。
注意:
Tuxedoキュー・ブリッジを動的に追加または変更できるのは、キュー・ブリッジがアクティブ化されていない場合のみです。WTCはアクティブ化されていてもかまいませんが、キュー・ブリッジは非アクティブ化されている必要があります。WTCキュー・ブリッジを停止するには、WTCサーバーを非アクティブ化する必要があります。
Tuxedoキュー・ブリッジは、アクティブ化の時点で完全なWTCキュー・ブリッジの構成が利用できる場合にのみ起動されます。
WTCキュー・ブリッジの構成が完全でない場合は、Tuxedoキュー・ブリッジのインスタンスは利用できません。
WTCサーバーのTuxedoキュー・ブリッジおよびリダイレクトが構成されており、対象サーバーにWTCサーバーがデプロイされている場合、Tuxedoキュー・ブリッジは、WebLogic Serverアプリケーション環境の一部として起動されます。Tuxedoキュー・ブリッジが起動できないような構成条件が発生した場合は、エラーがログされます。
Tuxedoキュー・ブリッジは、JMSキューとTuxedo /QまたはJMSキューとTuxedoサービスのインスタンス間で、一方向のデータ接続を確立します。この接続は、WTCサーバーのTuxedoキュー・ブリッジ構成とリダイレクト構成で表され、識別されたポイント間に1対1の接続を提供します。3つのタイプの接続が構成できます。次に、各接続タイプについて説明します。
JmsQ2TuxQ
: JMSキューから読取りを行い、指定されたTuxedo /Qにメッセージを転送します。
TuxQ2JmsQ
: Tuxedo /Qから読取りを行い、JMSにメッセージを転送します。
JmsQ2TuxS
: JMSキューから読取りを行い、同時に指定されたTuxedoサービスを呼び出し、指定されたJMSキューに応答を返します。
注意:
MapMessage、ObjectMessage、StreamMessageのJMSメッセージ・タイプは、Oracle WebLogic Tuxedo Connectorでは無効です。これらのメッセージ・タイプの1つがTuxedoキュー・ブリッジによって受信された場合は、サポートされていないタイプであることを示すログ・エントリが作成され、メッセージが破棄されます。
以下に、各接続タイプの構成の例を紹介します。
以下の節では、JMSキューから読取りを行い、Tuxedo /Qに送信する、config.xml
ファイルの構成の例を示します。
<wtc-tbridge-redirect> <direction>JmsQ2TuxQ</direction> <name>redir0</name> <reply-q>RPLYQ</reply-q> <source-name>weblogic.jms.Jms2TuxQueue</source-name> <target-access-point>TDOM2</target-access-point> <target-name>STRING</target-name> <target-qspace>QSPACE</target-qspace> <translate-fml>NO</translate-fml> </wtc-tbridge-redirect>
次に、JmsQ2TuxQ
構成の各コンポーネントを説明します。
Direction
接続タイプはJmsQ2TuxQ
です。
Source Name
は、読み取るJMSキューの名前がweblogic.jms.Jms2TuxQueue
であることを指定します。Tuxedoキュー・ブリッジは、CLIENT_ACKNOWLEDGE
セマンティクスを使用して、このキューにJMSクライアント・セッションを確立します。
Target Access Point
は、アクセス・ポイントの名前がTDOM2
であることを指定します。
Target Qspace
は、Qspaceの名前がQspace
であることを指定します。
Target Name
は、キューの名前がSTRING
であることを指定します。
ReplyQ
は、JMS応答キューの名前がRPLYQ
であることを指定します。このキューを使用すると、tpenqueue
はTMFORWARD
機能を提供します。
TranslateFML
がNO
になっていると、Tuxedoキュー・ブリッジがデータ変換を提供しないことを指定します。
表7-1に、JmsQ2TuxQメッセージ・マッピングの情報を示します。
表7-1 JmsQ2TuxQメッセージ・マッピング
マッピング元: JMSメッセージ・タイプ | マッピング先: Oracle WebLogic Tuxedo Connector JATMI (Tuxedo) |
---|---|
BytesMessage |
TypedCArray |
TextMessage (translateFML = NONE) |
TypedString |
TextMessage (translateFML = FLAT) |
TypedFML32 |
以下に、Tuxedo /Qから読取りを行い、JMSキューに送信する、config.xml
ファイルの構成の例を示します。
<wtc-tbridge-redirect> <direction>TuxQ2JmsQ</direction> <name>redir1</name> <source-access-point>TDOM2</source-access-point> <source-name>STRING</source-name> <source-qspace>QSPACE</source-qspace> <target-name>weblogic.jms.Tux2JmsQueue</target-name> <translate-fml>NO</translate-fml> </wtc-tbridge-redirect>
次に、TuxQ2JmsQ
構成の各コンポーネントを説明します。
Direction
接続タイプはTuxQ2JmsQ
です。
Target Name
は、読み取るJMSキューの名前がweblogic.jms.Tux2JmsQueue
であることを指定します。
Source Access Point
は、アクセス・ポイントの名前がTDOM2
であることを指定します。
Source Qspace
は、Qspaceの名前がQspace
であることを指定します。
Source Name
は、キューの名前がSTRING
であることを指定します。
TranslateFML
がNOになっていると、Tuxedoキュー・ブリッジがデータ変換を提供しないことを指定します。
TranslateFML
がFlatになっていると、Tuxedoキュー・ブリッジがそのデータをFMLからXMLに変換することを指定します。
表7-2に、TuxQ2JmsQ
メッセージ・マッピングの情報を示します。
表7-2 TuxQ2JmsQメッセージ・マッピング
マッピング元: Oracle WebLogic Tuxedo Connector JATMI (Tuxedo) | マッピング先: JMSメッセージ・タイプ |
---|---|
TypedCArray |
BytesMessage |
TypedString (translateFML = NO) |
TextMessage |
TypedFML32 (translateFML = FLAT) |
TextMessage |
TypedFML (translateFML = FLAT) |
TextMessage |
TypedXML |
TextMessage |
次に、JMSキューから読取りを行い、Tuxedoサービスを呼び出して、結果をJMSキューに返す、config.xml
ファイルの構成の例を示します。
<wtc-tbridge-redirect> <direction>JmsQ2TuxS</direction> <name>redir0</name> <replyq>weblogic.jms.Tux2JmsQueue</replyq> <source-name>weblogic.jms.Jms2TuxQueue</source-name> <target-access-point>TDOM2</target-access-point> <target-name>TOUPPER</target-name> <translate-fml>FLAT</translate-fml> </wtc-tbridge-redirect>
次に、JmsQ2TuxS
構成の各コンポーネントを説明します。
Direction
接続タイプはJmsQ2TuxS
です。
Source Name
は、読み取るJMSキューの名前がweblogic.jms.Jms2TuxQueue
であることを指定します。
Target Access Point
は、アクセス・ポイントの名前がTDOM2
であることを指定します。
Target Name
は、キューの名前がTOUPPER
であることを指定します。
ReplyQ
は、JMS応答キューの名前がweblogic.jms.Tux2JmsQueue
であることを指定します。
TranslateFML
がFLAT
になっていると、JMSメッセージの受信時に、メッセージがXMLフォーマットで、対応するFML32データ・バッファに変換されることを指定します。メッセージはその後、引数TDOM2
およびTOUPPER
により
tpcallに置かれます。結果として生じたメッセージはその後、FML32からXMLに変換され、weblogic.jms.Tux2JmsQueue
に置かれます。
表7-3に、JMSQ2TuxXメッセージ・マッピングの情報を示します。
表7-3 JMSQ2TuxXメッセージ・マッピング
JMSメッセージ・タイプ | Oracle WebLogic Tuxedo Connector JATMI (Tuxedo) | JMSメッセージ・タイプ |
---|---|---|
BytesMessage |
TypedCArray |
BytesMessage |
TextMessage (translateFML = NONE) |
TypedString |
TextMessage |
TextMessage (translateFML = FLAT) |
TypedFML32 |
TextMessage |
注意:
Tuxedoからの応答が戻され、translateFML
パラメータに効果がないシナリオが存在する場合があります。変換が自動的に発生する場合があります。
XML/FML変換の詳細は、Oracle WebLogic Server Oracle WebLogic Tuxedo Connectorアプリケーションの開発のWebLogic Tuxedo ConnectorでのFMLの使用を参照してください。
Oracle WebLogic Tuxedo Connectorでは、複数のTuxedoキュー・ブリッジ・リダイレクト・インスタンスがサポートされています。リダイレクト・インスタンスを複数使用すると、多くの環境下でアプリケーションのスケーラビリティおよびパフォーマンスが著しく向上します。ただし、その場合メッセージが処理される順序がランダムになります。優先度のマッピングをしても順序は保証されませんが、割り当てられた重要度に従ってメッセージに対応するメカニズムが提供されます。配信の順序を確実にする場合は、1つのTuxedoキュー・ブリッジ・リダイレクト・インスタンスを使用してください。
JMSおよびTuxedo間で優先度をマップするには、優先度マッピングを使用します。
JMSには10の優先度があります(0 - 9)。
Tuxedo/Qには100の優先度があります(1 - 100)。
この節では、TuxedoおよびJMSサブシステム間で優先度をマップするメカニズムについて説明します。2つのマッピング方向があります。
JmstoTux
TuxtoJms
次のvalue
:range
の組合せで示すように、すべての値にデフォルトが提供されています。
value
は入力優先度を指定します。
range
は結果出力優先度のシーケンシャル・グループを指定します。
JmstoTux- 0:1 | 1:12 | 2:23 | 3:34 | 4:45 | 5:56 | 6:67 | 7:78 | 8:89 | 9:100 TuxtoJms- 0:1-10|1:11-20|2: 21-30|3: 31-40|4: 41-50|5:51-60|6: 61-70|7:71-80|8:81-90|9:91-100
この構成では、優先度7のJMSメッセージがTuxedo /Qの優先度78に割り当てられます。優先度47のTuxedo /Qは、優先度4のJMSに割り当てられます。
Tuxedoキュー・ブリッジがTuxedoキューまたはJMSキューからメッセージを受信したときに問題を検出した場合、再試行間隔の後に次の処理が行われます。
情報がログされます。
構成されている場合は、メッセージがエラー・キューに保存されます。
認識できないJMSメッセージを受信した場合、適切なエラー・メッセージがログされ、そのメッセージは破棄されます。これは構成エラーと解釈され、Tuxedoキュー・ブリッジはメッセージをエラー・キューにリダイレクトしません。
Tuxedoキュー・ブリッジのエラー・キューには、次のような制限があります。
Tuxedoエラー宛先は一度だけ指定できます。
ErrorDestination
に関連するエラー・キュー名は、すべてのQSPACEが使用可能な同じエラー・キュー名を持っていることを示します。
エラーが発生した場合、メッセージはソースQSPACEに返されます。QSPACEが破損している、またはいっぱいであると判断されると、後続のメッセージは消失します。
エラー時にメッセージを破棄するよう指定する方法はありません。すべてのメッセージが受信されるか、まったく受信されません。
エラーに関する情報は、サーバー・ログでのみ提供されます。