bea ホーム | 製品 | dev2dev | support | askBEA
BEA Logo Tuxedo
 ドキュメントのダウンロード   サイトマップ   用語集 
検索
0

Tuxedo COBOL リファレンス

 Previous Next Contents View as PDF  

TPUNSUBSCRIBE(3cbl)

名前

TPUNSUBSCRIBE()−イベントのサブスクリプションの削除

形式

01 TPEVTDEF-REC.
COPY TPEVTDEF.
01
TPSTATUS-REC.
COPY TPSTATUS.
CALL "TPUNSUBSCRIBE" USING
TPEVTDEF-REC TPSTATUS-REC.

機能説明

呼び出し元は TPUNSUBSCRIBE() を使用して、BEA Tuxedo のイベント・ブローカのアクティブなサブスクリプションのリストから、イベントのサブスクリプションまたはイベント・サブスクリプションのセットを削除します。TPEVTDEF-RECSUBSCRIPTION-HANDLE は、TPSUBSCRIBE() から返されたイベントのサブスクリプション・ハンドルです。SUBSCRIPTION-HANDLE をワイルドカード値 -1 に設定すると、呼び出し元プロセスが以前に行った非永続的サブスクリプションをすべて削除するよう TPUNSUBSCRIBE() に指示されます。非持続タイプのサブスクリプションとは、TPSUBSCRIBE() を呼び出す際に TPEVNOPERSIST をセットした状態で行ったサブスクリプションを指します。持続タイプのサブスクリプションは、TPSUBSCRIBE() から返されたハンドルを使用することによってのみ削除できます。

"-1" ハンドルでは、呼び出し元の直前のインスタンスによってなされたサブスクリプションではなく、この機能を呼び出しているプロセスによってなされたサブスクリプションだけが削除される点に注意する必要があります (たとえば、いったんダウンして再起動したサーバは、最初のサーバによってなされたサブスクリプションをワイルドカードを利用して削除することはできません)。

次に、TPEVTDEF-REC の有効な設定の一覧を示します。

TPNOBLOCK

ブロッキング条件が存在する場合は、サブスクリプションは削除されません。このような条件が発生すると、呼び出しは失敗し、TP-STATUS は [TPEBLOCK] に設定されます。TPNOBLOCK または TPBLOCK のいずれかが設定されていなければなりません。

TPBLOCK

TPBLOCK がセットされ、ブロッキング条件が存在する場合は、呼び出し元はブロッキング条件が消失するか、またはタイムアウト (トランザクション・タイムアウト、またはブロッキング・タイムアウト) が発生するまでブロックします。TPNOBLOCK または TPBLOCK のいずれかが設定されていなければなりません。

TPNOTIME

この設定は、呼び出し元が無制限にブロックでき、ブロッキング・タイムアウトの影響を受けないようにすることを指定します。ただし、トランザクション・タイムアウトは発生する可能性があります。TPNOTIME または TPTIME のいずれかが設定されていなければなりません。

TPTIME

このフラグは、ブロッキング条件が存在し、ブロッキング時間に達すると、呼び出し元がブロッキング・タイムアウトを受け取ることを示します。TPNOTIME または TPTIME のいずれかが設定されていなければなりません。

TPSIGRSTRT

ルーチン内部のシステム・コールがシグナルによって中断された場合、中断されたシステム・コールは再発行されます。TPNOSIGRSTRT または TPSIGRSTRT のいずれかが設定されていなければなりません。

TPNOSIGRSTRT

ルーチン内部のシステム・コールがシグナルによって中断された場合、そのシステム・コールは再度実行されることはなく、呼び出しは異常終了し、TP-STATUSは [TPGOTSIG] にセットされます。TPNOSIGRSTRT または TPSIGRSTRT のいずれかが設定されていなければなりません。

戻り値

TPUNSUBSCRIBE() は正常終了時には、TP-STATUSに [TPOK] を設定します。また、TPUNSUBSCRIBE() は、TPEVTDEF-RECEVENT-COUNT に、イベント・ブローカのアクティブなサブスクリプションのリストから削除したサブスクリプションの数 (値は 0 以上) を設定します。EVENT-COUNT に 1 より大きい値がセットされるのは、ワイルドカードの "-1" というハンドルを使用した場合に限られます。また、 EVENT-COUNT には、TPUNSUBSCRIBE() が異常終了した場合でも 0 より大きい値が設定されることがあります。つまり、ワイルドカード・ハンドルを使用した場合、イベント・ブローカがいくつかのサブスクリプションを正しく削除した後でエラーが発生した可能性があります。

エラー

次の条件が発生すると、TPUNSUBSCRIBE() は異常終了し、TP-STATUS に次のいずれかの値を設定します (特に記述した場合を除いては、エラーが呼び出し元のトランザクションに影響を及ぼすことはありません)。

[TPEINVAL]

無効な引数が渡されました (SUBSCRIPTION-HANDLE が無効なサブスクリプション・ハンドルである場合など)。

[TPENOENT]

BEA Tuxedo イベント・ブローカにアクセスできません。

[TPETIME]

このエラー・コードは、タイムアウトが発生したか、または現在のトランザクションがすでに「ロールバックのみ」とマークされているにもかかわらず TPUNSUBSCRIBE() が試行されたことを示します。

呼び出し元がトランザクション・モードにある場合、トランザクションはすでに「ロールバックのみ」になっているか、またはタイムアウトが発生しています (中途終了マークが付けられる)。呼び出し元がトランザクション・モードにない場合、ブロッキング・タイムアウトが発生しています。ブロッキング・タイムアウトは、TPBLOCKTPTIME の両方が指定された場合にのみ発生します。

トランザクション・タイムアウトが発生すると、1 つの例外を除き、トランザクションがアボートされない限り、新しいリクエストを送信したり、未処理の応答を受信しようとしても、TPETIME で異常終了します。例外は、ブロックされず、応答を期待せず、かつ呼び出し元のトランザクションのために送信されない要求 (つまり、TPNOTRANTPNOBLOCK および TPNOREPLY が設定された状態で TPACALL() が呼び出される場合) です。

トランザクション ATMI 呼び出しがトランザクション内部で失敗すると、そのトランザクションは TX_ROLLBACK_ONLY 状態になります。ほとんどの場合、この状態はタイムアウトと同じものとして扱われます。このトランザクションの以降の ATMI 呼び出しは、TPETIME で異常終了します (前の段落で説明した例外を除く)。

[TPEBLOCK]

ブロッキング状態のため、TPNOBLOCK が指定されました。

[TPGOTSIG]

シグナルが受信され、TPNOSIGRSTRT がセットされていました。

[TPEPROTO]

TPUNSUBSCRIBE() の呼び出し方法が不適切です。

[TPESYSTEM]

BEA Tuxedo システムのエラーが発生しました。エラーの正確な内容がログ・ファイルに書き込まれます。

[TPEOS]

オペレーティング・システムのエラーが発生しました。

関連項目

TPPOST(3cbl)TPSUBSCRIBE(3cbl)EVENTS(5)EVENT_MIB(5) に関する追加情報TMSYSEVT(5)TMUSREVT(5)

 

Back to Top Previous Next
Contact e-docsContact BEAwebmasterprivacy