リファレンス・ガイド

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

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

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

 


TuxMsgQLD

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

形式

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セクションから移植されています。

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

リスト3-1 リンク・ドライバ・サーバーの構成ファイル
# Define cross-group connections with remote OMQ, 
# only the remove OMQ group info should be listed 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 interval]"

説明

メッセージ・キュー・マネージャは、Oracle Tuxedoシステムで提供されるサーバーであり、tpenqplus()およびtpdeqplus()を呼び出すプログラムのためにメッセージをエンキューおよびデキューします。アプリケーション管理者は、*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 interval

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

環境変数

TuxMsgQでは、次の永続メッセージ・キャッシュの環境変数を使用します。

TM_OTMQCACHE_ENABLED, TM_OTMQCACHE_TIMEOUT, TM_OTMQCACHE_TIMEOUT.

TuxMsgQでは、永続メッセージと非永続メッセージの両方を管理できます。非永続メッセージは共有メモリーに格納されます。通常、永続メッセージはディスクに格納されます。共有メモリーへのメッセージの格納は、永続ストレージへのメッセージの格納よりも大幅に高速です。
OTMQキャッシュによって、永続メッセージのエンキュー時の動作が変更されます。メッセージは最初に非永続ストレージに格納され、その後、永続ストレージに移動します。メッセージを永続ストレージに移動する前にメッセージのデキューがリクエストされた場合は、移動操作が無視されます。その結果、非永続ストレージでメッセージの書込みおよび読取りが行われます(永続メッセージであっても)。エンキューおよびデキューのパフォーマンスが改善されます。

TM_OTMQCACHE_ENABLED

OTMQキャッシュを有効にするには、TuxMsgQを使用するため、TM_OTMQCACHE_ENABLEDyesに設定する必要があります。

TM_OTMQCACHE_TIMEOUT

TM_OTMQCACHE_TIMEOUTを使用して、エンキュー操作によってメッセージが永続ストレージに移動される前の遅延時間が変更されます。値の単位はmicroseconds (us)です。デフォルトのタイムアウト値は100usです。

TM_OTMQCACHE_MAXCACHEMSG

エンキュー操作と同じキューに対するデキューがない場合は、OTMQキャッシュのパフォーマンスが失われます。これは、メッセージが最初に非永続ストレージに格納され、その後、永続ストレージに格納される(タイムアウト後)ためです。
キュー内のキャッシュ済メッセージの数がTM_OTMQCACHE_MAXCACHEMS値と同じ場合、エンキューされた新しいメッセージは直接永続ストレージに格納されます。デフォルト値は16です。

リスト3-2 TuxMsgQの例
*SERVERS 
TuxMsgQ SRVGRP="TUXMSGQGRP" SRVID=1000 RESTART=Y GRACE=0
   CLOPT="-s myqueue:TuxMsgQ" 

関連項目

 


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秒が使用され、サーバーがキューを連続して読み取ることになり、そのキューに継続的にメッセージが格納されない場合は効率が悪くなる可能性があります。値0が指定された場合、この値として1秒が使用されます。

-t timeout

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

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

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

 


TMQ_NA

名前

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

形式

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

説明

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

-g xxx

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

-r yyy

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

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

 


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"

 


TMQEVT

名前

TMQEVT - OTMQイベント通知プロセス.

形式

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

説明

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

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

1つ以上のセカンダリTMQEVTプロセスを起動して、可用性を高めることができます。追加サーバーは、「セカンダリ・サーバー」であることを示すコマンド行オプション-Sを指定して起動する必要があります。

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

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

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

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

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

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

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

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

関連項目

tpqpublish()tpqsubscribe() (『Oracle Tuxedo Message Queue関数リファレンス』)

EVENTS(5), EVENT_MIB(5) ( 『Oracle Tuxedoファイル形式、データ記述、MIBおよびシステム・プロセス・リファレンス』)

 


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システムが提供するサーバーで、tpenqplus()で格納されたメッセージを後処理のために転送します。アプリケーション管理者は、*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がキューからメッセージを取り出せないか、メッセージを転送できないことがあり、その場合はサーバーを起動できなくなります。こうした条件では、次のことが必要です。

リスト3-3 TMQFORWARDPLUSの例
*GROUPS # For Windows, :myqueue becomes ;myqueue 
TUXMSGQGRP 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="TUXMSGQGRP" SRVID=1001 RESTART=Y GRACE=0
CLOPT=" -- -qservice1,service2" REPLYQ=N

関連項目

tpenqplus (), servopts(5), UBBCONFIG(5)


  先頭に戻る       前  次