Interstage Application Server アプリケーション作成ガイド (イベントサービス編) |
目次
索引
![]() ![]() |
第4章 アプリケーションの開発(各機能) | > 4.6 グローバルトランザクションでのアプリケーション開発 |
グローバルトランザクションのトランザクションタイムアウトの監視時間は、不要となったトランザクションを回収することでシステム資源の回収を行う機能です。
グローバルトランザクションのタイムアウト時間は、データベース連携サービスのconfigファイル(TRAN_TIME_OUT)、またはset_timeoutメソッドを使用して設定します。configファイルの設定方法については、“チューニングガイド”の“データベース連携サービスの環境定義”−“configファイル”を参照してください。set_timeoutメソッドについては、“リファレンスマニュアル(API編)”の“Currentインタフェース”を参照してください。
イベントデータの受信処理もグローバルトランザクションのトランザクションタイムアウトの監視対象になります。イベントデータの受信処理は、イベントデータが存在しない場合は待ち状態になりますが、その時間もトランザクションタイムアウトの監視時間に含まれます。
したがって、ローカルトランザクションと同様、pullの待ち時間が長い場合は、トランザクションタイムアウトが発生します。
タイムアウトの発生を防止するためには、ES_ChannelUtil_pull_wait()でデータの受信を検出後、トランザクションを開始することで回避することができます。
以下にES_ChannelUtil_pull_wait()を使用した際の動作を示します。
上記のように、pull_waitを使用することでpullは待ち状態にならず、即時復帰します。したがって、ユーザは適切なトランザクションタイムアウト時間を設定することが可能になります。
なお、pull_waitメソッドを発行しても、pull_waitメソッド自身が以下のタイムアウトとなる場合があります。その場合は、pull_waitメソッドをリトライするようにしてください。
タイムアウトの種類 |
例外 |
マイナーコード |
pullのイベントデータ待ちタイムアウト |
COMM_FAILURE |
0x464a01c1 |
CORBAサービスのタイムアウト |
COMM_FAILURE |
0x464a0101 |
目次
索引
![]() ![]() |