ページの先頭行へ戻る
Interstage Application Server リファレンスマニュアル(API編)

1.18.2 ESインタフェース

1.18.2.1 ES_ChannelUtil_get_proxys()

名前

  ES_ChannelUtil_get_proxys

形式

  #include  <EventService.h>
  ES_ChannelUtil_ProxyDataSeq *
  ES_ChannelUtil_get_proxys (
                ES_ChannelUtil              obj, 
                ES_ChannelUtil_ProxyKind    kind, 
                CORBA_Environment           *env );
  typedef struct {
        CORBA_Object              proxy; 
        CORBA_long                time; 
        CORBA_long                ipaddress; 
        ES_ChannelUtil_ProxyKind  kind; 
  } ES_ChannelUtil_ProxyData;
  typedef sequence<ES_ChannelUtil_ProxyData> ES_ChannelUtil_ProxyDataSeq;

機能説明

  イベントチャネルに接続しているコンシューマ/サプライヤの接続情報を取得します。
  このメソッドはイベントチャネルに接続しているコンシューマ/サプライヤの接続情報を格納する領域を獲得するため、この領域が不要になった時点で、CORBA_free()を使用して領域を解放する必要があります。

パラメタ

  obj

  ES_ChannelUtilのオブジェクトリファレンス。

  kind

  取得するProxyオブジェクトのタイプ。
  本パラメタに指定する値に応じて、取得する接続情報が異なります。以下に本パラメタに指定する値と復帰値情報の対応を示します。

kind値と復帰値情報の対応

kindに指定可能な値

復帰値情報

ES_ChannelUtil_ALL_PROXYS

すべての接続情報を取得

ES_ChannelUtil_PROXY_CONSUMER

すべてのProxyConsumerの一覧を取得

ES_ChannelUtil_PROXY_SUPPLIER

すべてのProxySupplierの一覧を取得

ES_ChannelUtil_PROXY_PULL_CONSUMER_EVENT

CosEventChannelAdminのProxyPullConsumerの一覧を取得

ES_ChannelUtil_PROXY_PULL_SUPPLIER_EVENT

CosEventChannelAdminのProxyPullSupplierの一覧を取得

ES_ChannelUtil_PROXY_PUSH_CONSUMER_EVENT

CosEventChannelAdminのProxyPushConsumerの一覧を取得

ES_ChannelUtil_PROXY_PUSH_SUPPLIER_EVENT

CosEventChannelAdminのProxyPushSupplierの一覧を取得

ES_ChannelUtil_PROXY_PULL_CONSUMER_NOTIFY

CosNotifyChannelAdminのProxyPullConsumerの一覧を取得

ES_ChannelUtil_PROXY_PULL_SUPPLIER_NOTIFY

CosNotifyChannelAdminのProxyPullSupplierの一覧を取得

ES_ChannelUtil_PROXY_PUSH_CONSUMER_NOTIFY

CosNotifyChannelAdminのProxyPushConsumerの一覧を取得

ES_ChannelUtil_PROXY_PUSH_SUPPLIER_NOTIFY

CosNotifyChannelAdminのProxyPushSupplierの一覧を取得

ES_ChannelUtil_STRUCTURED_PROXY_PULL_CONSUMER

CosNotifyChannelAdminのStructuredProxyPullConsumerの一覧を取得

ES_ChannelUtil_STRUCTURED_PROXY_PULL_SUPPLIER

CosNotifyChannelAdminのStructuredProxyPullSupplierの一覧を取得

ES_ChannelUtil_STRUCTURED_PROXY_PUSH_CONSUMER

CosNotifyChannelAdminのStructuredProxyPushConsumerの一覧を取得

ES_ChannelUtil_STRUCTURED_PROXY_PUSH_SUPPLIER

CosNotifyChannelAdminのStructuredProxyPushSupplierの一覧を取得

  ES_ChannelUtil_ProxyData構造体の各メンバには以下の値が設定されます。

ES_ChannelUtil_ProxyData構造体のメンバと設定値

メンバ

設定値

Proxy

イベントチャネルに接続しているコンシューマ/サプライヤのオブジェクトリファレンス

time

イベントチャネルに接続された時間

ipaddress

イベントチャネルに接続しているコンシューマ/サプライヤのIPアドレス

kind

イベントチャネルに接続しているコンシューマ/サプライヤのプロキシ種別
  ES_ChannelUtil_PROXY_PULL_CONSUMER_EVENT
  ES_ChannelUtil_PROXY_PULL_SUPPLIER_EVENT
  ES_ChannelUtil_PROXY_PUSH_CONSUMER_EVENT
  ES_ChannelUtil_PROXY_PUSH_SUPPLIER_EVENT
  ES_ChannelUtil_PROXY_PULL_CONSUMER_NOTIFY
  ES_ChannelUtil_PROXY_PULL_SUPPLIER_NOTIFY
  ES_ChannelUtil_PROXY_PUSH_CONSUMER_NOTIFY
  ES_ChannelUtil_PROXY_PUSH_SUPPLIER_NOTIFY
  ES_ChannelUtil_STRUCTURED_PROXY_PULL_CONSUMER
  ES_ChannelUtil_STRUCTURED_PROXY_PULL_SUPPLIER
  ES_ChannelUtil_STRUCTURED_PROXY_PUSH_CONSUMER
  ES_ChannelUtil_STRUCTURED_PROXY_PUSH_SUPPLIER

  env

  例外情報が格納される構造体。

復帰値

  正常終了した場合は、env構造体の_majorにCORBA_NO_EXCEPTIONが設定され、イベントチャネルに接続しているコンシューマ/サプライヤの接続情報を返します。
  異常終了した場合は、env構造体の_majorにCORBA_SYSTEM_EXCEPTIONが設定され、env構造体の_idに詳細情報が設定されます。
  システム例外の場合、“メッセージ集”の“イベントサービスから通知される例外情報/マイナーコード”および“CORBAサービスから通知される例外情報/マイナーコード”を参照し、設定されたシステム例外およびマイナーコードに対する対処を行ってください。


  IPv6環境のIPアドレスで運用している場合、メンバ“ipaddress”には“0”が格納されます。
  IPv6環境で使用する場合は、ES_ChannelUtil_get_proxys6()を使用してください。

1.18.2.2 ES_ChannelUtil_get_proxys6()

名前

  ES_ChannelUtil_get_proxys6

形式

  #include  <EventService.h>
  ES_ChannelUtil_ProxyData6Seq *
  ES_ChannelUtil_get_proxys6 (
                ES_ChannelUtil              obj, 
                ES_ChannelUtil_ProxyKind    kind, 
                CORBA_Environment           *env );
  typedef struct {
        CORBA_Object              proxy; 
        CORBA_long                time; 
        CORBA_octet               ipaddress[16]; 
        CORBA_long                ip_format;
        ES_ChannelUtil_ProxyKind  kind; 
  } ES_ChannelUtil_ProxyData6;
  typedef sequence<ES_ChannelUtil_ProxyData6> ES_ChannelUtil_ProxyData6Seq;

機能説明

  イベントチャネルに接続しているコンシューマ/サプライヤの接続情報を取得します。
  ip_formatには、ipaddressがIPv6形式で格納されている場合は“1”が、IPv4形式の場合は“0”が入力されます。
  このメソッドはイベントチャネルに接続しているコンシューマ/サプライヤの接続情報を格納する領域を獲得するため、この領域が不要になった時点で、CORBA_free()を使用して領域を解放する必要があります。

パラメタ

  obj

  ES_ChannelUtilのオブジェクトリファレンス。

  kind

  取得するProxyオブジェクトのタイプ。
  本パラメタに設定する値に応じて、取得する接続情報が異なります。kindに指定した値と復帰値情報の対応については、“1.18.2.1 ES_ChannelUtil_get_proxys()”の“kind値と復帰値情報の対応”を参照してください。

  env

  例外情報が格納される構造体。

復帰値

  正常終了した場合は、env構造体の_majorにCORBA_NO_EXCEPTIONが設定され、イベントチャネルに接続しているコンシューマ/サプライヤの接続情報を返します。
  異常終了した場合は、env構造体の_majorにCORBA_SYSTEM_EXCEPTIONが設定され、env構造体の_idに詳細情報が設定されます。
  システム例外の場合、“メッセージ集”の“イベントサービスから通知される例外情報/マイナーコード”および“CORBAサービスから通知される例外情報/マイナーコード”を参照し、設定されたシステム例外およびマイナーコードに対する対処を行ってください。


  IPv6環境で運用している場合は、IPv4クライアントのメンバ“ipaddress”にはIPv4射影アドレスが格納されます。IPv6環境で運用する設定については、“チューニングガイド”の“Interstageのチューニング”-“IPv6環境での運用について”、および“CORBAサービスの動作環境ファイル”-“config”(IP-versionパラメタ)を参照してください。

1.18.2.3 ES_ChannelUtil_get_consumer_count()

名前

  ES_ChannelUtil_get_consumer_count

形式

  #include  <EventService.h>
  CORBA_unsigned_long 
  ES_ChannelUtil_get_consumer_count(
                ES_ChannelUtil       obj, 
                CORBA_Environment    *env );

機能説明

  イベントチャネルに接続しているコンシューマ数を取得します。

パラメタ

  obj

  ES_ChannelUtilのオブジェクトリファレンス。

  env

  例外情報が格納される構造体。

復帰値

  正常終了した場合は、env構造体の_majorにCORBA_NO_EXCEPTIONが設定され、イベントチャネルに接続しているコンシューマ数を返します。
  異常終了した場合は、env構造体の_majorにCORBA_SYSTEM_EXCEPTIONが設定され、env構造体の_idに詳細情報が設定されます。
  システム例外の場合、“メッセージ集”の“イベントサービスから通知される例外情報/マイナーコード”および“CORBAサービスから通知される例外情報/マイナーコード”を参照し、設定されたシステム例外およびマイナーコードに対する対処を行ってください。

1.18.2.4 ES_ChannelUtil_get_supplier_count()

名前

  ES_ChannelUtil_get_supplier_count

形式

  #include  <EventService.h>
  CORBA_unsigned_long 
  ES_ChannelUtil_get_supplier_count(
                ES_ChannelUtil       obj, 
                CORBA_Environment    *env );

機能説明

  イベントチャネルに接続しているサプライヤ数を取得します。

パラメタ

  obj

  ES_ChannelUtilのオブジェクトリファレンス。

  env

  例外情報が格納される構造体。

復帰値

  正常終了した場合は、env構造体の_majorにCORBA_NO_EXCEPTIONが設定され、イベントチャネルに接続しているサプライヤ数を返します。
  異常終了した場合は、env構造体の_majorにCORBA_SYSTEM_EXCEPTIONが設定され、env構造体の_idに詳細情報が設定されます。
  システム例外の場合、“メッセージ集”の“イベントサービスから通知される例外情報/マイナーコード”および“CORBAサービスから通知される例外情報/マイナーコード”を参照し、設定されたシステム例外およびマイナーコードに対する対処を行ってください。

1.18.2.5 ES_ChannelUtil_get_queue_length()

名前

  ES_ChannelUtil_get_queue_length

形式

  #include  <EventService.h>
  CORBA_unsigned_long 
  ES_ChannelUtil_get_queue_length(
                ES_ChannelUtil       obj, 
                CORBA_Environment    *env );

機能説明

  イベントチャネルにキューイングされているイベントデータ数を取得します。

パラメタ

  obj

  ES_ChannelUtilのオブジェクトリファレンス。

  env

  例外情報が格納される構造体。

復帰値

  正常終了した場合は、env構造体の_majorにCORBA_NO_EXCEPTIONが設定され、イベントチャネルにキューイングされているイベントデータ数を返します。
  異常終了した場合は、env構造体の_majorにCORBA_SYSTEM_EXCEPTIONが設定され、env構造体の_idに詳細情報が設定されます。
  システム例外の場合、“メッセージ集”の“イベントサービスから通知される例外情報/マイナーコード”および“CORBAサービスから通知される例外情報/マイナーコード”を参照し、設定されたシステム例外およびマイナーコードに対する対処を行ってください。

1.18.2.6 ES_ChannelUtil_local_begin()

名前

  ES_ChannelUtil_local_begin

形式

  #include  <NotificationServices.h>
  void
  ES_ChannelUtil_local_begin(
                ES_ChannelUtil  obj,
                CORBA_Object   proxy,
                CORBA_Environment  *env );

機能説明

  チャネルに対して、ローカルトランザクションの開始を通知します。
  コンシューマの場合、ES_ChannelUtil_local_commit()またはES_ChannelUtil_local_rollback()までの間には、以下のメソッドを発行することができます。

  サプライヤの場合、ES_ChannelUtil_local_commit()またはES_ChannelUtil_local_rollback()までの間には、以下のメソッドを発行することができます。

  また、本メソッド発行後、ES_ChannelUtil_local_commit()またはES_ChannelUtil_local_rollback()が発行されない場合は、ローカルトランザクションタイムアウト時間が経過した時点で、ノーティフィケーションサービスにより自動的にrollbackされます。
  なお、本メソッドは、同一proxyに対して、2重に発行できません。

パラメタ

  obj

  ES_ChannelUtilのオブジェクトリファレンス。

  proxy

  CosNotifyChannelAdmin_ConsumerAdmin_obtain_notification_pull_supplier()、またはCosNotifyChannelAdmin_SupplierAdmin_obtain_notification_push_consumer()で取得したオブジェクトリファレンス。

  env

  例外情報が格納される構造体。

復帰値

  正常終了した場合は、env構造体の_majorにCORBA_NO_EXCEPTIONが設定されます。
  異常終了した場合は、env構造体の_majorにCORBA_SYSTEM_EXCEPTIONが設定され、env構造体の_idに詳細情報が設定されます。
  システム例外の場合、“メッセージ集”の“イベントサービスから通知される例外情報/マイナーコード”および“CORBAサービスから通知される例外情報/マイナーコード”を参照し、設定されたシステム例外およびマイナーコードに対する対処を行ってください。

1.18.2.7 ES_ChannelUtil_local_commit()

名前

  ES_ChannelUtil_local_commit

形式

  #include  <NotificationServices.h>
  void
  ES_ChannelUtil_local_commit(
                ES_ChannelUtil  obj,
                CORBA_Object   proxy,
                CORBA_Environment  *env );

機能説明

  チャネルに対して、ローカルトランザクションの完了を通知します。
  コンシューマの場合、本メソッドの完了時点でイベントチャネルからメッセージの受信が完了します。
  サプライヤの場合、本メソッドの完了時点でイベントチャネルからの配信が完了します。

パラメタ

  obj

  ES_ChannelUtilのオブジェクトリファレンス。

  proxy

  CosNotifyChannelAdmin_ConsumerAdmin_obtain_notification_pull_supplier()、またはCosNotifyChannelAdmin_SupplierAdmin_obtain_notification_push_consumer()で取得したオブジェクトリファレンス。

  env

  例外情報が格納される構造体。

復帰値

  正常終了した場合は、env構造体の_majorにCORBA_NO_EXCEPTIONが設定されます。
  異常終了した場合は、env構造体の_majorにCORBA_SYSTEM_EXCEPTIONが設定され、env構造体の_idに詳細情報が設定されます。
  システム例外の場合、“メッセージ集”の“イベントサービスから通知される例外情報/マイナーコード”および“CORBAサービスから通知される例外情報/マイナーコード”を参照し、設定されたシステム例外およびマイナーコードに対する対処を行ってください。

1.18.2.8 ES_ChannelUtil_local_rollback()

名前

  ES_ChannelUtil_local_rollback

形式

  #include  <NotificationServices.h>
  void
  ES_ChannelUtil_local_rollback(
                ES_ChannelUtil  obj,
                CORBA_Object   proxy,
                CORBA_Environment  *env );

機能説明

  チャネルに対して、ローカルトランザクションのキャンセルを通知します。本メソッドを発行することにより、ノーティフィケーションサービスのイベントチャネルはES_ChannelUtil_local_begin()発行前の状態に戻ります。

パラメタ

  obj

  ES_ChannelUtilのオブジェクトリファレンス。

  proxy

  CosNotifyChannelAdmin_ConsumerAdmin_obtain_notification_pull_supplier()、またはCosNotifyChannelAdmin_SupplierAdmin_obtain_notification_push_consumer()で取得したオブジェクトリファレンス。

  env

  例外情報が格納される構造体。

復帰値

  正常終了した場合は、env構造体の_majorにCORBA_NO_EXCEPTIONが設定されます。
  異常終了した場合は、env構造体の_majorにCORBA_SYSTEM_EXCEPTIONが設定され、env構造体の_idに詳細情報が設定されます。
  システム例外の場合、“メッセージ集”の“イベントサービスから通知される例外情報/マイナーコード”および“CORBAサービスから通知される例外情報/マイナーコード”を参照し、設定されたシステム例外およびマイナーコードに対する対処を行ってください。

1.18.2.9 ES_ChannelUtil_pull_cancel()

名前

  ES_ChannelUtil_pull_cancel

形式

  #include  <NotificationServices.h>
  void
  ES_ChannelUtil_pull_cancel(
                ES_ChannelUtil  obj,
                CORBA_Object   proxy,
                CORBA_Environment  *env );

機能説明

  本メソッドは、対象proxyのpull待ち状態(pullおよびES_ChannelUtil_pull_wait()メソッド発行による待ち合わせ状態)をキャンセルします。

パラメタ

  obj

  ES_ChannelUtilのオブジェクトリファレンス。

  proxy

  CosNotifyChannelAdmin_ConsumerAdmin_obtain_notification_pull_supplier()で取得したオブジェクトリファレンス。
注)pullおよびES_ChannelUtil_pull_wait()で指定したオブジェクトリファレンスと同一のオブジェクトリファレンスを指定してください。

  env

  例外情報が格納される構造体。

復帰値

  正常終了した場合は、env構造体の_majorにCORBA_NO_EXCEPTIONが設定されます。
  異常終了した場合は、env構造体の_majorにCORBA_SYSTEM_EXCEPTIONが設定され、env構造体の_idに詳細情報が設定されます。
  システム例外の場合、“メッセージ集”の“イベントサービスから通知される例外情報/マイナーコード”および“CORBAサービスから通知される例外情報/マイナーコード”を参照し、設定されたシステム例外およびマイナーコードに対する対処を行ってください。

1.18.2.10 ES_ChannelUtil_pull_wait()

名前

  ES_ChannelUtil_pull_wait

形式

  #include  <NotificationServices.h>
  void
  ES_ChannelUtil_pull_wait(
                ES_ChannelUtil  obj,
                CORBA_Object   proxy,
                CORBA_Environment  *env );

機能説明

  本メソッドは、対象proxyがpullまたはtry_pullでデータ取得が可能な状態となるまで待ち合わせます。メソッド実行後、データ取得が可能な状態となった時点で呼び出し元に復帰します。
  対象proxyがすでにpullでデータ取得可能な状態である場合は、即時復帰します。pullと同様、待ち合わせ時間内にデータが取得可能状態にならない場合は、タイムアウトで復帰します。

パラメタ

  obj

  ES_ChannelUtilのオブジェクトリファレンス。

  proxy

  CosNotifyChannelAdmin_ConsumerAdmin_obtain_notification_pull_supplier()で取得したオブジェクトリファレンス。

  env

  例外情報が格納される構造体。

復帰値

  正常終了した場合は、env構造体の_majorにCORBA_NO_EXCEPTIONが設定されます。
  異常終了した場合は、env構造体の_majorにCORBA_SYSTEM_EXCEPTIONまたはCORBA_USER_EXCEPTIONが設定され、env構造体の_idに詳細情報が設定されます。

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

  ex_CosEventComm_Disconnected

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

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