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

第2章 C++言語インタフェース> 2.22 ノーティフィケーションサービスインタフェース> 2.22.3 CosNotifyCommモジュール

2.22.3.3 CosNotifyComm::StructuredPullSupplier::try_pull_structured_event()

名前

  CosNotifyComm::StructuredPullSupplier::try_pull_structured_event

形式

 #include  <NotificationService_cplus.h>
 CosNotification::StructuredEvent *
 CosNotifyComm::StructuredPullSupplier::try_pull_structured_event (
              CORBA::Boolean&                   has_event,
              CORBA::Environment&               env );
              throw( CORBA::Exception );

機能説明

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

復帰値

 正常終了した場合は、envのexceptionメンバにNULLオブジェクトリファレンスが設定されます。イベントデータを取り出せた場合は、has_eventにCORBA_TRUEが設定され、サプライヤからのイベントデータが復帰します。イベントデータが取り出せなかった場合には、has_eventにCORBA_FALSEが設定されます。この場合も空のStructuredEvent型のイベントデータの領域が獲得されるので、取り出したStructuredEvent型のイベントデータの領域は、deleteを使用して領域を解放する必要があります。
 異常終了した場合は、envのexceptionメンバにSystemExceptionオブジェクト、またはUserExceptionオブジェクトのオブジェクトリファレンスが設定されます。

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

 CosEventComm::Disconnected
 イベントチャネルに接続されていません。

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

注意事項

 ローカルトランザクション運用中に、has_eventにCORBA_FALSEが設定された場合は、ES::ChannelUtil::local_rollback()によりキャンセルを通知する必要はありません。ES::ChannelUtil::local_commit()により完了を通知してください。
 グルーバルトランザクション運用中に、has_eventにCORBA_FALSEが設定された場合は、CosTransactions::Current::rollback()によりキャンセルを通知する必要はありません。CosTransactions::Current::commit()により完了を通知してください。


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

Copyright 2005 FUJITSU LIMITED