ヘッダーをスキップ
Oracle Enterprise Service Bus 開発者ガイド
10g (10.1.3.4.0)
B50869-02
  目次
目次
索引
索引

戻る
戻る
 
次へ
次へ
 

C APIの再送信

この付録では、ESBコントロール内で実行可能なすべてのアクションをESB DTサーバー上で実行可能にするAPIの再送信について説明します。内容は次のとおりです。


注意:


インスタンス・リストの取得

このAPIでは、指定したフィルタに一致するインスタンスのリストが返されます。

アクション

GetInstances

XSD

サンプル

次のコードSnippetでは、直前の24時間以内に作成されたすべてのインスタンスが返されます。

String filter="<instanceFilter timeZone=\"GMT+05:30\">"+ "<startTime>86400000</startTime>"+"</errorIinstanceFilter>";
 HashMap<String,String> requestProps = new HashMap<String,String>();
requestProps.put("filter", URLEncoder.encode(filter,"UTF-8"));
ConsoleClient client = ConsoleClientFactory.getConsoleClient(HOST,PORT,USER_NAME,PASSWORD);
String data = client.perform("GetInstances", requestProps);
System.out.println("Instances ==> "+data);

エラーが発生したインスタンスのリストの取得

このAPIでは、指定したフィルタと一致するエラーのリストが返されます。

アクション

GetFailedInstances

XSD

サンプル

次のコードSnippetでは、直前の24時間以内に作成されたすべてのインスタンスが返されます。

String filter = "<failedInstanceFilter timeZone=\"GMT+05:30\">"+"<startTime>86400000</startTime>"+        "</failedIinstanceFilter>";
HashMap<String,String> requestProps = new HashMap<String,String>();
requestProps.put("filter", URLEncoder.encode(filter,"UTF-8"));
ConsoleClient client = ConsoleClientFactory.getConsoleClient(HOST,PORT,USER_NAME,PASSWORD);
String data = client.perform("GetFailedInstances", requestProps);
System.out.println("Failed Instances ==> "+data);

所定のフロー内で発生したすべてのエラーの取得

このAPIでは、所定のフローIDで発生したエラーがすべて返されます。エラーが再試行可能な場合は、対応するエラー要素に、再送信時に実行されるルーティング・ルールと再送信前にユーザーが変更できるペイロードのリストが含まれています。

アクション

GetErrorInstance

XSD

サンプル

次のコードSnippetでは、所定のインスタンスIDでエラーが発生したすべてのインスタンスが返されます。

HashMap<String,String> requestProps = new HashMap<String,String>();
requestProps.put("instanceID",URLEncoder.encode("102@1164094022","UTF-8"));
ConsoleClient client = ConsoleClientFactory.getConsoleClient(HOST,PORT,USER_NAME,PASSWORD);
String data = client.perform("GetErrorInstance", requestProps);
System.out.println("Error Instances ==> "+data);

インスタンス・ダイアグラムを描画するためのXMLの取得

このAPIでは、フローの詳細を含むXMLデータが返されます。このXMLを使用して、コンソールにインスタンス・ダイアグラムを描画できます。

アクション

GetTrackingDetails

XSD

サンプル

次のコードSnippetでは、所定のフローIDのインスタンス・ダイアグラムを描画する上で必要なXMLデータが返されます。

HashMap<String,String> requestProps = new HashMap<String,String>();
requestProps.put("flowId",URLEncoder.encode("102@1164094022","UTF-8"));
ConsoleClient client = ConsoleClientFactory.getConsoleClient(HOST,PORT,USER_NAME,PASSWORD);
String data = client.perform("GetTrackingDetails", requestProps);
System.out.println("Instance Diagram XML ==> "+data);

ID別インスタンス・リストの再送信

このAPIでは、複数のシステムおよびフローで失敗した複数のインスタンスが再送信されます。このアクションに対する入力はIDリストです。この場合、FlowIdSystemIdは一意のinstanceIdを形成します。インスタンス再送信プロセス時、コンソール・バックエンドでは、これらのID用の実ペイロードがインスタンス・ストアから取得されます。

アクション

ResubmitInstancesByIds

XSD

サンプル

HashMap<String,String> requestProps = new HashMap<String,String>();
String ids = "<resubmitInstanceIds>" + "<resubmitInstanceId flowId=\"102@1164094022\" systemId=\"96DD76C0971311DABF1A87858E4395A7\"/>" +
"<resubmitInstanceId flowId=\"101@1164094022\" systemId=\"96DD76C0971311DABF1A87858E4395A7\"/>" + "</resubmitInstanceIds";
requestProps.put("resubmitIds", URLEncoder.encode(ids,"UTF-8"));
ConsoleClient client = ConsoleClientFactory.getConsoleClient(HOST,PORT,USER_NAME,PASSWORD);
String data = client.perform("ResubmitInstancesByIds",requestProps);
System.out.println("Resubmit Instances By Ids Status ==> "+data);

ID別インスタンスの再送信

このAPIでは、指定されたフローの一部である所定のシステム内で失敗したシングル・インスタンスが再送信されます。このアクションに対する入力はIDです。この場合、FlowIdSystemIdは一意のinstanceIdを形成します。インスタンス再送信プロセス時、コンソール・バックエンドでは、指定のID用の実ペイロードがインスタンス・ストアから取得されます。

アクション

ResubmitInstanceById

サンプル

HashMap<String,String> requestProps = new HashMap<String,String>();
requestProps.put("flowId", flowId);
requestProps.put("systemId", systemId);
ConsoleClient client = ConsoleClientFactory.getConsoleClient(HOST,PORT,USER_NAME,PASSWORD);
client.perform("ResubmitInstanceById",requestProps);

変更済/未変更ペイロードのあるインスタンスの再送信

このAPIでは、所定のフローの一部として指定されたシステム内で失敗したシングル・インスタンスが再送信されます。このアクションに対する入力は、変更済または未変更のペイロードを含むXML文書です。

「インスタンス・リストの取得」および「エラーが発生したインスタンスのリストの取得」の項で説明したアクションを使用して、エラーの発生したペイロードのあるインスタンスのリストを取得することもできます。ループでは、ユーザーはこのアクションをコールして各エラー・インスタンスを発行する必要があります。

アクション

ResubmitInstance

XSD

サンプル

HashMap<String,String> requestProps = new HashMap<String,String>();
requestProps.put("resub", URLEncoder.encode(resubInstance,"UTF-8"));
ConsoleClient client = ConsoleClientFactory.getConsoleClient(HOST,PORT,USER_NAME,PASSWORD);
client.perform("ResubmitInstance",requestProps);

インスタンス・トラッキングの現行ステータスの取得

このAPIでは、インスタンス・トラッキングが有効な場合にtrueが返され、それ以外ではfalseが返されます。

アクション

GetTrackingConfig

XSD

サンプル

次のコードSnippetでは、インスタンス・トラッキングの現行ステータスが返されます。

ConsoleClient client = ConsoleClientFactory.getConsoleClient(HOST,PORT,USER_NAME,PASSWORD);client.perform("GetTrackingConfig",null);

インスタンス・トラッキングの有効化または無効化

このAPIでは、インスタンス・トラッキングを有効または無効にします。

アクション

UpdateTrackingConfig

XSD

サンプル

次のコードSnippetでは、インスタンス・トラッキングを無効にします。

String config = "<instanceManage enable=\"false\" />"HashMap<String,String> requestProps = new HashMap<String,String>();
requestProps.put("root", config);
ConsoleClient client = ConsoleClientFactory.getConsoleClient(HOST,PORT,USER_NAME,PASSWORD);
client.perform("UpdateTrackingConfig", requestProps);

時間に基づくインスタンスの消去

このAPIでは、次の基準に基づいてインスタンスを消去します。

アクション

UpdateTrackingConfig

XSD

サンプル

次のコードSnippetでは、経過時間が10分を超えているインスタンスがすべて削除されます。

String purge = "<purgeInstance userPurgeTimePeriod=\"600000\"/>";
HashMap<String,String> requestProps = new HashMap<String,String>();
requestProps.put("root", purge);
ConsoleClient client = ConsoleClientFactory.getConsoleClient(HOST,PORT,USER_NAME,PASSWORD);
client.perform("UpdateTrackingConfig", requestProps);

全サービス・メタデータの取得

このAPIでは、ESBコントロール・サービス・メタデータ・ビューに表示されるように、サービス・データがすべてリストされます。

アクション

ExploreServices

XSD

サンプル

次のコードでは、サービス・メタデータをすべてリストします。

ConsoleClient client = ConsoleClientFactory.getConsoleClient(HOST,PORT,USER_NAME,PASSWORD);
String data = client.perform("UpdateTrackingConfig", null);
System.out.println("Service XML ==> "+data);

<metadata>
   <system name="DefaultSystem" guid="96DD76C0971311DABF1A87858E4395A7" qname="DefaultSystem" status="ENABLED">
      <versionInfo>
         <ID>1139232135202</ID>
         <lastModifiedTime>Thu Jun 29 08:30:55 PDT 2006</lastModifiedTime>
         <lastModifiedUser>JDev</lastModifiedUser>
      </versionInfo>
      <service name="GetMovies_SOAP" guid="4ACA9F5083F911DBBFB6F366CB962EB8" qname="DefaultSystem.GetMovies_SOAP"
status="ENABLED" serviceType="ExternalService" typeDescription="External Service" isWSDLEditable="false">
         <versionInfo>
            <ID>1190913146234</ID>
            <lastModifiedTime>Thu Sep 27 10:12:26 PDT 2007</lastModifiedTime>
            <lastModifiedUser>oc4jadmin</lastModifiedUser>
         </versionInfo>
         <parent guid="96DD76C0971311DABF1A87858E4395A7" qname="DefaultSystem" type="system"/>
         <operations>
            <operationInfo guid="4ADFFC1083F911DBBFB6F366CB962EB8" qname="DefaultSystem.GetMovies_SOAP.GetTheatersAndMovies"
wsdlOperation="GetTheatersAndMovies" mepDisplayName="Request Response" mep="RequestResponse"/>
            <operationInfo guid="4ADFFC1183F911DBBFB6F366CB962EB8" qname="DefaultSystem.GetMovies_SOAP.GetUpcomingMovies"
wsdlOperation="GetUpcomingMovies" mepDisplayName="Request Response" mep="RequestResponse"/>
         </operations>
         <endpointProperties>
            <property name="RetryInterval" value="0"/>
            <property name="RetryCount" value="0"/>
         </endpointProperties>
      </service>

サービス・ステータスの更新

このAPIでは、サービス・ステータスをENABLEDまたはDISABLEDに設定します。

アクション

UpdateServiceStatus

XSD

サンプル

次のコードでは、サービス・ステータスが更新されます。

HashMap<String,String> requestProps = new HashMap<String,String>();
requestProps.put("service", guid);
requestProps.put("status", status);
ConsoleClient client = ConsoleClientFactory.getConsoleClient(HOST,PORT,USER_NAME,PASSWORD);
client.perform("UpdateServiceStatus",requestProps);