Interstage Application Server アプリケーション作成ガイド (イベントサービス編)
目次 索引 前ページ次ページ

第4章 アプリケーションの開発(各機能)> 4.4 不揮発チャネルのアプリケーション開発

4.4.3 不揮発チャネルのアプリケーションとチャネルの動作

 以下に、MultiCastモデルを使用した場合についてのアプリケーションとチャネルの動作を示します。
 Point-To-Pointモデルを使用した場合は、2のアプリケーションの処理は必要ありません。

  1. サプライヤは、イベントデータをpushします。
  2. コンシューマは、コンシューマに接続するイベントチャネルのオブジェクトリファレンスが保存されているかを確認します。保存方法には、ファイルまたはネーミングサービスへ保存するなどの方法があります。
    [保存されている場合]
     コンシューマに接続するイベントチャネルのオブジェクトリファレンスを取り出します。もし、コンシューマに接続するイベントチャネルのオブジェクトリファレンスが不要であれば、チャネルに対してdisconnectを発行し、チャネルが保存しているオブジェクトリファレンスを削除する必要があります。
     なお、disconnectを発行することで、コンシューマが保存しているオブジェクトは無効となりますので、保存しているオブジェクトを削除するようにしてください。
    [保存されていない場合]
     obtain/connectを発行して、チャネルからコンシューマに接続するイベントチャネルのオブジェクトリファレンスを獲得します。獲得したオブジェクトリファレンスを保存します。
  3. コンシューマは、2.で獲得したオブジェクトリファレンスを使用してpullを発行します。

 上記のシーケンスの[保存されている場合]のようにコンシューマに接続するイベントチャネルのオブジェクトリファレンスを、コンシューマで不揮発な媒体に保存しておくことにより、コンシューマが未起動状態であってもイベントデータを確実に取得することが可能になります。
 イベントデータの取得時にシステム例外COMM_FAILURE、マイナーコード0x464a0109(不当なデータを受信しました。)が返った場合、システムダウンなどによりコネクションが強制切断された可能性があります。この場合、コンシューマを再起動することでイベントデータを取得することが可能となります。
 なお、チャネルが再起動中の場合、例外情報 NO_IMPLEMENT、マイナーコード0x464a0880(サーバアプリケーションが未起動です。)が返ります。この場合、しばらく待ってから、コンシューマを再起動してください。


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

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