WebLogic Tuxedo Connector 管理ガイド
|
tBridge メッセージ インタフェースのコンフィグレーション
以下の節では、tBridge の機能とコンフィグレーションについて説明します。
tBridge の概要
tBridge は WebLogic Tuxedo Connector の一部で、Tuxedo アプリケーション環境と通信する WebLogic Server アプリケーションの双方向 JMS インタフェースを提供します。環境間でのメッセージングの転送は、クライアント アプリケーションの代わりにサービスを呼び出すのに使用するテキスト、Byte、または XML データ ストリームを含む JMS ベースのメッセージで構成されます。
tBridge の機能は以下のように決定されます。
- 接続性は、WTCServer MBean の WTCtBridgeGlobal MBean および WTCtBridgeRedirect MBean にある属性のコンフィグレーションによって決定されます。
- tBridge は、Java Messaging Service (JMS) を使用して Tuxedo /Q または Tuxedo サービスへのインタフェースを提供します。
- tBridge は、既存の Tuxedo システムに接続性を提供するために、XML と FML32 間においてシンプルな変換を提供します。
tBridge による JMS から Tuxedo への接続
注意: すべてのメッセージは、確認応答されるまで JMS キューに保持されます。
この節では、JMS のメッセージが tBridge を介して Tuxedo キューおよびサービスに渡されるまでの流れを説明します。
- Web が有効化された WLPI アプリケーションなどの JMS クライアントにより、Tuxedo で処理されるメッセージが JMS キューに配置されます。このメッセージがトランザクションの一部だった場合、トランザクションがコミットされます。
- メッセージが JMS キューから移動し、tBridge コンバータで処理されます。
- tBridge コンバータによりメッセージ タイプがチェックされ、サポートされている JMS メッセージ タイプが JATMI のバッファ タイプに変換されます。
- BytesMessage、TextMessage、XML が、それぞれ TypedCArray、TypedString、TypedFML32 に変換されます。TranslateFML 属性の値に従って、XML/FML 変換が実行されます。
- 変換エラーが発生した場合、エラーは wlsServerErrorDestination キューに送られ、メッセージは JMS セッションで確認応答されます。
- 認識されない JMS メッセージを受信した場合、適宜エラー メッセージがログされ、そのメッセージは確認応答された後、破棄されます。これはコンフィグレーション エラーと解釈され、tBridge はメッセージをエラー キューにリダイレクトしません。
- 変換されたメッセージが、T/Domain ゲートウェイを使用して Tuxedo に送られます。
- JmsQ2TuxQ のリダイレクト セットを利用し、 JATMI の tpenqueue を使用して、メッセージが Tuxedo キューに送られます。
- JmsQ2TuxS のリダイレクト セットを利用し、 JATMI の tpcall を使用して、メッセージが Tuxedo キューに送られます。
- tpenqueue または tpcall が成功した場合、戻り値が ReplyQ に置かれます。メッセージが JMS セッションで確認応答されます。
- tpenqueue または tpcall が失敗した場合、メッセージは tBridge により wlsServerErrorDestination キューに送られ、JMS セッションで確認応答されます。wlsServerErrorDestination キューがコンフィグレーションされていない場合、メッセージは破棄され、tBridge は応答確認されていない次のメッセージを処理します。
tBridge による Tuxedo から JMS への接続
注意: tBridge はトランザクションを使用して、Tuxedo /Q から JMS キューへの転送中にメッセージが失われないようにします。
この節では、TuxQ2JmsQ リダイレクトを利用して、Tuxedo のメッセージが tBridge を介して JMS キューに渡されるまでの流れを説明します。
- tBridge により、Tuxedo キューの使用可能なメッセージがポーリングされます。
- Tuxedo サービスにより、メッセージが Tuxedo キューに配置されます。
- tBridge では、JATMI の tpdequeue を使用して、Tuxedo からメッセージを転送し、JMS キューに配置します。
- 何らかの理由で、指定されたリトライ回数を使い果たしてもメッセージが JMS キューにリダイレクトされない場合、メッセージは Tuxedo キューと同じキュー スペースにある tuxErrorDestination キューに配置されます。
- tBridge がメッセージを tuxErrorDestination キューに配置できなかった場合は、エラー ログが記録されて、メッセージは失われます。
- tuxErrorDestination キューが指定されていない場合、メッセージは失われます。
tBridge の制限
tBridge には次のような制限があります。
- JMS からメッセージを取り出して Tuxedo キューに配置する場合や、Tuxedo サービスを呼び出す場合には、トランザクションは使用されません。
- tBridge はスレッド インテンシブです。JMS キューから Tuxedo へメッセージが転送されるたびに、スレッドが使用されます。コンフィグレーションされている Tuxedo キューをモニタするには、ポーリング スレッドが必要になります。
- XML/FML 変換は、簡単なメッセージ構造の構築のために行われます。XML から FML への変換の詳細については、FML32 の考慮事項を参照してください。
tBridge 用 WTCServer MBean コンフィグレーション
WebLogic Tuxedo Connector の tBridge 接続性は、Tuxedo への接続を確立するために必要な情報を含む WTCtBridgeGlobal MBean および WTCtBridgeRedirect MBean のコンフィグレーションによって決定されます。
tBridge の起動
tBridge は、WTCServer MBean の WTCtBridgeGlobal MBean および WTCtBridgeRedirect MBean がコンフィグレーションされていて、かつ、WTCServer MBean が対象サーバにデプロイされている場合は、WebLogic Server アプリケーション環境の一部として起動されます。tBridge が起動できないようなコンフィグレーション条件が発生した場合は、エラーがログされます。
エラーのロギング
WebLogic Tuxedo Connector エラーは、WebLogic Server エラー ログにログされます。
tBridge の接続性
注意: MapMessage、ObjectMessage、StreamMessage の JMS メッセージ タイプは、WebLogic Tuxedo Connector では無効です。これらのメッセージ タイプの 1 つが tBridge によって受信された場合は、サポートされていないタイプであることを示すログ エントリが作成され、メッセージが破棄されます。
tBridge は、JMS キューと Tuxedo /Q または JMS キューと Tuxedo サービスのインスタンス間で、一方向のデータ接続を確立します。この接続は、WTCtBridgeRedirect MBean で指定され、識別されたポイント間に 1 対 1 の接続を提供します。3 つのタイプの接続がコンフィグレーションできます。次に、各接続タイプについて説明します。
- JmsQ2TuxQ: 特定の JMS キューから読み取りを行い、指定された Tuxedo /Q にメッセージを転送します。
- TuxQ2JmsQ: Tuxedo /Q から読み取りを行い、JMS にメッセージを転送します。
- JmsQ2TuxS: 特定の JMS キューから読み取りを行い、同時に指定された Tuxedo サービスを呼び出し、指定された JMS キューに応答を返します。
接続タイプのコンフィグレーションの例
以下の節では、各接続タイプのコンフィグレーションの例を紹介します。
JmsQ2TuxQ コンフィグレーションの例
JMS キューから読み取りを行い、Tuxedo /Q に送信するコードの例を以下に示します。
<WTCtBridgeRedirect
Direction="JmsQ2TuxQ"
Name="redir0"
ReplyQ="RPLYQ"
SourceName="weblogic.jms.Jms2TuxQueue"
TargetAccessPoint="TDOM2"
TargetName="STRING"
TargetQspace="QSPACE"
TranslateFML="NO"/>
次に、JmsQ2TuxQ コンフィグレーションの各コンポーネントを説明します。
- Direction 接続タイプは JmsQ2TuxQ です。
- SourceName は、読み取る JMS キューの名前が weblogic.jms.Jms2TuxQueue であることを指定します。tBridge は、CLIENT_ACKNOWLEDGE セマンティクスを使用して、このキューに JMS クライアント セッションを確立します。
- TargetAccessPoint は、アクセス ポイントの名前が TDOM2 であることを指定します。
- TargetQspace は、Qspace の名前が Qspace であることを指定します。
- TargetName は、キューの名前が STRING であることを指定します。
- ReplyQ は、JMS 応答キューの名前が RPLYQ であることを指定します。このキューを使用すると、tpenqueue は TMFORWARD 機能を提供します。
- TranslateFML が NO になっていると、tBridge がデータ変換を提供しないことを指定します。
以下の表に、JmsQtoTuxQ メッセージ マッピングの情報を示します。
マッピング元 : JMS メッセージ タイプ
|
マッピング先 : WebLogic Tuxedo Connector JATMI (Tuxedo)
|
BytesMessage
|
TypedCArray
|
TextMessage (translateFML = NONE)
|
TypedString
|
TextMessage (translateFML = FLAT)
|
TypedFML32
|
TuxQ2JmsQ コンフィグレーションの例
以下に、Tuxedo /Q キューから読み取りを行い、JMS キューに送信するコードの例を示します。
<WTCtBridgeRedirect
Direction="TuxQ2JmsQ"
Name="redir1"
SourceAccessPoint="TDOM2"
SourceName="STRING"
SourceQspace="QSPACE"
TargetName="weblogic.jms.Tux2JmsQueue"
TranslateFML="NO"/>
次に、TuxQ2JmsQ コンフィグレーションの各コンポーネントを説明します。
- Direction 接続タイプは TuxQ2JmsQ です。
- TargetName は、読み取る JMS キューの名前が weblogic.jms.Tux2JmsQueue であることを指定します。
- SourceAccessPoint は、アクセス ポイントの名前が TDOM2 であることを指定します。
- SourceQspace は、Qspace の名前が Qspace であることを指定します。
- SourceName は、キューの名前が STRING であることを指定します。
- TranslateFML が NO になっていると、tBridge がデータ変換を提供しないことを指定します。
- TranslateFML が Flat になっていると、tBridge がそのデータを FML から XML に変換することを指定します。
以下の表に、TuxQ2JmsQ メッセージ マッピングの情報を示します。
マッピング元 : WebLogic Tuxedo Connector JATMI (Tuxedo)
|
マッピング先 : JMS メッセージ タイプ
|
TypedCArray
|
BytesMessage
|
TypedString (translateFML = NO)
|
TextMessage
|
TypedFML32 (translateFML = FLAT)
|
TextMessage
|
TypedFML (translateFML = FLAT)
|
TextMessage
|
TypedXML
|
TextMessage
|
JmsQ2TuxS コンフィグレーションの例
注意: XML/FML 変換の詳細については、WebLogic Tuxedo Connector での FML の使用を参照してください。
次に、JMS キューから読み取りを行い、Tuxedo サービスを呼び出して、結果を JMS キューに返すコードの例を示します。
<WTCtBridgeRedirect
Direction="JmsQ2TuxS"
Name="redir0"
ReplyQ="weblogic.jms.Tux2JmsQueue"
SourceName="weblogic.jms.Jms2TuxQueue"
TargetAccessPoint="TDOM2"
TargetName="TOUPPER"
TranslateFML="FLAT"/>
次に、JmsQ2TuxS コンフィグレーションの各コンポーネントを説明します。
- Direction 接続タイプは JmsQ2TuxS です。
- SourceName は、読み取る JMS キューの名前が weblogic.jms.Jms2TuxQueue であることを指定します。
- TargetAccessPoint は、アクセス ポイントの名前が TDOM2 であることを指定します。
- TargetName は、キューの名前が TOUPPER であることを指定します。
- ReplyQ は、JMS 応答キューの名前が weblogic.jms.Tux2JmsQueue であることを指定します。
- TranslateFML が FLAT になっていると、JMS メッセージの受信時に、メッセージが XML フォーマットで、対応する FML32 データ バッファに変換されることを指定します。メッセージは、引数 TDOM2 および TOUPPER とともに tpcall に配置されます。メッセージは FML32 から XML に変換され、weblogic.jms.Tux2JmsQueue に配置されます。
以下の表に、JMSQ2TuxX メッセージ マッピングの情報を示します。
JMS メッセージ タイプ
|
WebLogic Tuxedo Connector JATMI (Tuxedo)
|
JMS メッセージ タイプ
|
BytesMessage
|
TypedCArray
|
BytesMessage
|
TextMessage (translateFML = NONE)
|
TypedString
|
TextMessage
|
TextMessage (translateFML = FLAT)
|
TypedFML32
|
TextMessage
|
優先度のマッピング
WebLogic Tuxedo Connector では、複数の tBridge リダイレクト インスタンスがサポートされています。リダイレクト インスタンスを複数使用すると、多くの環境下でアプリケーションのスケーラビリティおよびパフォーマンスが著しく向上します。ただし、その場合メッセージが処理される順序がランダムになります。優先度のマッピングをしても順序は保証されませんが、割り当てられた重要度に従ってメッセージに対応するメカニズムが提供されます。配信の順序を確実にしたい場合は、tBridge リダイレクト インスタンスを 1 つだけ使用してください。
JMS および Tuxedo 間で優先度をマップするには、priorityMapping を使用します。
- JMS には 10 の優先度があります (0〜9)。
- Tuxedo/Q には 100 の優先度があります (1〜100)。
この節では、Tuxedo および JMS サブシステム間で優先度をマップするメカニズムについて説明します。2 つのマッピング方向があります。
次の 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- 1-10:0 | 11-20:1 | 21-30:2 | 31-40:3 | 41-50:4| 51-60:5 | 61-70:6 | 71-80:7 | 81-90:8 | 91-100:9
このコンフィグレーションでは、優先度 7 の JMS メッセージが Tuxedo /Q の優先度 78 に割り当てられます。優先度 47 の Tuxedo /Q は、優先度 4 の JMS に割り当てられます。
エラー キュー
tBridge が Tuxedo キューまたは JMS キューからメッセージを受信したときに問題を検出した場合、再試行間隔の後に次の処理が行われます。
- 情報がログされます。
- コンフィグレーションされている場合は、メッセージがエラー キューに保存されます。
wlsServerErrorDestination
wlsErrorDestination キューは、JMS メッセージが Tuxedo エラーまたは変換エラーにより適切に送信できない場合に使用されます。
サポートされていないメッセージ タイプ
認識できない JMS メッセージを受信した場合、適切なエラー メッセージがログされ、そのメッセージは破棄されます。これはコンフィグレーション エラーと解釈され、tBridge はメッセージをエラー キューにリダイレクトしません。
tuxErrorQueue
tuxErrorQueue は、TuxQ2JmsQ のリダイレクト中の JATMI プリミティブ tpdequeue のエラー キューです。
制限
tBridge エラー キューには、次のような制限があります。
- TuxErrorDestination は一度だけ指定できます。ErrorDestination に関連するエラー キュー名は、すべての QSPACE が使用可能な同じエラー キュー名を持っていることを示します。
- エラーが発生した場合、メッセージはソース QSPACE に返されます。QSPACE が破損または一杯と判断されると、後続のメッセージは消失します。
- エラー時にメッセージを破棄するよう指定する方法はありません。すべてのメッセージが受信されるか、まったく受信されません。
- エラーに関する情報は、サーバ ログでのみ提供されます。