![]() |
![]() |
|
|
TMQUEUE(5)
名前
TMQUEUE-メッセージ・キュー・マネージャ
形式
TMQUEUE
SRVGRP="identifier"
SRVID="number" CLOPT=" [-A][servopts options] -- [-t timeout]"
機能説明
このサーバは、キューへのメッセージの登録、およびキューからのメッセージの取り出しを、それぞれ tpenqueue() および tpdequeue() を呼び出すプログラムの代わりに行います。アプリケーション管理者は、このサーバを SERVERS セクションでアプリケーション・サーバとして指定することにより、アプリケーションがキューに対するメッセージの登録および取り出しを行えるようにします。
位置指定、サーバ・グループ、サーバ識別子、その他の汎用サーバ関連パラメータは、サーバ用にすでに定義されているコンフィギュレーション・ファイル機構を使用して、サーバに関連付けられます。カスタマイズに利用できる、追加コマンド行オプションの一覧を次に示します。
TMQUEUE サーバは、アプリケーションの一部としてブートされ、アプリケーションから関連するキュー・スペースへのアクセスを容易にします。キュー・スペースは、キューの集まりです。
コンフィギュレーション条件によっては、TMQUEUE がキューにメッセージを登録したり、キューからメッセージを取り出したりできないことがあり、このようなコンフィギュレーション条件では、TMQUEUE はブート時に失敗します。SRVGRP では、TMSNAME に TMS_QM が設定されていなければならず、OPENINFO に、関連するデバイスおよびキュー・スペースの名前を示す値が設定されていなければなりません。
メッセージ要求時のキューの名前
関数 tpenqueue() および tpdequeue() は、第 1 引数としてキュー・スペースの名前をとります。この名前は、TMQUEUE によって宣言されたサービスの名前でなければなりません。省略時には、TMQUEUE はサービス "TMQUEUE" だけを提供します。キュー・スペースを 1 つだけ使用するアプリケーションの場合はこれだけで十分ですが、複数のキュー・スペースを持つアプリケーションでは、異なるキュー・スペース名を必要とすることがあります。また、アプリケーションによっては、キュー・スペースと同じ名前のより説明的なサービス名を指定したいという場合もあります。追加サービス名の宣言は、使用例にもあるように、標準のサーバ・コマンド行オプションの -s を使用して行うことができます。また、この後の項で説明するように、カスタム TMQUEUE プログラムを生成するときにサービスをハード・コード化してこれを行うこともできます。
これらの方法 (サーバ・コマンド行オプション、またはカスタマイズされたサーバ) は、キュー・スペースにメッセージの静的ルーティングを行う場合に使用できますが、データ依存型ルーティングを使用して動的なルーティングを行うこともできます。この場合、各 TMQUEUE サーバは、同じサービス名を宣言しますが、コンフィギュレーション・ファイルの ROUTING フィールドが使用されて、待機メッセージ内のアプリケーション・データに基づくルーティング基準が指定されます。ルーティング関数は、サービス名とアプリケーションの型付きバッファ・データに基づいて、GROUP を返します。この GROUP を使用して、指定のグループにあるサービスへ、メッセージの宛先が指定されます (なお、キュー・スペースは、OPENINFO 文字列に基づいて、GROUP につき 1 つしか存在できないことに注意してください)。
アプリケーション・バッファ・タイプの処理
提供時の TMQUEUE では、BEA Tuxedo システムに提供されている標準バッファ・タイプの処理に対応します。これ以外のアプリケーション・バッファ・タイプが必要な場合は、buildserver(1) を使用して、TMQUEUE のカスタマイズ・バージョンを構築する必要があります。『BEA Tuxedo /Q コンポーネント』を参照してください。
buildserver で説明されているカスタマイズは、サーバ用にサービス名をハード・コード化する場合にも使用できます。
呼び出し元によって組み込まれるファイルには、アプリケーション・バッファ・タイプ・スイッチおよび必要なサポートされるルーチンのみを入れてください。buildserver は、サーバ・オブジェクト・ファイル $TUXDIR/lib/TMQUEUE.o とアプリケーション・タイプ・スイッチのファイル (複数可) を結合し、これに、必要な BEA Tuxedo システム・ライブラリをリンクするために使用されます。次の例を利用して、詳細を説明します。
buildserver -v -o TMQUEUE -s qspacename:TMQUEUE -r TUXEDO/QM \
-f ${TUXDIR}/lib/TMQUEUE.o -f apptypsw.o
この buildserver のオプションは次のとおりです。
移植性
TMQUEUE は、サポートされているすべてのサーバ・プラットフォームで BEA Tuxedo システム提供のサーバとしてサポートされます。
相互運用性
TMQUEUE は、相互運用するアプリケーションで実行できますが、BEA Tuxedo Release 4.2 以降のノードで実行する必要があります。
使用例
*GROUPS
# Windows の場合、:myqueue を ;myqueue にする
TMQUEUEGRP1 GRPNO=1 TMSNAME=TMS_QM
OPENINFO="TUXEDO/QM:/dev/device1:myqueue"
# Windows の場合、:myqueue を ;myqueue にする
TMQUEUEGRP2 GRPNO=2 TMSNAME=TMS_QM
OPENINFO="TUXEDO/QM:/dev/device2:myqueue"
*SERVERS
# この例では、キュー・スペース名の myqueue に ACCOUNTING というエイリアスが付けられている
TMQUEUE SRVGRP="TMQUEUEGRP1" SRVID=1000 RESTART=Y GRACE=0
CLOPT="-s ACCOUNTING:TMQUEUE"
TMQUEUE SRVGRP="TMQUEUEGRP2" SRVID=1000 RESTART=Y GRACE=0
CLOPT="-s ACCOUNTING:TMQUEUE"
TMQFORWARD SRVGRP="TMQUEUEGRP1" SRVID=1001 RESTART=Y GRACE=0 REPLYQ=N
CLOPT=" -- -qservice1"
TMQFORWARD SRVGRP="TMQUEUEGRP2" SRVID=1001 RESTART=Y GRACE=0 REPLYQ=N
CLOPT=" -- -qservice1"
*SERVICES
ACCOUNTING ROUTING="MYROUTING"
*ROUTING
MYROUTING FIELD=ACCOUNT BUFTYPE="FML"
RANGES="MIN - 60000:TMQUEUEGRP1,60001-MAX:TMQUEUEGRP2"
この例では、2 つのキュー・スペースが利用できます。2 つの TMQUEUE サーバはどちらも同じサービスを提供し、ルーティングは、アプリケーションの型付きバッファの ACCOUNT フィールドを介して行われます。
関連項目
buildserver(1)、tpdequeue(3c)、tpenqueue(3c)、servopts(5)、TMQFORWARD(5)、UBBCONFIG(5)
『BEA Tuxedo アプリケーションの設定』
『BEA Tuxedo アプリケーション実行時の管理』
『C 言語を使用した BEA Tuxedo アプリケーションのプログラミング』
![]() |
![]() |
![]() |
|
Copyright © 2001 BEA Systems, Inc. All rights reserved.
|