この付録では、ESBコントロール内で実行可能なすべてのアクションをESB DTサーバー上で実行可能にするAPIの再送信について説明します。内容は次のとおりです。
|
注意:
|
このAPIでは、指定したフィルタに一致するインスタンスのリストが返されます。
アクション
GetInstances
XSD
XSD要素の入力: XMLスキーマ定義のInstance TrackingセクションにあるinstanceFilter要素を参照してください。
XSD要素の出力: XMLスキーマ定義のInstance Trackingセクションにあるinstances要素を参照してください。
サンプル
次のコード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
XSD要素の入力: XMLスキーマ定義のInstance TrackingセクションにあるfailedInstanceFilter要素を参照してください。
XSD要素の出力: XMLスキーマ定義のInstance TrackingセクションにあるfailedInstances要素を参照してください。
サンプル
次のコード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
XSD要素の出力: XMLスキーマ定義のInstance TrackingセクションにあるerrorInstances要素を参照してください。
サンプル
次のコード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);
このAPIでは、フローの詳細を含むXMLデータが返されます。このXMLを使用して、コンソールにインスタンス・ダイアグラムを描画できます。
アクション
GetTrackingDetails
XSD
XSD要素の出力: XMLスキーマ定義のInstance Trackingセクションにあるrelationship要素を参照してください。
サンプル
次のコード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);
このAPIでは、複数のシステムおよびフローで失敗した複数のインスタンスが再送信されます。このアクションに対する入力はIDリストです。この場合、FlowIdとSystemIdは一意のinstanceIdを形成します。インスタンス再送信プロセス時、コンソール・バックエンドでは、これらのID用の実ペイロードがインスタンス・ストアから取得されます。
アクション
ResubmitInstancesByIds
XSD
XSD要素の入力: XMLスキーマ定義のInstance TrackingセクションにあるresubmitInstanceIds要素を参照してください。
XSD要素の出力: XMLスキーマ定義のInstance TrackingセクションにあるresubmissionFailureReport要素を参照してください。
サンプル
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);
このAPIでは、指定されたフローの一部である所定のシステム内で失敗したシングル・インスタンスが再送信されます。このアクションに対する入力はIDです。この場合、FlowIdとSystemIdは一意の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
XSD要素の入力: XMLスキーマ定義のInstance TrackingセクションにあるmessageInstance要素を参照してください。
サンプル
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
XSD要素の出力: XMLスキーマ定義のInstance TrackingセクションにあるinstanceManage要素を参照してください。
サンプル
次のコードSnippetでは、インスタンス・トラッキングの現行ステータスが返されます。
ConsoleClient client = ConsoleClientFactory.getConsoleClient(HOST,PORT,USER_NAME,PASSWORD);client.perform("GetTrackingConfig",null);
このAPIでは、インスタンス・トラッキングを有効または無効にします。
アクション
UpdateTrackingConfig
XSD
XSD要素の入力: XMLスキーマ定義のInstance TrackingセクションにあるinstanceManage要素を参照してください。
サンプル
次のコード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
XSD要素の入力: XMLスキーマ定義のInstance TrackingセクションにあるpurgeInstance要素を参照してください。
サンプル
次のコード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
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
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);