10.17.2 RequestInfoのメソッド
-
このメソッドは,アクティブなリクエストまたは応答シーケンスを一意に識別するIDを返します。リクエストまたは応答シーケンスが解決された場合は,IDが再使用されることもあります。
- 注
-
このIDはGIOPのrequest_idとは異なります。GIOPがトランスポート機能として使用されている場合,このIDとGIOPのrequest_idは必ずしも一致するとは限りません。また,これらが一致している必要はありません。
-
public java.lang.String operation();
このメソッドは,呼び出されているオペレーションの名前を返します。
-
public Parameter[ ] arguments();
このメソッドは,呼び出されているオペレーションのパラメタを格納する,Parameter型の配列を返します。パラメタがない場合,この属性は長さが0のシーケンスとなります。
すべての環境でこれらのパラメタにアクセスできるとは限りません。例えば,Javaのポータブルバインディングでは,これらのパラメタは使用できません。アクセスできない環境でこの属性にアクセスしようとすると,標準マイナーコード1のNO_RESOURCES例外が発生します。
-
public org.omg.CORBA.TypeCode[ ] exceptions();
このメソッドは,オペレーション呼び出しで発生するユーザ例外のTypeCodeを定義するCORBA.TypeCode型の配列を返します。ユーザ例外がない場合,この属性は長さが0のシーケンスとなります。
すべての環境で例外リストにアクセスできるとは限りません。例えば,Javaのポータブルバインディングでは,この例外リストは使用できません。アクセスできない環境でこの属性にアクセスしようとすると,標準マイナーコード1のNO_RESOURCES例外が発生します。
-
public java.lang.String[ ] contexts();
このメソッドは,オペレーション呼び出しで渡される可能性のあるコンテキストを定義するjava.lang.Stringの配列を返します。コンテキストがない場合,この属性は長さが0のシーケンスとなります。
すべての環境でコンテキストリストにアクセスできるとは限りません。例えば,Javaのポータブルバインディングでは,このコンテキストリストは使用できません。アクセスできない環境でこの属性にアクセスしようとすると,標準マイナーコード1のNO_RESOURCES例外が発生します。
-
public java.lang.String[ ] operation_context();
このメソッドは,リクエストで送信されるコンテキストを定義するjava.lang.Stringの配列を返します。すべての環境でコンテキストにアクセスできるとは限りません。例えば,Javaのポータブルバインディングでは,このコンテキストは使用できません。アクセスできない環境でこの属性にアクセスしようとすると,標準マイナーコード1のNO_RESOURCES例外が発生します。
-
public org.omg.CORBA.Any result();
このメソッドは,オペレーション呼び出しの結果をCORBA.Any形式で返します。オペレーションのリターン型がvoidの場合,この属性は,TCKind値がtk_voidまたは値なしのタイプコードを格納するCORBA.Anyとなります。
すべての環境で呼び出し結果にアクセスできるとは限りません。例えば,Javaのポータブルバインディングでは,この呼び出し結果は使用できません。アクセスできない環境でこの属性にアクセスしようとすると,標準マイナーコード1のNO_RESOURCES例外が発生します。
-
public boolean response_expected();
このメソッドは,応答が期待されているかどうかを示すブール値を返します。
クライアントでは,response_expectedがfalseの場合,応答が返らないため,receive_reply()を呼び出せません。例外が発生した場合以外は,receive_other()を呼び出します。例外が発生した場合は,receive_exception()を呼び出します。
-
このメソッドは,Messaging仕様で定義されている属性を返します。この属性は,response_expectedがfalseのときだけ有効です。response_expectedがtrueの場合,sync_scope()の値は不定です。この属性は,クライアントに制御が戻る前のリクエストの進捗状況を表します。この属性の値を次に示します。
-
Messaging.SYNC_NONE
-
Messaging.SYNC_WITH_TRANSPORT
-
Messaging.SYNC_WITH_SERVER
-
Messaging.SYNC_WITH_TARGET
サーバでは,すべてのスコープで,ターゲットオペレーション呼び出しの戻り値から応答が生成されますが,その応答はクライアントには返されません。クライアントに返されなくても応答は生成されているので,通常のサーバ側インタセプトポイント,つまり,receive_request_service_contexts(),receive_request(),send_reply(),またはsend_exception()に従います。
SYNC_WITH_SERVERとSYNC_WITH_TARGETに関しては,ターゲットオペレーションが呼び出される前に,サーバは空の応答をクライアントに返却します。サーバ側インタセプタはこの応答を受け取りません。
-
-
このメソッドは,オペレーションの呼び出し結果の状態を表す属性を返します。この属性の値を次に示します。
-
PortableInterceptor.SUCCESSFUL =0
-
PortableInterceptor.SYSTEM_EXCEPTION =1
-
PortableInterceptor.USER_EXCEPTION =2
-
PortableInterceptor.LOCATION_FORWARD =3
-
PortableInterceptor.TRANSPORT_RETRY =4
クライアント側では,この属性の値は次のようになります。
-
インタセプトポイントreceive_replyの中では,この属性の値はSUCCESSFULだけです。
-
インタセプトポイントreceive_exceptionの中では,この属性の値はSYSTEM_EXCEPTIONまたはUSER_EXCEPTIONです。
-
インタセプトポイントreceive_otherの中では,この属性の値はSUCCESSFUL,LOCATION_FORWARD,またはTRANSPORT_RETRYのどれかです。SUCCESSFULは,非同期リクエストが正常にリターンしたことを意味します。LOCATION_FORWARDは,LOCATION_FORWARD状態が応答で返却されたことを意味します。TRANSPORT_RETRYは,トランスポート機能がリトライを指示したことを意味します。例えば,NEEDS_ADDRESSING_MODE状態のGIOP応答が該当します。
サーバ側では,この属性の値は次のようになります。
-
インタセプトポイントsend_replyの中では,この属性の値はSUCCESSFULだけです。
-
インタセプトポイントsend_exceptionの中では,この属性の値はSYSTEM_EXCEPTIONまたはUSER_EXCEPTIONです。
-
インタセプトポイントsend_otherの中では,この属性の値はSUCCESSFULまたはLOCATION_FORWARDです。SUCCESSFULは,非同期リクエストが正常にリターンしたことを意味します。LOCATION_FORWARDは,LOCATION_FORWARD状態が応答で返却されたことを意味します。
-
-
public org.omg.CORBA.Object forward_reference();
reply_status()がLOCATION_FORWARDを返す場合,このメソッドは,リクエストフォワード先オブジェクトを返します。フォワードされるリクエストが実際に発生するかどうかはわかりません。
-
public org.omg.CORBA.Any get_slot(
int id)
throws
InvalidSlot;
このメソッドは,リクエストのスコープにあるCurrentの指定スロットからデータをCORBA.Any形式で返します。
指定したスロットが設定されていない場合,TCKind値がtk_nullのタイプコードを格納するCORBA.Anyが返されます。
IDが割り当てられていないスロットを表す場合は,InvalidSlot例外が発生します。
スロットとCurrentの詳細については,「10.12 IORInterceptor」を参照してください。
-
id
取得するスロットのSlotId
-
-
public org.omg.IOP.ServiceContext get_request_service_context(
int id);
このメソッドは,リクエストに対応づけられたサービスコンテキストのうち,指定したIDのサービスコンテキストのコピーを返します。
リクエストのサービスコンテキストに,指定したIDのエントリが含まれていない場合は,標準マイナーコード26のBAD_PARAM例外が発生します。
-
id
取得するサービスコンテキストのID
-
-
public org.omg.IOP.ServiceContext get_reply_service_context(
int id);
このメソッドは,応答に対応づけられたサービスコンテキストのうち,指定したIDのサービスコンテキストのコピーを返します。
応答のサービスコンテキストに,指定したIDのエントリが含まれていない場合は,標準マイナーコード26のBAD_PARAM例外が発生します。
-
id
取得するサービスコンテキストのID
-