この付録では、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);