BEA Logo BEA Tuxedo Release 8.0

  BEA ホーム  |  イベント  |  ソリューション  |  パートナ  |  製品  |  サービス  |  ダウンロード  |  ディベロッパ・センタ  |  WebSUPPORT

 

   Tuxedoホーム   |   ファイル形式、データ記述方法、MIB、およびシステム・プロセスのリファレンス   |   先頭へ   |   前へ   |   次へ   |   目次

 


TMQUEUE(5)

名前

TMQUEUE-メッセージ・キュー・マネージャ

形式

TMQUEUE 
SRVGRP="
identifier"
SRVID="
number" CLOPT=" [-A][servopts options] -- [-t timeout]"

機能説明

このサーバは、キューへのメッセージの登録、およびキューからのメッセージの取り出しを、それぞれ tpenqueue() および tpdequeue() を呼び出すプログラムの代わりに行います。アプリケーション管理者は、このサーバを SERVERS セクションでアプリケーション・サーバとして指定することにより、アプリケーションがキューに対するメッセージの登録および取り出しを行えるようにします。

位置指定、サーバ・グループ、サーバ識別子、その他の汎用サーバ関連パラメータは、サーバ用にすでに定義されているコンフィギュレーション・ファイル機構を使用して、サーバに関連付けられます。カスタマイズに利用できる、追加コマンド行オプションの一覧を次に示します。

-t timeout

トランザクション・モードにないキュー操作で使用するタイムアウトを示すために使用します。「トランザクション・モードにないキュー操作」とは、たとえば、tpenqueue() または tpdequeue() が、トランザクション・モードにない呼び出し元から呼び出されたり、TPNOTRAN フラグを指定して呼び出される場合のことです。この値は、TPQWAIT オプションが指定された、キューからの取り出し要求にも影響します。この場合、この値に基づいて、操作がタイムアウトしてエラーが要求者に返されるためです。指定されない場合、省略時値は 30 秒です。

TMQUEUE サーバは、アプリケーションの一部としてブートされ、アプリケーションから関連するキュー・スペースへのアクセスを容易にします。キュー・スペースは、キューの集まりです。

コンフィギュレーション条件によっては、TMQUEUE がキューにメッセージを登録したり、キューからメッセージを取り出したりできないことがあり、このようなコンフィギュレーション条件では、TMQUEUE はブート時に失敗します。SRVGRP では、TMSNAMETMS_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 のオプションは次のとおりです。

-v

buildserver が冗長モードで動作することを指定します。これは、cc コマンドを標準出力に表示します。

-o name

出力ロード・モジュールのファイル名を指定します。このオプションで指定された名前は、コンフィギュレーション・ファイルの SERVERS セクション中にも指定しなければなりません。一貫性を保つために、TMQUEUE を使用することを推奨します。

-s qspacename,qspacename :TMQUEUE

サーバのブート時に宣言できるサービス名を指定します (servopts(5) を参照)。このサーバでは、サービス名は、要求を出す先となるキュー・スペースの名前の別名として使用されます。カンマの間に空白は使用できません。関数名 TMQUEUE の前にはコロンを付けます。-s オプションは、複数回使用できます。

-r TUXEDO/QM

このサーバに関連付けられているリソース・マネージャを指定します。値 TUXEDO/QM は、$TUXDIR/udataobj/RM に配置されているリソース・マネージャ・テーブルにあり、BEA Tuxedo システムのキュー・マネージャ用のライブラリを含んでいます。

-f $TUXDIR/lib/TMQUEUE.o

TMQUEUE サービスが入っているオブジェクト・ファイルを指定します。このファイルは、-f オプションの第 1 引数として指定してください。

-f firstfiles

buildserver のコンパイル段階やリンク・エディット段階で組み込まれる、1 つまたは複数のユーザ・ファイルを指定します。ソース・ファイルは、cc コマンド、または CC 環境変数を通して指定されるコンパイル・コマンドのいずれかを使用してコンパイルされます。ここに指定するファイルは、TMQUEUE.o オブジェクト・ファイルを組み込んだ後に指定しなければなりません。複数のファイルを指定する場合には、ファイル名を空白類 (スペースまたはタブ) で区切り、全体を引用符で囲みます。このオプションは、複数回指定できます。

移植性

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 アプリケーションのプログラミング』

 

先頭へ戻る 前のトピックへ 次のトピックへ