リファレンス・ガイド

     前  次    新規ウィンドウで目次を開く    PDFとして表示 - 新規ウィンドウ  Adobe Readerを取得 - 新規ウィンドウ
コンテンツはここから始まります

Oracle Tuxedo Message Queue
UBBサーバー・リファレンス

表1 Oracle Tuxedo Message QueueのUBBサーバー
名前
説明
TMQリンク・ドライバ・サーバー
メッセージ・キュー・マネージャ
メッセージ・キュー・オフライン・トレード・ドライバ
メッセージ・キュー・ネーミング・サーバー
OTMQリソース・マネージャのTMSサーバー
TMQイベント通知プロセス
メッセージ転送サーバー

 


TuxMsgQLD

TuxMsgQLD - TMQリンク・ドライバ・サーバー

シノプシス

TuxMsgQLD SRVGRP="identifier" SRVID="number" 
[CLOPT="[-A] [servopts options]
[-g grp_id][ -l //hostname:port][ -f config_filename]"]

説明

従来のOMQリンク・ドライバから移植されたOTMQのTuxMsgQLD(リンク・ドライバ・サーバー)は、OTMQアプリケーションとOMQアプリケーション間のメッセージ・レベルの互換性を実現します。

OTMQリンク・ドライバ・サーバーにより、従来のOMQリンク・ドライバと同様のルーティング機能も提供されますが、いくつかの制限があります。

構成ファイル

リンク・ドライバ・サーバーを構成するには、新規の構成ファイルを作成します。この構成ファイルは、APPDIRの下に置きます。構成ファイルは、従来のOMQの構成ファイルの%XGROUPおよび%ROUTEセクションから移植されています。

変換ツールを使用してオリジナルのOMQグループから移行されたOTMQのグループの場合、この構成ファイルは、コマンドラインで指定したパラメータに従って変換ツールによって作成されます。将来のXGROUP構成への更新のため、構成ファイルは手動で更新してください。

リスト3-1に、リンク・ドライバ・サーバーの構成ファイルの例を示します。

リスト3-1 リンク・ドライバ・サーバーの構成ファイル
# Define cross-group connections with remote OMQ, 
# only the remove OMQ group info should be list here
%XGROUP	
# Group   Group   Node/   Init-   Thresh   Buffer   Recon-   Window   Trans-   End-
# Name     Number  Host      iate     old     Pool      nect     Delay  Size (Kb)  port  point
GRP_11      11  host1.abc.com  Y       -       -         30       10      250     TCPIP   10001
GRP_12      12   host2.abc.com Y       -       -         30       10      250     TCPIP   10002
%EOS
%ROUTE
#----------------------------------
#  Target    Route-through
#  Group     Group
#----------------------------------
     2           11
     3           12
%EOS
%END

%XGROUPセクション

OTMQでリモートOMQグループとのXGROUP接続を設定するために必須の構成属性を次に示します。
次に示す属性はオプションです。設定されない場合は、デフォルトの値が使用されます。
次に示す属性は、OTMQのリンク・ドライバ・サーバーではサポートされませんが、従来のOMQのXGROUP設定に合せるため、ここに残されています。

%ROUTE

OTMQで、直接接続できないリモートのOMQ/OTMQグループのためのROUTE情報の設定に必須の構成属性を次に示します。

制限事項

ルーティング

 


TuxMsgQ

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

シノプシス

TuxMsgQ 
SRVGRP="identifier" 
SRVID="number" CLOPT=" [-A][servopts options] -- [-t timeout][-i sanity scan interval]"

説明

メッセージ・キュー・マネージャは、tpenqueue()およびtpdequeue()を呼び出してプログラムのかわりにメッセージのエンキューとデキューを行うOracle Tuxedoシステム付属のサーバーです。アプリケーション管理者は、SERVERSセクションでこのサーバーをアプリケーション・サーバーとして指定することにより、アプリケーションでキューに対するメッセージの登録および取出しを行うことができます。

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

Qspaceのデフォルトのアタッチ・タイムアウトを構成するには、TuxMQATH[qspace]という名前のサービスのSERVICESセクションのBLOCKTIMEプロパティを設定します([qspace]は、TuxMsgQサーバーからTuxMsgQルーチンで通知されるサービス名)。

次のオプションを指定できます。

-t timeout

トランザクション・モード以外でのキュー操作で使用するタイムアウトの指定に使用します(たとえば、tpenqueue()/tpenqplus()またはtpdequeue()/tpdeqplus()がトランザクション・モード以外のコール元から呼び出されたり、TPNOTRANフラグを指定して呼び出されたりする場合)。この値は、TPQWAITオプションが指定された、キューからの取出しリクエストにも影響します。この値に基づいて操作がタイムアウトし、エラーがリクエスタに返されるからです。指定されない場合、デフォルト値は30秒です。
TuxMsgQサーバーはアプリケーションの一部として起動され、アプリケーションから関連するキュー・スペースへのアクセスを容易にします。キュー・スペースはキューの集まりです。 構成によっては、TuxMsgQがキューにメッセージを登録できないか、キューからメッセージを取り出せないことがあり、その場合TuxMsgQサーバーは起動時に異常終了します。SRVGRPでは、TMSNAMEがTMS_QMに設定されている必要があり、OPENINFOには関連するデバイスおよびキュー・スペースの名前が設定されている必要があります。

-i sanity scan interval

TuxMsgQサーバーの正常性チェック間隔を構成するには、CLOPTに「-i [interval]」を設定します。「interval」の値は、この数のメッセージを受信するたびにTuxMsgQサーバーが正常性チェックを実行する数を意味します。
メッセージ要求時のキューの名前

tpenqueue()およびtpdequeue()関数は、第1引数としてキュー・スペースの名前を受け取ります。この名前は、TuxMsgQによって通知されたサービスの名前でなければなりません。デフォルトでは、TuxMsgQはサービス「TuxMsgQ」のみを提供します。キュー・スペースを1つだけ使用するアプリケーションの場合はこれで十分ですが、複数のキュー・スペースを持つアプリケーションでは、異なるキュー・スペース名を必要とすることがあります。また、アプリケーションによっては、キュー・スペースと同じ名前のより説明的なサービス名の指定が必要になる場合もあります。追加サービス名の公開は、使用例にもあるように、標準のサーバー・コマンドライン・オプション-sを使用して行うことができます。また、この後の項で説明するように、カスタムTuxMsgQプログラムを生成するときにサービスをハードコードしてこれを行うこともできます。

これらの方法(サーバー・コマンドライン・オプション、またはカスタマイズされたサーバー)は、キュー・スペースにメッセージの静的ルーティングを行う場合に使用できますが、データ依存型ルーティングを使用して動的なルーティングを行うこともできます。この場合、各TUXMSGQserverは同じサービス名を通知しますが、構成ファイルのROUTINGフィールドが使用されて、待機メッセージ内のアプリケーション・データに基づくルーティング基準が指定されます。ルーティング関数は、サービス名とアプリケーションの型付きバッファ・データに基づいてGROUPを返し、このGROUPを使用して指定のグループにあるサービスにメッセージが転送されます(なお、キュー・スペースは、OPENINFO文字列に基づいてGROUPにつき1つしか存在できません)。

アプリケーション・バッファ・タイプの処理

TuxMsgQは、Oracle Tuxedoシステムに用意されている標準のバッファ・タイプを処理します。これ以外のアプリケーション・バッファ・タイプが必要な場合は、buildserver(1)を使用して、TuxMsgQのカスタマイズ・バージョンをビルドする必要があります。詳細は、『Oracle Tuxedo ATMI /Qコンポーネントの使用』を参照してください。

buildserverの項で説明されるカスタマイズは、サーバー用にサービス名をハードコードする場合にも使用できます。

コール元に組み込むファイルは、アプリケーション・バッファ・タイプ・スイッチおよびサポートされる必須のルーチンのみをインクルードします。buildserverは、サーバー・オブジェクト・ファイルの$TUXDIR/lib/TuxMsgQ.oとアプリケーション・タイプ・スイッチのファイル(複数可)を結合し、必要なOracle Tuxedoシステム・ライブラリとリンクするために使用します。次の例を使用して、詳細を説明します。

buildserver -v -o TuxMsgQ -s qspacename:TuxMsgQ -r TUXEDO/QM \
-f ${TUXDIR}/lib/TuxMsgQ.o -f apptypsw.o

buildserverオプションは次のとおりです。

-v

buildserverを冗長モードで機能させます。ccコマンドの実行結果が標準出力へ書き込まれます。

-o name

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

-s qspacename,qspacename :TuxMsgQ

サーバーの起動時に通知できるサービスの名前を指定します(servopts(5)を参照)。このサーバーでは、サービス名はリクエストの送信先となるキュー・スペースの名前の別名として使用されます。カンマとカンマの間に空白を入れてはいけません。関数名TuxMsgQの前にはコロンを付けます。-sオプションは何回使用してもかまいません。

-r TUXEDO/QM

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

-f $TUXDIR/lib/TuxMsgQ.o

TuxMsgQサービスが入っているオブジェクト・ファイルを、-fオプションの最初の引数として指定します。

-f firstfiles

buildserverのコンパイル段階やリンク段階で組み込まれる1つまたは複数のユーザー・ファイルを指定します。ソース・ファイルは、ccコマンドまたは環境変数CCによって指定されたコマンドによってコンパイルされます。これらのファイルは、TuxMsgQ.oオブジェクト・ファイルを組み込んだ後に指定します。複数のファイルを指定する場合には、ファイル名を空白類(スペースまたはタブ)で区切り、全体を引用符で囲みます。このオプションは、何回も指定することができます。

この例では、2つのキュー・スペースを使用できます。どちらのTuxMsgQサーバーも同じサービスを提供し、ルーティングはアプリケーションの型付きバッファのACCOUNTフィールドを介して行われます。

リスト3-2 TuxMsgQの例
*GROUPS 
# For Windows, :myqueue becomes ;myqueue
TUXMSGQGRP1 GRPNO=1 TMSNAME=TMS_TMQM
   OPENINFO="TUXEDO/TMQM:/dev/device1:myqueue"
# For Windows, :myqueue becomes ;myqueue
TUXMSGQGRP2 GRPNO=2 TMSNAME=TMS_TMQM
   OPENINFO="TUXEDO/TMQM:/dev/device2:myqueue"

*SERVERS
# The queue space name, myqueue, is aliased as ACCOUNTING in this example
TuxMsgQ SRVGRP="TUXMSGQGRP1" SRVID=1000 RESTART=Y GRACE=0
   CLOPT="-s ACCOUNTING:TuxMsgQ"
TuxMsgQ SRVGRP="TUXMSGQGRP2" SRVID=1000 RESTART=Y GRACE=0
   CLOPT="-s ACCOUNTING:TuxMsgQ"
TMQFORWARD SRVGRP="TUXMSGQGRP1" SRVID=1001 RESTART=Y GRACE=0 REPLYQ=N
   CLOPT=" -- -qservice1"
TMQFORWARD SRVGRP="TUXMSGQGRP2" SRVID=1001 RESTART=Y GRACE=0 REPLYQ=N
   CLOPT=" -- -qservice1"

*SERVICES
ACCOUNTING ROUTING="MYROUTING"
*ROUTING
MYROUTING FIELD=ACCOUNT BUFTYPE="FML"
RANGES="MIN - 60000:TUXMSGQGRP1,60001-MAX:TUXMSGQGRP2"

関連項目

buildserver(1)、tpdequeue(3c)、tpenqueue(3c)、servopts(5)、TMQFORWARD(5)、UBBCONFIG(5)

『Oracle Tuxedoアプリケーションの設定』

『Oracle Tuxedoアプリケーション実行時の管理』

『C言語を使用したOracle Tuxedo ATMIアプリケーションのプログラミング』

 


TuxMQFWD

名前

TuxMQFWD - メッセージ・キュー・オフライン・トレード・ドライバ

シノプシス

TuxMQFWD
SRVGRP="identifier"
SRVID="number" CLOPT=" [-A][servopts options] -- [-f delay time][-t timeout][-i idle time]"

説明

メッセージ・キュー・オフライン・トレード・ドライバは、Oracle Tuxedoシステムが提供するサーバーです。

位置指定、サーバー・グループ、サーバー識別子、その他の汎用サーバー関連パラメータは、サーバー用に定義されている構成ファイル機構を使用して、このサーバーに関連付けられます。次のオプションを指定できます。

-f delay time

オフライン・トレード・ドライバが、前回の失敗後、再試行を行うまでの時間(秒単位)を指定するために使用するパラメータです。

-i idletime

サーバーが読み取っているキューが空になった後の、サーバーのアイドル状態の時間を指定するパラメータです。負の値は、ミリ秒単位の時間を表します。たとえば、-i -10の場合、アイドル時間は10ミリ秒となります。
0が指定された場合、この値として1秒が使用され、サーバーがキューを連続して読み取ることになり、そのキューに継続的にメッセージが格納されない場合は効率が悪くなる可能性があります。指定されない場合、デフォルト値は30秒です。

-t timeout

メッセージをデキューし、そのメッセージをアプリケーション・サーバーに転送するトランザクションについて、tpbegin()で使用されるトランザクション・タイムアウト値(秒単位)を指定するために使用するパラメータです。指定されない場合、デフォルト値は60秒です。

構成によっては、TuxMQFWDがキューからメッセージを取り出せないか、メッセージを転送できないことがあり、その場合はサーバーを起動できなくなります。こうした条件では、次のことが必要です。

1つのグループ内に複数のTuxMQFWDプロセスは構成できません。

TuxMQFWD
SRVGRP=QGRP1 SRVID=51 GRACE=0 RESTART=Y CONV=N MAXGEN=10
CLOPT="-- -i 1"

関連項目

buildserver(1)、tpdequeue(3c)、tpenqueue(3c)、servopts(5)、TMQFORWARD(5)、UBBCONFIG(5)

『Oracle Tuxedoアプリケーションの設定』

『Oracle Tuxedoアプリケーション実行時の管理』

 


TMQ_NA

名前

TMQ_NA - メッセージ・キュー・ネーミング・サーバー

シノプシス

TMQ_NA
SRVGRP="identifier"
SRVID="number" CLOPT=" [-A][servopts options] -- [-g OTMQ group] [-r OMQ group]"

説明

TMQ_NAはOTMQのシステム・サーバーです。これにより、ネーミングおよびキュー名とキュー名の実行時バインディングが提供されます。次のオプションがサポートされます。

-g OTMQ_group_xxx

このネーミング・サービスが、OTMQのグループxxxによって提供されることを指定するために使用するパラメータです。

-r OMQ_group_yyy

このネーミング・サービスが、OMQのグループyyyによって提供されることを指定するために使用するパラメータです。
注意: パラメータの順序により、どのネーミング・サーバーがプライマリで、どれがバックアップかが決定します。

TMQ_NA
SRVGRP=QGRP1 SRVID=51 GRACE=0 RESTART=Y CONV=N MAXGEN=10
CLOPT=" -- -g 1 "

関連項目

buildserver(1)、tpdequeue(3c)、tpenqueue(3c)、servopts(5)、TMQFORWARD(5)、UBBCONFIG(5)

『Oracle Tuxedoアプリケーションの設定』

『Oracle Tuxedoアプリケーション実行時の管理』

『C言語を使用したOracle Tuxedo ATMIアプリケーションのプログラミング』

 


TMS_TMQM

名前

TMS_TMQM - OTMQリソース・マネージャのTMSサーバーです。

シノプシス

説明

OTMQでは、独立したTuxedoトランザクション管理サーバー(TMS)も提供されます。TMS_TMQMは、TuxMsgQまたはTuxMQFWD(あるいはその両方)のグループ内に構成する必要があります。

*GROUPS
QGRP1
    LMID=L1 GRPNO=1 TMSNAME=TMS_TMQM TMSCOUNT=2
    OPENINFO="TUXEDO/TMQM:/dev/device2:myqueue"

関連項目

buildserver(1)、tpdequeue(3c)、tpenqueue(3c)、servopts(5)、TMQFORWARD(5)、UBBCONFIG(5)

『Oracle Tuxedoアプリケーションの設定』

『Oracle Tuxedoアプリケーション実行時の管理』

『C言語を使用したOracle Tuxedo ATMIアプリケーションのプログラミング』

 


TMQ_EVT

名前

TMQ_EVT - TMQイベント通知プロセスです。

シノプシス

TMQ_EVT SRVGRP="identifier" SRVID="number" 
  [CLOPT="[-A] [servopts options]
  [-- [-S] [-p poll-seconds] [-f control-file]]"]

説明

TMQ_EVTはOracle Tuxedoシステムが提供するサーバーで、tpqpublishからのイベント・レポート・メッセージ・バッファを処理し、それらにフィルタを適用して転送するEventBrokerとして動作します。

フィルタや通知に関するルールは、制御ファイルcontrol-fileに格納され、デフォルトの名前は${APPDIR}/tmusrevt.datです。control-fileの構文はEVENT_MIB(5)で定義され、特に、EVENT_MIBのクラス属性を設定することで、通知ルールの範囲内でサブスクリプションをアクティブ化できます。

1つまたは複数の二次的なTMQ_EVTプロセスを起動して、可用性を高めることができます。追加サーバーは、「セカンダリ・サーバー」であることを示すコマンドライン・オプション-Sを指定して起動する必要があります。

EVENT_MIB(5)の構成が更新されるときには、プライマリTMQ_EVTサーバーがその制御ファイルに書込みを行います。セカンダリ・サーバーは、プライマリ・サーバーの制御ファイルが更新されているかどうかをポーリングを通じてチェックし、必要であれば各自の(ローカルの)制御ファイルを更新します。ポーリングの間隔は-pオプションで指定できます。デフォルト値は30秒です。

注意: 複数のリリースのOracle Tuxedoシステムで構成されたMP構成を設定し、TMQ_EVTまたはTMSYSEVTサーバー(あるいはその両方)を実行する場合は、これらのサーバーを最新のリリースのノードで実行する必要があります。

TMQ_EVTは、TMS_TMQMと同じグループにはデプロイできません。

TMQ_EVTは、Oracle Tuxedoリリース6.0以降のマシンで実行する必要があります。

プライマリTMQ_EVTサーバーを別のマシンに移行するには、システム管理者は、制御ファイルの最新のコピーを用意する必要があります。セカンダリTMQ_EVTサーバーは、自動的に最新のコピーを保持しています。

tppost()をトランザクション・モードで呼び出す場合は、すべてのTMQ_EVTサーバー・グループがトランザクション機能(TMSプロセス)を備えている必要があります。

TMQ_EVTサーバーの環境変数は、メッセージにフィルタを適用したりフォーマットする際に必要となるFMLフィールド表やVIEWファイルを使用できるように設定しておく必要があります。これらの環境変数は、マシンまたはサーバーの環境設定ファイルで設定できます。

*SERVERS 
TMQ_EVT SRVGRP=ADMIN1 SRVID=100 RESTART=Y MAXGEN=5 GRACE=3600
CLOPT="-A --"
TMQ_EVT SRVGRP=ADMIN2 SRVID=100 RESTART=Y MAXGEN=5 GRACE=3600
CLOPT="-A -- -S -p 120"

関連項目

tpqpublish、tpqsubscribe、EVENTS(5)、EVENT_MIB(5)、TMSYSEVT(5)

 


TMQFORWARDPLUS

名前

TMQFORWARDPLUS - メッセージ転送サーバー

シノプシス

TMQFORWARDPLUS SRVGRP="identifier" SRVID="number" REPLYQ=N CLOPT=" 
[-A] [servopts options] -- -q queuename[,queuename...]
[-t trantime ] [-i idletime] [-b timeout] [-e] [-d] [-n] [-f delay] "

説明

メッセージ転送サーバーはOracle Tuxedoシステムが提供するサーバーで、tpenqueue()で格納されたメッセージを後処理のために転送します。アプリケーション管理者は、SERVERSセクションでこのサーバーをアプリケーション・サーバーとして指定することにより、アプリケーション・サーバーのメッセージ処理を自動化できます。

位置指定、サーバー・グループ、サーバー識別子、その他の汎用サーバー関連パラメータは、サーバー用に定義されている構成ファイル機構を使用して、このサーバーに関連付けられます。次のオプションがサポートされます。

-q queuename[,queuename...]

このサーバーのメッセージの転送先である1つまたは複数のキュー/サービスの名前を指定する場合に使用します。キューおよびサービスの名前は、15文字以内の文字列です。このオプションは必須です。

-t trantime

キューからメッセージを取り出し、そのメッセージをアプリケーション・サーバーに転送するトランザクションについて、tpbegin()で使用されるトランザクション・タイムアウト値を指定する場合に使用します。指定されない場合、デフォルト値は60秒です。

-i idletime

サーバーが読み取るキューを排出した後に、サーバーがアイドル状態になる時間を指定する場合に使用します。負の値は、ミリ秒単位の時間を表します。たとえば、-i -10の場合、アイドル時間は10ミリ秒となります。
値が0の場合、サーバーがキューを連続して読み取ることを示しますが、これを指定した場合は、キューのメッセージが連続していないと効率が低下する可能性があります。指定されない場合、デフォルト値は30秒です。

-b timeout

転送されたサービスを完了するための非トランザクション・ブロック待ち時間を制限するために使用します(単位は秒)。-bオプションは、-fオプションと同時に使用できます。

-e

キュー上にメッセージがない状況でサーバーを終了させる場合に使用します。このオプションをキューに関連付けられたしきい値コマンドと組み合せて使用することにより、エンキューされたメッセージの変化に応じてTMQFORWARDPLUSサーバーを開始および停止できます。

-d

トランザクションのロールバック後に、サービスを失敗させ、応答メッセージ(長さがゼロ以外)を持つメッセージをキューから削除する場合に使用します。つまり、サービスが失敗し、長さがゼロ以外の応答メッセージをサーバーから受信した場合、元の要求メッセージはキューに返されるのではなく削除されます。
応答メッセージは、異常終了キューがメッセージに関連付けられていて、かつ存在していれば、そのキューに登録されます。キューに設定されている再試行回数の上限に達すると同時にメッセージが削除されるようになっている場合、元のリクエスト・メッセージはエラー・キューに移されます。

-n

TPNOTRANフラグを使ってメッセージを送信する場合に使用します。このフラグを指定すると、リソース・マネージャに関連付けられていないサーバー・グループに転送できるようになります。

-f delay

サーバーがtpcallを使用するかわりに、サービスにメッセージを転送するように指定する場合に使用します。メッセージが送信され、サービスからの応答は期待されません。TMQFORWARDPLUSサーバーは、サービスからの応答を待つときにブロックすることなく、キューの次のメッセージを続けて処理できます。TMQFORWARDPLUSなどのリクエストの殺到でシステムの処理能力を超えないように調整するには、delay値にリクエストを処理する間の遅延時間を秒単位で指定します(ゼロは遅延なし)。

メッセージは、それが読み取られるキューと同じ名前のサービスを提供するサーバーに送信されます。キューへのメッセージ登録時に優先度を指定した場合は、その優先度がメッセージの優先度になります。指定していない場合、優先度は構成ファイルで定義されているサービスの優先度か、またはデフォルト(50)になります。

メッセージは、1つのトランザクションの中でキューから取り出され、サーバーに送信されます。サービスが正常に終了すると、トランザクションはコミットされ、メッセージはキューから削除されます。メッセージが応答キューに関連付けられている場合は、サービスからの応答はいずれも、返されたtpurcodeとともに応答キューにエンキューされます。応答キューが存在しない場合、応答はドロップされます。

元のメッセージをキューに登録する場合、アプリケーションではメッセージに対する応答のサービス品質を指定できます。応答のサービス品質が指定されていない場合、応答キューに指定されているデフォルトの配信ポリシーが使用されます。デフォルトの配信ポリシーは、メッセージに対する応答がキューに登録されるときに決定される点に注意してください。つまり、元のメッセージがキューに登録されてからメッセージに対する応答が登録されるまでの間に、応答キューのデフォルトの配信ポリシーが変更された場合、応答が最後に登録される時点で有効なポリシーが使用されます。

サービスが異常終了した場合、そのキューに対する再試行制限によって指定されている回数の範囲内でトランザクションがロールバックされ、メッセージがキューに戻されます。メッセージがキューに戻される際、そのメッセージが最初にキューに登録されたときに適用された順位付けルールおよびキューからの取出しルールは、delay秒の間、一時的に効力を失います。これにより、たとえば、順位付けの低いメッセージが、キューに戻されたメッセージより先に取り出される可能性が出てきます。

-dオプションを指定した場合、サービスが異常終了し、サーバーから応答メッセージが受信されると、メッセージはキューから削除され、また、応答メッセージ(および関連するtpurcode)は、異常終了キューがそのメッセージに関連付けられており、かつ存在していればそのキューにエンキューされます。キューに設定されている再試行の制限に達すると同時にメッセージが削除されるようになっている場合、元のリクエスト・メッセージはエラー・キューに移されます。

構成によっては、TMQFORWARDPLUSがキューからメッセージを取り出せないか、メッセージを転送できないことがあり、その場合はサーバーを起動できなくなります。こうした条件では、次のことが必要です。

アプリケーション・バッファ・タイプの処理

TMQFORWARDPLUSは、Oracle Tuxedoに用意されている標準のバッファ・タイプを処理します。これ以外のアプリケーション・バッファ・タイプが必要な場合は、buildserver(1)をカスタマイズ・タイプ・スイッチとともに使用して、TMQFORWARDPLUSのカスタマイズ・バージョンをビルドする必要があります。詳細は、『Oracle Tuxedo ATMI /Qコンポーネントの使用』を参照してください。

コール元に組み込むファイルは、アプリケーション・バッファ・タイプ・スイッチおよびサポートされる必須のルーチンのみをインクルードしてください。buildserverは、サーバー・オブジェクト・ファイル$TUXDIR/lib/TMQFORWARDPLUS.oとアプリケーション・タイプ・スイッチのファイル(複数可)を結合し、必要なOracle Tuxedoシステム・ライブラリとリンクするために使用します。次の例を使用して、詳細を説明します。

buildserver -v -o TMQFORWARDPLUS -r TUXEDO/QM -f ${TUXDIR}/lib/TMQFORWARDPLUS.o -f apptypsw.o

buildserverオプションは次のとおりです。

-v

buildserverを冗長モードで機能させます。ccコマンドの実行結果が標準出力へ書き込まれます。

-o name

出力ロード・モジュールのファイル名を指定します。このオプションで指定された名前は、構成ファイルのSERVERSセクション中にも指定しなければなりません。一貫性を保つために、この名前としてTMQFORWARDPLUSを使用することをお薦めします。このコマンドのアプリケーション固有バージョンは$APPDIRにインストールでき、$TUXDIR/binにあるバージョンのかわりに起動されます。

-r TUXEDO/TMQM

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

-f $TUXDIR/lib/TMQFORWARDPLUS.o

TMQFORWARDPLUSサービスが入っているオブジェクト・ファイルを、-fオプションの最初の引数として指定します。

-f firstfiles

buildserverのコンパイル段階やリンク段階で組み込まれる1つまたは複数のユーザー・ファイルを指定します。ソース・ファイルは、ccコマンドまたは環境変数CCによって指定されたコマンドによってコンパイルされます。これらのファイルは、TMQFORWARDPLUS.oオブジェクト・ファイルを組み込んだ後に指定します。複数のファイルを指定する場合には、ファイル名を空白類(スペースまたはタブ)で区切り、全体を引用符で囲みます。このオプションは、何回も指定することができます。
サービスを公開するための-sオプションを指定してはなりません。
注意: TMQFORWARDPLUSは、サポートされているすべてのサーバー・プラットフォームでOracle Tuxedoシステム提供のサーバーとしてサポートされます。
注意: TMQFORWARDPLUSは、相互運用するアプリケーションで実行できますが、Oracle Tuxedoリリース4.2以降のノードで実行する必要があります。

リスト3-3 TMQFORWARDPLUSの例
*GROUPS # For Windows, :myqueue becomes ;myqueue 
TMQUEUEGRP LMID=lmid GRPNO=1 TMSNAME=TMS_TMQM
OPENINFO="TUXEDO/TMQM:/dev/device:myqueue"
# no CLOSEINFO is required

*SERVERS # recommended values RESTART=Y GRACE=0
TMQFORWARDPLUS SRVGRP="TMQUEUEGRP" SRVID=1001 RESTART=Y GRACE=0
CLOPT=" -- -qservice1,service2" REPLYQ=N
TMQUEUE SRVGRP="TMQUEUEGRP" SRVID=1000 RESTART=Y GRACE=0
CLOPT="-s ACCOUNTING:TMQUEUE"

関連項目

buildserver(1)、tpdequeue(3c)、tpenqueue(3c)、servopts(5)、TMQUEUE(5)、UBBCONFIG(5)


  先頭に戻る       前  次