| Oracle® Fusion Middleware Oracle Business Process Managementモデリングおよび実装ガイド 11g リリース1 (11.1.1.7) B61409-07 |
|
![]() 前 |
![]() 次 |
Oracle SOA Suiteには、フォルトを処理するために一般的なフォルト管理フレームワークが用意されています。実行時にフォルトが発生すると、そのフォルトはフレームワークによって捕捉され、フォルト・ポリシー・ファイルに定義されているユーザー指定のアクションが実行されます。管理者操作が規定のアクションである状況でフォルトが発生した場合は、Oracle Enterprise Manager Fusion Middleware Controlからリカバリ・アクションを実行します。また、Oracle BPM Suiteに用意されているフォルト管理フレームワークを使用することもできます。
フォルト管理フレームワークの詳細は、『Oracle Fusion Middleware Oracle SOA Suite開発者ガイド』のフォルト管理フレームワークによるフォルト処理に関する項を参照してください。
Oracle BPM Suiteのフォルト・ポリシーを設計して実行することができます。フォルト・ポリシー・ファイルには、フォルト条件および対応するフォルト・リカバリ・アクションを定義します。フォルト・ポリシー・バインディング・ファイルによって、フォルト・ポリシー・ファイルに定義されているポリシーが次のいずれかに関連付けられます。
BPMNプロセスを含むコンポジット
Oracle BPMNプロセス・サービス・コンポーネント
参照バインディング・コンポーネント(別のBPMNプロセスやJCAアダプタなど)
Oracle BPM Suiteのフォルト・ポリシー・ファイルでサポートされているフォルト・リカバリ・アクションは、次のとおりです。
再試行
管理者操作
終了
Javaコード
|
注意: Oracle BPM Suiteでは、リプレイ・スコープおよび再スロー・リカバリ・アクションは現在サポートされていません。サポートされているフォルト・リカバリ・アクションの、再試行、管理者操作、終了およびJavaコードの詳細は、『Oracle Fusion Middleware Oracle SOA Suite開発者ガイド』の自動フォルト・リカバリのフォルト・ポリシー・ファイルの作成に関する項を参照してください。 |
図19-1は、ProcessおよびFaultThrowerという名前のBPMNプロセス・サービス・コンポーネントが含まれたコンポジットを示しています。
図19-1 ProcessおよびFaultThrower BPMNプロセス・サービス・コンポーネントを含むコンポジット

例19-1に、フォルト条件と、それに対応するfault-policies.xmlファイルに定義されているフォルト・リカバリ・アクションを示します。条件は、実行時にフォルトを捕捉して、フォルトからリカバリするためのアクションに転送します。
例19-1 フォルト・ポリシー・ファイル
<?xml version="1.0" encoding="UTF-8"?>
<faultPolicies xmlns="http://schemas.oracle.com/bpel/faultpolicy"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<faultPolicy version="0.0.1" id="ravi_faultPolicy"
xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns="http://schemas.oracle.com/bpel/faultpolicy"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Conditions>
<!-- catches all -->
<faultName>
<condition>
<action ref="Action-Retry"/>
</condition>
</faultName>
</Conditions>
<Actions>
<Action id="Action-Abort">
<abort/>
</Action>
<Action id="Action-Retry">
<retry>
<retryCount>3</retryCount>
<retryInterval>10</retryInterval>
<exponentialBackoff/>
<retryFailureAction ref="Action-human-intervention"/>
</retry>
</Action>
<Action id="Action-human-intervention">
<humanIntervention/>
</Action>
</Actions>
</faultPolicy>
</faultPolicies>
例19-2に、fault-policies.xmlファイルに定義されているフォルト・リカバリ・ポリシーをコンポジット全体に関連付けるフォルト・ポリシー・バインディング・ファイルを示します。
BPMNThatFailsという名前のBPMNサービス・コンポーネントが参照バインディング・コンポーネント(ファイル・アダプタなど)を呼び出すコンポジットを示します。
例19-3に、フォルト条件と、それに対応するfault-policies.xmlファイルに定義されているフォルト・リカバリ・アクションを示します。条件は、実行時にフォルトを捕捉して、フォルトからリカバリするためのアクションに転送します。
例19-3 フォルト・ポリシー・ファイル
<?xml version="1.0" encoding="UTF-8"?>
<faultPolicies xmlns="http://schemas.oracle.com/bpel/faultpolicy"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<faultPolicy version="0.0.1" id="FailsTrulyPolicy"
xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns="http://schemas.oracle.com/bpel/faultpolicy"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Conditions>
<!-- catches all -->
<faultName>
<condition>
<action ref="Action-human-intervention"/>
</condition>
</faultName>
</Conditions>
<Actions>
<Action id="Action-Abort">
<abort/>
</Action>
<Action id="Action-Retry">
<retry>
<retryCount>3</retryCount>
<retryInterval>2</retryInterval>
<exponentialBackoff/>
</retry>
</Action>
<Action id="Action-human-intervention">
<humanIntervention/>
</Action>
</Actions>
</faultPolicy>
</faultPolicies>
例19-4に、fault-policies.xmlファイルに定義されているフォルト・リカバリ・ポリシーをBPMNThatFails BPMNサービス・コンポーネントに関連付けるフォルト・ポリシー・バインディング・ファイルを示します。
例19-4 フォルト・ポリシー・バインディング・ファイル
<?xml version="1.0" encoding="UTF-8" ?>
<faultPolicyBindings version="0.0.1"
xmlns="http://schemas.oracle.com/bpel/faultpolicy"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<component faultPolicy="FailsTrulyPolicy">
<name>BPMNThatFails</name>
</component>
</faultPolicyBindings>
図19-3は、Callerという名前のBPMNプロセスがProcessService1という名前の別のBPMNプロセスを参照として呼び出すコンポジットを示しています。
例19-5に、フォルト条件と、それに対応するfault-policies.xmlファイルに定義されているフォルト・リカバリ・アクションを示します。条件は、すべてのフォルトを捕捉して、フォルトからリカバリするために管理者操作を必要とするアクションに転送します。
例19-5 フォルト・ポリシー・ファイル
<?xml version="1.0" encoding="UTF-8"?>
<faultPolicies xmlns="http://schemas.oracle.com/bpel/faultpolicy"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<faultPolicy version="0.0.1" id="Policy0"
xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns="http://schemas.oracle.com/bpel/faultpolicy"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Conditions>
<!-- catches all -->
<faultName>
<condition>
<action ref="Action-human-intervention"/>
</condition>
</faultName>
</Conditions>
<Actions>
<Action id="Action-human-intervention">
<humanIntervention/>
</Action>
</Actions>
</faultPolicy>
</faultPolicies>
例19-6に、fault-policies.xmlに定義されているフォルト・ポリシーを参照に関連付けるfault-bindings.xmlファイルを示します。
例19-6 フォルト・ポリシー・バインディング・ファイル
<faultPolicyBindings version="0.0.1"
xmlns="http://schemas.oracle.com/bpel/faultpolicy"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<!-- reference ProcessService1 calls BPMN component Process -->
<reference faultPolicy="Policy0">
<name>Services.Externals.ProcessService1.reference</name>
</reference>
</faultPolicyBindings>
サービス参照を使用してプロセスを呼び出すときに、使用される参照はBPMNプロセス参照ではなく、BPMNプロセス(図19-3のProcessService1)を呼び出すために作成された、Services.Externals.ProcessService1.referenceという名前の参照です。参照名は次のように作成されます。
ProcessService1の参照名の先頭にServices.Externals.が付きます。
ProcessService1の参照名の末尾に.referenceが付きます。
fault-bindings.xmlファイルに指定する参照名は、次のいずれかのファイルから取得できます。
例19-7に示すように、process_name.componentTypeファイルのreferenceセクションから
例19-8に示すように、composite.xmlファイルのwireセクションから
この参照は、BPMNプロセスを呼び出しますが、FTPサーバー、EJBコンポーネント、およびその他を呼び出すこともできます。
図19-4は、Callerという名前のBPMNプロセスがFolderListingという名前のファイル・アダプタを参照として呼び出すコンポジットを示しています。
例19-9に、フォルト条件と、それに対応するfault-policies.xmlファイルに定義されているフォルト・リカバリ・アクションを示します。条件は、すべてのフォルトを捕捉して、フォルトからリカバリするために管理者操作を必要とするアクションに転送します。
例19-9 フォルト・ポリシー・ファイル
<?xml version="1.0" encoding="UTF-8"?>
<faultPolicies xmlns="http://schemas.oracle.com/bpel/faultpolicy"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<faultPolicy version="0.0.1" id="Policy0"
xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns="http://schemas.oracle.com/bpel/faultpolicy"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Conditions>
<!-- catches all -->
<faultName>
<condition>
<action ref="Action-human-intervention"/>
</condition>
</faultName>
</Conditions>
<Actions>
<Action id="Action-human-intervention">
<humanIntervention/>
</Action>
</Actions>
</faultPolicy>
</faultPolicies>
例19-10に、fault-policies.xmlに定義されているフォルト・ポリシーを参照に関連付けるfault-bindings.xmlファイルを示します。
例19-10 フォルト・ポリシー・バインディング・ファイル
<faultPolicyBindings version="0.0.1"
xmlns="http://schemas.oracle.com/bpel/faultpolicy"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<!-- reference FolderListing is a reference to a file adapter -->
<reference faultPolicy="Policy0">
<name>Services.Externals.FolderListing.reference</name>
</reference>
</faultPolicyBindings>
外部サービスの場合、フォルト・ポリシー・バインディング・ファイルで使用される参照名は、Oracle SOA SuiteとOracle BPM Suiteでは異なります。表19-1に詳細を示します。
表19-1 .componentTypeファイルとフォルト・ポリシー・バインディング・ファイルでの参照のネーミング規則
| 参照のネーミング規則 | .componentTypeファイル内のエントリ | フォルト・ポリシー・バインディング・ファイル内のエントリ |
|---|---|---|
|
Oracle BPM Suiteの場合、ネーミング規則は次のようになります。
|
<reference name= "Services.Externals.Synch_read. reference" ui:wsdlLocation="synch_read.wsdl"> <interface.wsdl interface= "http://xmlns.oracle.com/pcbpel/ adapter/file/UpdateTaskApps/ FaultPolicyApp/synch_read# wsdl.interface(SynchRead_ptt)"/> </reference> |
Oracle BPM Suiteの場合、次のように <reference faultPolicy="Policy0"> <name>Services.Externals.Synch_ read.reference</name> |
|
Oracle SOA Suiteの場合、参照名の先頭にも末尾にも名前は追加されません。 |
<reference name="Synch_read"
ui:wsdlLocation="synch_read.wsdl">
<interface.wsdl interface=
"http://xmlns.oracle.com/pcbpel/
adapter/file/UpdateTaskApps/
FaultPolicyApp/synch_read#
wsdl.interface(SynchRead_ptt)"/>
</reference>
|
Oracle SOA Suiteの場合、次のように
<reference faultPolicy="Policy0">
<name>Synch_read</name>
|
|
注意: Oracle BPM SuiteとOracle SOA Suiteの両方からフォルトを捕捉する単一のフォルト・ポリシー・バインディング・ファイルを定義することもできます。 |