Interstage Application Server リファレンスマニュアル(API編)
目次 索引 前ページ次ページ

第4章 COBOLインタフェース> 4.19 イベントサービスインタフェース> 4.19.1 COSEVENTCOMMインタフェース

4.19.1.5 COSEVENTCOMM-PULLSUPPLIER-TRY-PULL

名前

 COSEVENTCOMM-PULLSUPPLIER-TRY-PULL

形式

  ENVIRONMENT DIVISION.
  CONFIGURATION SECTION.
  SPECIAL-NAMES.
  SYMBOLIC CONSTANT
  COPY SYMBOL-CONST IN CORBA.
  .
  
  DATA DIVISION.
  WORKING-STORAGE SECTION.
  COPY CONST IN COSEVENTCOMM.
  01 COPY PROXYPULLSUPPLIER IN COSEVENTCOMM REPLACING COSEVENTCHANNELADMIN-PROXYP002 BY OBJ.
  COPY CONST IN CORBA.
  01 COPY BOOLEAN IN CORBA REPLACING CORBA-BOOLEAN BY HASEVENT.
  01 COPY ENVIRONMENT IN CORBA REPLACING CORBA-ENVIRONMENT BY ENV.
  01 EVDATA USAGE IS POINTER.
  
  PROCEDURE DIVISION.
  CALL "COSEVENTCOMM-PULLSUPPLIER-TRY-PULL" USING
                OBJ
                HASEVENT
                ENV
                EVDATA.

機能説明

 サプライヤにイベントデータを要求します。サプライヤからイベントデータが取り出せない場合は即座に復帰します。なお、イベントデータが取り出せるまでブロックしたい場合には、COSEVENTCOMM-PULLSUPPLIER-PULLを使用してください。
 取り出したANY型のイベントデータは、この領域が不要になった時点で、CORBA-FREE関数を使用して領域を解放する必要があります。

パラメタ

 OBJ
 COSEVENTCHANNELADMIN-CONSUMERADMIN-OBTAIN-PULL-SUPPLIERが返すオブジェクトリファレンス。
 HASEVENT(OUTパラメタ)
 イベントデータを取り出せた場合は、CORBA-TRUEが設定されます。
 イベントデータを取り出せなかった場合は、CORBA-FALSEが設定されます。
 ENV
 例外情報が格納される構造体。
 EVDATA
 サプライヤに要求したイベントデータが設定されます。

復帰値

 正常終了した場合は、ENV構造体のMAJORにCORBA-NO-EXCEPTIONが設定されます。イベントデータを取り出せた場合は、HASEVENTにCORBA-TRUEが設定されます。イベントデータが取り出せなかった場合には、HASEVENTにCORBA-FALSEが設定されます。この場合も空のANY型のイベントデータの領域が獲得されるので、取り出したANY型のイベントデータの領域は、CORBA-FREE関数を使用して領域を解放する必要があります。異常終了した場合は、ENV構造体のMAJORにCORBA-SYSTEM-EXCEPTIONまたはCORBA-USER-EXCEPTIONが設定され、ENV構造体のIDに詳細情報が設定されます。

 ユーザ例外の場合は、以下の詳細情報が設定されます。

 EX-COSEVENTCOMM-DISCONNECTED
 イベントチャネルに接続されていません。
 イベントチャネル生成時にコネクション情報を自動回収する処理を有効とした場合(esmkchnlコマンド実行時に-autodisconオプションを指定した場合)は、CORBAサービスのクライアント側無通信監視時間超過によりコネクションが切断された可能性があります。継続して通信する場合は、イベントチャネルへの接続から行ってください。

 システム例外の場合は、“メッセージ集”の“イベントサービスから通知される例外情報/マイナーコード”および“CORBAサービスから通知される例外情報/マイナーコード”を参照し、設定されたシステム例外およびマイナーコードに対する対処を行ってください。

注意事項

 ローカルトランザクション運用中に、HASEVENTにCORBA-FALSEが設定された場合は、ES-CHANNELUTIL-LOCAL-ROLLBACK関数によりキャンセルを通知する必要はありません。ES-CHANNELUTIL-LOCAL-COMMIT関数により完了を通知してください。

 グローバルトランザクション運用中に、HASEVENTにCORBA-FALSEが設定された場合は、COSTRANSACTIONS-CURRENT-ROLLBACK関数によりキャンセルを通知する必要はありません。COSTRANSACTIONS-CURRENT-COMMIT関数により完了を通知してください。


目次 索引 前ページ次ページ

All Rights Reserved, Copyright(C) 富士通株式会社 2007