BEA Logo BEA Tuxedo Release 8.0

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

 

   Tuxedo ホーム   |   ATMI アプリケーションでの BEA Tuxedo TOP END Domain Gateway の使用   |   先頭へ   |   前へ   |   次へ   |   目次

 


BEA TOP END クライアントから /Q へのメッセージ登録

BEA TOP END クライアントは、tp_rtq_put(3T) を呼び出してメッセージを BEA Tuxedo の /Q キューに登録します。BEA TOP END システムが要求を TEDG または別の RTQ サーバにルーティングするには、queue_info パラメータを使用します。queue_info パラメータは RTQ グループ、RTQ キュー名、および RTQ ターゲットを指定します。

BEA Tuxedo の管理者は qmadmin(1) を使用して /Q キュー・スペースを作成し、その QSPACE 内で利用できるキュー名を作成する必要があります。BEA TOP END システムで BEA Tuxedo の /Q キュー・スペースを利用するためには、キュー・スペースに対する QSPACE エントリを DMCONFIG ファイルの DM_LOCAL_SERVICES セクションで定義し、TE_RTQGROUPTE_RTQNAME、および TE_TARGET パラメータを指定しなければなりません。TEDG は BEA TOP END システムとの接続時にこれらのパラメータを宣言します。BEA Tuxedo ドメイン内の個々のキュー・スペースの可用性は、接続がアクティブの間はトラッキングされません。

TEDG は要求を受信すると、(RTQ グループ、キュー名、およびターゲットを定義する) queue_info パラメータを使用して、キュー・スペースを決定します。ターゲットが指定されていない場合、ルックアップではターゲットなしが使われます。tp_rtq_put サービス・パラメータによって /Q キュー名が決定されます。TEDG はメッセージのプロダクト、関数、ターゲット、および関数修飾子と一致する QNAME エントリを DM_LOCAL_SERVICES セクションで検索します。取得したキュー・スペースおよびキュー名パラメータを使用し、tpenqueue(3c) と同等の関数を呼び出してメッセージをキューに登録します。デフォルト値が tpenqueue のオプションのパラメータに使用されます。たとえば、RTQ 要求から優先順位はマッピングできません。したがって、デフォルトが使用されます。メッセージがキューに登録された後、BEA Tuxedo の管理者は qmadmin を使って /Q キューの属性およびその中のメッセージを変更できます。

TEDG は TMQUEUE(5) サーバによって返されるステータスをマッピングし、BEA TOP END クライアントに返します。要求をキューに登録すると、TEDG はクライアントに返すための一意の RTQ request_id を割り当てます。request_id は要求のステータスをトラッキングする目的でのみ提供されます。ほかの管理目的に使用することはできません。

/Q キューに登録されたメッセージの受信側では、tpdequeue(3c) を呼び出すか、または TMQFORWARD(5) でメッセージをサービス要求に変換して、通常の方法でメッセージにアクセスします。受信するバッファ・タイプは、送信されるメッセージ型および DMCONFIG パラメータで決まります。TPQCTL 構造体のフィールドには適切な値が設定されますが、優先順位、相関識別子、応答キュー、異常終了キュー、ユーザ戻りコードなどの機能は TEDG ではサポートされていません。これらの機能に対しては値が設定されないか、またはデフォルト値が設定されます。appkey および cltid フィールドには、メッセージを送信したクライアントの BEA Tuxedo ユーザ ID (リモート・ドメインの DOMAINID) が設定されます。

TEDG と BEA TOP END クライアントの動作

BEA TOP END クライアントでは、TEDG を介してメッセージを BEA Tuxedo の /Q キューに登録するために tp_rtq_put(3T) 呼び出しを使用します。

BEA TOP END クライアントのプログラマは次の情報を把握していることが必要です。

tp_rtq_put 要求を行うには、目的の BEA Tuxedo キュー名に関連するプロダクト、関数、MSR ターゲット (オプション)、および関数修飾子 (オプション) を service パラメータに指定することが必要です。

TEDG によるクライアント RTQ 要求のマッピング

クライアント要求にはトランザクションに関与するものとしないものがあります。次の表は、BEA TOP END クライアントの RTQ フラグおよびパラメータがどのようにマッピングされるかを示しています。これらのフラグおよびパラメータのマッピングにより、通常 BEA TOP END システムで行われるタスクを TEDG で実行することができます。TP_RTQ_HELD フラグと TP_RTQ_NON_TRANSACT_SCHED フラグ、トランザクション・キー機能、およびパラメータ tag_lengthtag_textinput_formatattach_info は TEDG ではサポートされていないため、TEDG への要求では使用しないでください。

BEA TOP END クライアントの RTQ フラグおよびパラメータのマッピング

RTQ フラグまたはパラメータ

動作

TP_RTQ_NON_TRANSACT_QUEUE

TEDG 側では、CSI ライブラリによって RTQ 要求がクライアントのトランザクションから除外されるという事実が保持されます。

schedule_time

(サーバの時間帯に関して絶対、HH:MM 形式)

schedule_time パラメータの値は TPQCTL deq_time 変数の時間と分の値です。schedule_time が経過すると、要求は schedule_time + 1 日にスケジューリングされます。

TPQTIME_ABS フラグが on に設定されます。

注記 絶対時間は、/Q TMQUEUE(5) サーバではなく、TEDG 時間帯に関してマッピングされます。tpenqueue(3c) にはサーバの時間帯に関して時間を指定するオプションが用意されていないため、TEDG 時間帯を使用します。

schedule_time

(相対、R:HH:MM 形式)

TPQCTL deq_time にマッピングされます。このパラメータでは、R:HH:MM 形式の schedule_time が、キューからメッセージを取り出すまでの秒数に変換されます。TPQTIME_REL フラグが on に設定されます。

schedule_time

(クライアントの時間帯に関して、L:HH:MM 形式)

TPQCTL deq_time にマッピングされます。TPQTIME_ABS フラグが on に設定されます。

TP_RTQ_FML_BUF

tpenqueue(3c) 呼び出しで、TEDG はユーザ・データを FML バッファとして渡します。


 

エラー値

TEDG、BEA Tuxedo システム、または BEA Tuxedo TMQUEUE サーバに問題がある場合、通常の BEA TOP END エラー・ステータス・メッセージおよびその他のステータス・メッセージが BEA TOP END クライアントに返されます。1 つのエラー・ステータス・メッセージは、複数の原因のうちの 1 つにしかすぎない場合があることに注意してください。

TEDG が宣言する RTQ キューは実際の BEA Tuxedo キュー・スペースの可用性に基づくわけではないので、実際にはそのキュー・スペースが利用できない BEA Tuxedo ノードにメッセージがルーティングされることもあります。その場合、ほかのルーティング決定では要求は正常に行われても、エラー・ステータス TP_RTQ_UNAVAIL が返されます。RTQ キューを複数のノードで利用できる場合、BEA Tuxedo アプリケーション、BEA TOP END アプリケーション、および TEDG の設計ではこの種の障害が発生する可能性を考慮する必要があります。複数の再起動可能なサーバを定義したアプリケーションであれば、このようなエラーが発生する可能性は低くなります。

BEA TOP END の RTQ クライアントに返されるエラー値

BEA TOP END エラー・ステータス

原因

TP_RTQ_UNAVAILTP_RTQ_EXT_MSR_FAILURE

TEDG QSPACE エントリのルックアップに失敗しました。ターゲットは見つかりませんでした。

TP_RTQ_UNAVAILTP_RTQ_EXT_NOT_AVALIABLE

TEDG QSPACE エントリのルックアップに失敗しました。RTQ グループおよびキュー名は見つかりませんでした(RDOM クライアントがアクセスしないサービスに対するエントリは無視されました)。

TP_RTQ_UNAVAILTP_RTQ_EXT_NOT_AVAILABLE

TPENOENT が BEA Tuxedo システムによって返されました。

TP_RTQ_PARAMERR

TEDG QNAME エントリのルックアップに失敗しました。

TP_RTQ_PARAMERR

入力バッファ・タイプが、SERVICE エントリの INBUFTYPE パラメータで指定されるタイプと一致しません。

TP_RTQ_PARAMERR

サポートされていない RTQ フラグ TP_RTQ_HELD および TP_RTQ_NON_TRANSACT_SCHED が使用されました。

TP_RTQ_PARAMERR

BEA TOP END の RTQ クライアントがゼロより大きいトランザクション・キーを指定しました。これはサポートされていません。

TP_RTQ_PARAMERR

キュー・スペースのキュー名が定義されていないため、BEA Tuxedo TMQUEUE サーバは TPEDIAGNOSTICQMEBADQUEUE を返しました。キュー名およびキュー・スペースは、RTQ クライアント要求をマッピングして決定されました。

TP_RTQ_EOF

キュー上にメッセージのためのスペースがないため、BEA Tuxedo TMQUEUE サーバは TPEDIAGNOSTICQMENOSPACE を返しました。

TP_RTQ_ERROR

ほかのすべてのエラー。


 

関連項目

 

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