ヘッダーをスキップ
Oracle® Fusion Middleware Oracle Business Process Managementモデリングおよび実装ガイド
11g リリース1 (11.1.1.7)
B61409-07
  目次へ移動
目次

前
 
次
 

19 BPMでのフォルト処理の使用

19.1 フォルト管理フレームワークによるフォルト処理

Oracle SOA Suiteには、フォルトを処理するために一般的なフォルト管理フレームワークが用意されています。実行時にフォルトが発生すると、そのフォルトはフレームワークによって捕捉され、フォルト・ポリシー・ファイルに定義されているユーザー指定のアクションが実行されます。管理者操作が規定のアクションである状況でフォルトが発生した場合は、Oracle Enterprise Manager Fusion Middleware Controlからリカバリ・アクションを実行します。また、Oracle BPM Suiteに用意されているフォルト管理フレームワークを使用することもできます。

フォルト管理フレームワークの詳細は、『Oracle Fusion Middleware Oracle SOA Suite開発者ガイド』のフォルト管理フレームワークによるフォルト処理に関する項を参照してください。

19.1.1 Oracle BPM 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.1.1 コンポジット・レベルのフォルト・ポリシーの設計

図19-1は、ProcessおよびFaultThrowerという名前のBPMNプロセス・サービス・コンポーネントが含まれたコンポジットを示しています。

図19-1 ProcessおよびFaultThrower BPMNプロセス・サービス・コンポーネントを含むコンポジット

図19-1の説明は次にあります。
「図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ファイルに定義されているフォルト・リカバリ・ポリシーをコンポジット全体に関連付けるフォルト・ポリシー・バインディング・ファイルを示します。

例19-2 フォルト・ポリシー・バインディング・ファイル

<?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">
    <composite faultPolicy="ravi_faultPolicy"/>
</faultPolicyBindings>

19.1.1.2 サービス・コンポーネント・レベルのフォルト・ポリシーの設計

BPMNThatFailsという名前のBPMNサービス・コンポーネントが参照バインディング・コンポーネント(ファイル・アダプタなど)を呼び出すコンポジットを示します。

図19-2 BPMNプロセス・サービス・コンポーネントを含むコンポジット

図19-2の説明は次にあります。
「図19-2 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.1.1.3 参照レベルのフォルト・ポリシー(BPMプロセスを呼び出す)の設計

図19-3は、Callerという名前のBPMNプロセスがProcessService1という名前の別のBPMNプロセスを参照として呼び出すコンポジットを示しています。

図19-3 Caller BPMプロセスを含むコンポジット

図19-3の説明は次にあります。
「図19-3 Caller BPMプロセスを含むコンポジット」の説明

例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-3ProcessService1)を呼び出すために作成された、Services.Externals.ProcessService1.referenceという名前の参照です。参照名は次のように作成されます。

  • ProcessService1の参照名の先頭にServices.Externals.が付きます。

  • ProcessService1の参照名の末尾に.referenceが付きます。

fault-bindings.xmlファイルに指定する参照名は、次のいずれかのファイルから取得できます。

  • 例19-7に示すように、process_name.componentTypeファイルのreferenceセクションから

    例19-7 componentTypeファイル内の参照名

    <componentType
    . . .
    . . .
      <reference name="Services.Externals.ProcessService1.reference"
      . . .
      . . .
      </reference>
    </componentType>
    
  • 例19-8に示すように、composite.xmlファイルのwireセクションから

    例19-8 composite.xmlファイル内の参照名

    <wire>
    <source.uri>Caller/Services.Externals.ProcessService1.reference
     </source.uri>
    . . .
    </wire>
    

この参照は、BPMNプロセスを呼び出しますが、FTPサーバー、EJBコンポーネント、およびその他を呼び出すこともできます。

19.1.1.4 参照レベルのフォルト・ポリシー(ファイル・アダプタを呼び出す)の設計

図19-4は、Callerという名前のBPMNプロセスがFolderListingという名前のファイル・アダプタを参照として呼び出すコンポジットを示しています。

図19-4 Caller BPMプロセスを含むコンポジット

図19-4の説明は次にあります。
「図19-4 Caller BPMプロセスを含むコンポジット」の説明

例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>

19.1.1.5 Oracle SOA SuiteとOracle BPM Suiteの参照ネーミング規則の違いに関する注意事項

外部サービスの場合、フォルト・ポリシー・バインディング・ファイルで使用される参照名は、Oracle SOA SuiteとOracle BPM Suiteでは異なります。表19-1に詳細を示します。

表19-1 .componentTypeファイルとフォルト・ポリシー・バインディング・ファイルでの参照のネーミング規則

参照のネーミング規則 .componentTypeファイル内のエントリ フォルト・ポリシー・バインディング・ファイル内のエントリ

Oracle BPM Suiteの場合、ネーミング規則は次のようになります。

  • 参照名の先頭にServices.Externals.が付きます。

  • 参照名の末尾に.referenceが付きます。

Synch_readという名前の参照に対する、BPMN_process_name.componentTypeファイルでのネーミング規則は、次のとおりです。

<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の場合、次のようにServices.Externals.Synch_read.referenceを指定します。

<reference faultPolicy="Policy0">
<name>Services.Externals.Synch_
read.reference</name>

詳細は、例19-6および例19-10を参照してください。

Oracle SOA Suiteの場合、参照名の先頭にも末尾にも名前は追加されません。

Synch_readという名前の参照に対する、BPEL_process_name.componentTypeファイルでのネーミング規則は、次のとおりです。

<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の場合、次のようにSynch_readを指定します。

<reference faultPolicy="Policy0">
    <name>Synch_read</name>


注意:

Oracle BPM SuiteとOracle SOA Suiteの両方からフォルトを捕捉する単一のフォルト・ポリシー・バインディング・ファイルを定義することもできます。