52
Oracle ® SOA Suite 新機能 10g10.1.3.3E10381-02 2007 9 本ドキュメントでは、Oracle SOA Suite 10.1.3.3 のパッチ・セットで使用できる新機能につ いて説明します。 このドキュメントには、以下のトピックが含まれます。 カスタムWorklistアプリケーションのデプロイおよびSSOの有効化 ワークフロー標準ビュー定義の変更 Oracle Workflowの新しいデータベース・ビュー ファイル/FTPアダプタの新機能 MQSeriesアダプタの新機能 データベース・アダプタの新機能 AQアダプタの新機能 JMSアダプタの新機能 インバウンド・アダプタ・エンドポイントのOracle ESBSingleton動作 Ilog JRulesの意思決定サービス・サポート 障害管理フレームワーク 参照: このパッチ・セットに含まれる他のドキュメントは、以下のとおりで す。 Oracle Application Server Patch Set Notes Addendum』(パッチ・セットの 既知の問題の詳細) Oracle Application Server Patch Set Notes』(パッチ・セットの適用の詳 細) Oracle Application Server Fixed Bugs List』(パッチ・セットで修正された バグの詳細) カスタム Worklist アプリケーションのデプロイおよび SSO の有効化 10.1.3.1 におけるカスタム Oracle BPEL Worklist アプリケーション(Worklist アプリケー ション)のデプロイと Worklist アプリケーションのシングル・サインオン(SSO)の有効 化には、多くの回避策が必要でした。10.1.3.3 で導入されたバグの修正によって、このプ ロセスが大幅に簡素化されます。この項では、カスタム Worklist アプリケーションのデプ ロイと事前にインストールされた Worklist アプリケーションでの SSO の有効化のための変 更プロセスについて説明します。 1

Oracle® SOA Suite...Oracle® SOA Suite 新機能 10g(10.1.3.3) E10381-02 2007 年9 月 本ドキュメントでは、Oracle SOA Suite 10.1.3.3のパッチ・セットで使用できる新機能につ

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Oracle® SOA Suite...Oracle® SOA Suite 新機能 10g(10.1.3.3) E10381-02 2007 年9 月 本ドキュメントでは、Oracle SOA Suite 10.1.3.3のパッチ・セットで使用できる新機能につ

Oracle® SOA Suite 新機能

10g(10.1.3.3)

E10381-02

2007 年 9 月

本ドキュメントでは、Oracle SOA Suite 10.1.3.3 のパッチ・セットで使用できる新機能につ

いて説明します。

このドキュメントには、以下のトピックが含まれます。

カスタムWorklistアプリケーションのデプロイおよびSSOの有効化

ワークフロー標準ビュー定義の変更

Oracle Workflowの新しいデータベース・ビュー

ファイル/FTPアダプタの新機能

MQSeriesアダプタの新機能

データベース・アダプタの新機能

AQアダプタの新機能

JMSアダプタの新機能

インバウンド・アダプタ・エンドポイントのOracle ESBのSingleton動作

Ilog JRulesの意思決定サービス・サポート

障害管理フレームワーク

参照:このパッチ・セットに含まれる他のドキュメントは、以下のとおりで

す。

『Oracle Application Server Patch Set Notes Addendum』(パッチ・セットの

既知の問題の詳細)

『Oracle Application Server Patch Set Notes』(パッチ・セットの適用の詳

細)

『Oracle Application Server Fixed Bugs List』(パッチ・セットで修正された

バグの詳細)

カスタム Worklist アプリケーションのデプロイおよび

SSO の有効化 10.1.3.1 におけるカスタム Oracle BPEL Worklist アプリケーション(Worklist アプリケー

ション)のデプロイと Worklist アプリケーションのシングル・サインオン(SSO)の有効

化には、多くの回避策が必要でした。10.1.3.3 で導入されたバグの修正によって、このプ

ロセスが大幅に簡素化されます。この項では、カスタム Worklist アプリケーションのデプ

ロイと事前にインストールされた Worklist アプリケーションでの SSO の有効化のための変

更プロセスについて説明します。

1

Page 2: Oracle® SOA Suite...Oracle® SOA Suite 新機能 10g(10.1.3.3) E10381-02 2007 年9 月 本ドキュメントでは、Oracle SOA Suite 10.1.3.3のパッチ・セットで使用できる新機能につ

カスタム Worklist アプリケーションのデプロイ サンプルのWorklistアプリケーションでは 上位のディレクトリに、アプリケーションを構

築およびデプロイするAntスクリプトのbuild.xmlが含まれます。このAntスクリプトは、同じ

ディレクトリに存在するorabpel.propertiesプロパティ・ファイルを使用します。

カスタム Worklist アプリケーションを構築およびデプロイする方法を以下に示します。

1. orabpel.propertiesのすべてのプロパティが更新されて環境に反映されているこ

とを確認します。

2. オペレーティング・システムのコマンド・プロンプトで、カスタマイズされた

Worklistアプリケーションを構築およびデプロイします。 ant deploy.oc4j

Java シングル・サインオン(JSSO)対応のカスタム Worklist アプリケーションにする

場合は、ant deploysso.oc4j を実行します。

3. 以下の URL を使用して、カスタマイズされた Worklist アプリケーションにアクセスし

ます。 http://host:port/integration/customapp/

4. Worklist アプリケーションにログインします。 タスク・リスト・ページが表示されます。

Worklist アプリケーションでのシングル・サインオンの有効化 10.1.3.3 の Worklist アプリケーションは、デフォルトで、独自のログイン・ページを利用

したカスタム認証メカニズムを使用します。事前にインストールした Worklist アプリケー

ションは、OC4J コンテナ・セキュリティでは実行されず、JSSO 対応ではありません。

カスタムWorklistアプリケーションをデプロイする場合、JSSOを有効にするか、Worklistアプリケーション・ログイン・ページでデプロイできます(2 ページの"カスタムWorklistアプリケーションのデプロイ"を参照)。また、事前にインストールしたWorklistアプリケー

ションをJSSO対応に再構成できます。この項では、このタスクの実行方法について説明し

ます。

JSSO は複数のレルムをサポートしていないので注意してください。複数のレルムで構成

される ID プロバイダを使用している場合、JSSO 対応の Worklist アプリケーションの使用

は推奨しません。

以下のトピックについて説明します。

タスク 1:Worklistアプリケーションのweb.xmlの更新

タスク 2:Oracle Enterprise Manager 10g Application Server Control ConsoleでのWorklistアプリケーションのJSSOの有効化

タスク 1:Worklist アプリケーションの web.xml の更新

1. SOA_ORACLE_HOME¥j2ee¥home¥applications¥hw_services¥worklistapp¥WEB-INFディレクトリへ移動します。

2. web.xmlファイルをwebnonsso.xmlファイルにコピーします(これによって、変更

をいつでも元に戻すことができます)。

3. websso.xmlファイルをweb.xmlファイルにコピーします。これによって、Worklistアプリケーションのコンテナ管理セキュリティを有効にできます。

2

Page 3: Oracle® SOA Suite...Oracle® SOA Suite 新機能 10g(10.1.3.3) E10381-02 2007 年9 月 本ドキュメントでは、Oracle SOA Suite 10.1.3.3のパッチ・セットで使用できる新機能につ

タスク 2:Oracle Enterprise Manager 10g Application Server Control Console での Worklist アプリケーションの JSSO の有効化

1. SOA インスタンスをホストしている OC4J サーバーの Oracle Enterprise Manager 10g Application Server Control Console を起動します。

2. 「Administration」タブをクリックします。

3. 「SSO Configuration」タスクをクリックします。

4. 「Participating Applications」タブをクリックします。

5. hw_services の横のチェック・ボックスをクリックします。

6. 「Apply」をクリックします。

7. サーバーを再起動します。

事前にインストールした Worklist アプリケーションにアクセスすると、Worklist アプ

リケーション・ログイン・ページではなく JSSO ログイン・ページが表示されます。

ワークフロー標準ビュー定義の変更 ワークフロー・サービスには、多くの標準ビュー定義が含まれます。これらのビューは、

ユーザーのタスク・リストに対する標準的な問合せを定義し、すべてのユーザーが使用で

きます。また、Worklist アプリケーションで表示され、ユーザー・メタデータ・サービス

を通じて問合せを実行できます。

これらのビューは便利ですが、既存の標準ビュー定義の変更または独自の標準ビューの作

成が頻繁に行われます。Worklist アプリケーションとユーザー・メタデータ・サービスは、

この実行方法を提供しません。

ワークフロー・サービスに含まれる標準ビューは、ワークフロー・サービスのクラス・パ

スからロードされるStandardTaskViews.xmlというXMLファイルに定義されます。このファ

イルの内容は、5 ページの"StandardTaskViews.xmlの内容"に記載されています。

既存のビューの編集または新しいビューの追加によって、このファイルの内容を変更でき

ます。このファイルの編集されたバージョンを以下のディレクトリに配置してください。 SOA_ORACLE_ HOME¥bpel¥system¥classes¥oracle¥bpel¥services¥workflow¥user¥config¥

サーバーが再起動すると、新しい標準ビュー定義がロードされます。

新しい標準ビューを定義すると、既存の標準ビューをガイドラインとして使用できます。 次の XML 要素によって、ビューが定義されます。

<id>- 標準ビューIDは、一意にする必要があります。また、ORCL_WF_STD_VIEWか

ら開始する必要があります。

<name> - 標準ビューに与えられる名前。

<owner> - 標準ビューには使用されません。別の標準ビューのダミーのowner要素を

コピーしてください。

<hidden>- これはfalseにする必要があります。

<description> - ビューの簡単な説明です。

3

Page 4: Oracle® SOA Suite...Oracle® SOA Suite 新機能 10g(10.1.3.3) E10381-02 2007 年9 月 本ドキュメントでは、Oracle SOA Suite 10.1.3.3のパッチ・セットで使用できる新機能につ

<viewColumns> - 表示するビューの列のリスト。要素には、1 つ以上の<column>

要素が含まれます。各<column>要素には、オプションの<displayName>要素とと

もに列の名前を指定する<columnName>要素が含まれます。値が<displayName>に

指定されると、Worklistアプリケーションで使用されるデフォルトの列ヘッダーが上

書きされます。

<viewOptionalInfo> - 各タスクの許可されたアクションのドロップダウン・リス

トを含む列がビューに表示される場合、この要素には、ファイルにすでにリストされ

ているビューで指定されたActions値を持つ<taskOptionalInfo>要素が含まれます。

表示されない場合、<viewOptionalInfo>要素は空です。

<viewPredicate> - ビューの問合せ条件を定義します。以下の要素を格納できます。

- assignmentFilter - この要素は必須です。以下の値のいずれかを含む必要があ

ります。

* My

* My+Group

* Group

* Owner

* Previous

* Reportees

- <keywords> - ビューでは、オプションでキーワードを指定できます。タスク属

性(タスク・タイトル、IDキー、タスクのすべてのテキスト属性列、およびタス

ク番号(キーワードが数値の場合のみ))のいずれかが特定の文字列を含む場合、

ビューはタスクをフィルタリングします。

- <clause> - ビューでは、タスクをフィルタリングする 1 つ以上の条件句をオプ

ションで指定できます。ORまたはANDのjoinOperatorを各<clause>に指定

できます。各<clause>要素には、以下が含まれます。

* <column> - タスクの列の名前。

* <operator> - 条件に使用されるオペレータ。使用できるオペレータは、列

の型に依存します。

列が文字列の場合:eq(等しい)、neq(等しくない)、begins、not_begins、

ends、not_ends、like、not_like、contains、not_contains、is_null、

is_not_null、in、およびnot_in

数値の列の場合:eq(等しい)、neq(等しくない)、lt(より小さい)、

lte(以下)、gt(より大きい)、gte(以上)、is_null、is_not_null、

in、およびnot_in

日付の列の場合:eq(等しい)、neq(等しくない)、lt(より小さい)、

lte(以下)、gt(より大きい)、gte(以上)、is_null、is_not_null、

next_n_days、およびlast_n_days

* <value> - 列とオペレータに関連する値。以下の例外に注意してください。

is_nullおよびis_not_nullオペレータに値を指定する必要はありません。

4

Page 5: Oracle® SOA Suite...Oracle® SOA Suite 新機能 10g(10.1.3.3) E10381-02 2007 年9 月 本ドキュメントでは、Oracle SOA Suite 10.1.3.3のパッチ・セットで使用できる新機能につ

inまたはnot_inオペレータを使用する場合、代わりに<valueList>要素

を使用します。<valueList>要素には、inまたはnot_in結合に指定する

値を含む 1 つ以上の<value>要素が含まれる必要があります。

日付の列を使用する場合、next_n_daysまたはlast_n_daysオペレータの

代わりに<dateValue>要素を使用します。これには、xsd:dateTimeで指

定された句に必要な日付が含まれる必要があります。

<viewOrdering> - ビューでは、1 つ以上の順序付けの<clause>要素を使用して、

タスクの順序付け方法を指定できます。各<clause>要素には、以下が含まれます。

- <column> - 順序を付ける列の名前

- <sortOrder> - 昇順または降順

- <nullFirst> - 順序付けの 初または 後に表示されるNULL値(trueまたは

false)

<chart> - これはWorklistアプリケーションでは使用されません。

flexフィールドのフィルタを表示するビューを定義する場合、属性ラベル名ではなくflexフィールドの列名(TextAttribute1など)を使用します。ビューでflexフィールドの列

を表示する場合にWorklistアプリケーションで適切な属性ラベル名を決定できるように、

flexフィールド・マッピングのタスク・タイプであるtaskDefinitionIdのビューの句も

指定します。以下に例をあげます。 <clause> <column>taskDefinitionId</column> <operator>eq</operator> <value>[the task definition id]</value>

<clause>

または、<displayName>要素を使用して、列の表示名を定義できます。

StandardTaskViews.xml の内容 この項では、StandardTaskViews.xmlファイルの内容を示します。内容を独自の

StandardTaskViews.xmlファイルにコピーし、編集して標準ビューに変更を加えます。 <StandardTaskViews>

<!--High Priority Tasks --> <userViewDetail viewType="VIEW"

xmlns="http://xmlns.oracle.com/bpel/workflow/userMetadata">

<id>ORCL_WF_STD_VIEW_HIGH_PRIORITY_TASKS</id> <name>STD_VIEW_HIGH_PRIORITY_TASKS</name> <owner type="USER"> <realm

xmlns="http://xmlns.oracle.com/bpel/workflow/common">iPlanetRealm</realm> <name

xmlns="http://xmlns.oracle.com/bpel/workflow/common">oc4jadmin</name> </owner> <hidden>false</hidden> <description>High Priority Tasks (Priority IsEq 5)</description> <viewColumns>

<column> <columnName>taskNumber</columnName>

5

Page 6: Oracle® SOA Suite...Oracle® SOA Suite 新機能 10g(10.1.3.3) E10381-02 2007 年9 月 本ドキュメントでは、Oracle SOA Suite 10.1.3.3のパッチ・セットで使用できる新機能につ

<displayName></displayName> </column> <column> <columnName>title</columnName> <displayName></displayName>

</column> <column> <columnName>priority</columnName> <displayName></displayName>

</column> <column> <columnName>State</columnName> <displayName></displayName>

</column> <column> <columnName>createdDate</columnName> <displayName></displayName>

</column> <column> <columnName>expirationDate</columnName> <displayName></displayName>

</column> </viewColumns> <viewOptionalInfo> <taskOptionalInfo xmlns="http://xmlns.oracle.com/bpel/workflow/

taskQuery">Actions</taskOptionalInfo> </viewOptionalInfo> <viewPredicate> <assignmentFilter xmlns="http://xmlns.oracle.com/bpel/workflow/

taskQuery">My+Group</assignmentFilter> <keywords

xmlns="http://xmlns.oracle.com/bpel/workflow/taskQuery"></keywords> <clause joinOperator="AND"

xmlns="http://xmlns.oracle.com/bpel/workflow/taskQuery"> <column>priority</column> <operator>lte</operator> <value>2</value>

</clause> <clause joinOperator="AND"

xmlns="http://xmlns.oracle.com/bpel/workflow/taskQuery"> <column>state</column> <operator>eq</operator> <value>ASSIGNED</value>

</clause> </viewPredicate> <viewOrdering>

<clause xmlns="http://xmlns.oracle.com/bpel/workflow/taskQuery"> <column>expirationDate</column> <sortOrder>ascending</sortOrder> <nullFirst>false</nullFirst>

</clause> </viewOrdering> <chart>

<groupByColumn>state</groupByColumn> </chart>

</userViewDetail> <!-- Due Soon -->

6

Page 7: Oracle® SOA Suite...Oracle® SOA Suite 新機能 10g(10.1.3.3) E10381-02 2007 年9 月 本ドキュメントでは、Oracle SOA Suite 10.1.3.3のパッチ・セットで使用できる新機能につ

<userViewDetail viewType="VIEW" xmlns="http://xmlns.oracle.com/bpel/workflow/userMetadata">

<id>ORCL_WF_STD_VIEW_TASKS_DUE_SOON</id> <name>STD_VIEW_TASKS_DUE_SOON</name> <owner type="USER">

<realm xmlns="http://xmlns.oracle.com/bpel/workflow/common">iPlanetRealm</realm>

<name xmlns="http://xmlns.oracle.com/bpel/workflow/common">oc4jadmin</name>

</owner> <hidden>false</hidden> <description>Due Soon (expires within next 24 hours)</description> <viewColumns>

<column> <columnName>taskNumber</columnName> <displayName></displayName>

</column> <column>

<columnName>title</columnName> <displayName></displayName>

</column> <column>

<columnName>priority</columnName> <displayName></displayName>

</column> <column>

<columnName>State</columnName> <displayName></displayName>

</column> <column>

<columnName>createdDate</columnName> <displayName></displayName>

</column> <column>

<columnName>expirationDate</columnName> <displayName></displayName>

</column> </viewColumns> <viewOptionalInfo>

<taskOptionalInfo xmlns="http://xmlns.oracle.com/bpel/workflow/taskQuery">Actions</taskOptionalInfo>

</viewOptionalInfo> <viewPredicate> <assignmentFilterxmlns="http://xmlns.oracle.com/bpel

/workflow/taskQuery">My+Group</assignmentFilter> <keywords

xmlns="http://xmlns.oracle.com/bpel/workflow/taskQuery"></keywords> <clause joinOperator="AND"

xmlns="http://xmlns.oracle.com/bpel/workflow/taskQuery"> <column>expirationDate</column>

<operator>next_n_days</operator> <value>1</value>

</clause> <clause joinOperator="AND"

xmlns="http://xmlns.oracle.com/bpel/workflow/taskQuery"> <column>state</column> <operator>eq</operator> <value>ASSIGNED</value>

</clause>

7

Page 8: Oracle® SOA Suite...Oracle® SOA Suite 新機能 10g(10.1.3.3) E10381-02 2007 年9 月 本ドキュメントでは、Oracle SOA Suite 10.1.3.3のパッチ・セットで使用できる新機能につ

</viewPredicate> <viewOrdering> <clause xmlns="http://xmlns.oracle.com/bpel/workflow/taskQuery"> <column>priority</column> <sortOrder>descending</sortOrder> <nullFirst>false</nullFirst>

</clause> </viewOrdering> <chart> <groupByColumn>priority</groupByColumn>

</chart> </userViewDetail> <!--New Tasks --> <userViewDetailviewType="VIEW"

xmlns="http://xmlns.oracle.com/bpel/workflow/userMetadata">

<id>ORCL_WF_STD_VIEW_NEW_TASKS</id> <name>STD_VIEW_NEW_TASKS</name> <owner type="USER"> <realm

xmlns="http://xmlns.oracle.com/bpel/workflow/common">iPlanetRealm</realm> <name

xmlns="http://xmlns.oracle.com/bpel/workflow/common">oc4jadmin</name> </owner> <hidden>false</hidden> <description>New Tasks (created within past 24 hours)</description> <viewColumns>

<column> <columnName>taskNumber</columnName> <displayName></displayName>

</column> <column> <columnName>title</columnName> <displayName></displayName>

</column> <column> <columnName>priority</columnName> <displayName></displayName>

</column> <column> <columnName>State</columnName> <displayName></displayName>

</column> <column> <columnName>createdDate</columnName> <displayName></displayName>

</column> <column> <columnName>expirationDate</columnName> <displayName></displayName>

</column> </viewColumns> <viewOptionalInfo>

<taskOptionalInfo xmlns="http://xmlns.oracle.com/bpel/workflow/taskQuery">Actions</taskOptionalInfo>

</viewOptionalInfo> <viewPredicate> <assignmentFilter xmlns="http://xmlns.oracle.com/bpel/workflow/

taskQuery">My+Group</assignmentFilter>

8

Page 9: Oracle® SOA Suite...Oracle® SOA Suite 新機能 10g(10.1.3.3) E10381-02 2007 年9 月 本ドキュメントでは、Oracle SOA Suite 10.1.3.3のパッチ・セットで使用できる新機能につ

<keywords xmlns="http://xmlns.oracle.com/bpel/workflow/taskQuery"></keywords>

<clause joinOperator="AND" xmlns="http://xmlns.oracle.com/bpel/workflow/taskQuery">

<column>createdDate</column>

<operator>last_n_days</operator> <value>1</value>

</clause> <clause joinOperator="AND"

xmlns="http://xmlns.oracle.com/bpel/workflow/taskQuery"> <column>state</column> <operator>eq</operator> <value>ASSIGNED</value> </clause>

</viewPredicate> <viewOrdering> <clause xmlns="http://xmlns.oracle.com/bpel/workflow/taskQuery"> <column>priority</column> <sortOrder>descending</sortOrder> <nullFirst>false</nullFirst> </clause>

</viewOrdering> <chart>

<groupByColumn>priority</groupByColumn> </chart>

</userViewDetail> </StandardTaskViews>

Oracle Workflow の新しいデータベース・ビュー この項では、Oracle Workflow サービス・スキーマの問合せを実行してレポートを取得する

ために追加されたデータベース・ビューについて説明します。次の表は、Worklist アプリ

ケーションで公開されるレポートとこれらのレポートに対応するデータベース・ビューを

示しています。

既存の Worklist レポート 対応するデータベース・ビュー

無人タスク・レポート WFUNATTENDEDTASKS_VIEW

タスク・サイクル時間レポート WFTASKCYCLETIME_VIEW

タスク生産性レポート WFPRODUCTIVITY_VIEW

タスク優先順位レポート WFTASKPRIORITY_VIEW

注:これらのレポートの詳細は、『Oracle BPEL Process Manager 開発者ガイド』

の Worklist アプリケーション・ドキュメントを参照してください。

次の項では、サンプルを使用して、各データベース・ビューを説明します。

無人タスク・レポート・ビュー

タスク・サイクル時間レポート・ビュー

タスク生産性レポート・ビュー

タスク優先順位レポート・ビュー

9

Page 10: Oracle® SOA Suite...Oracle® SOA Suite 新機能 10g(10.1.3.3) E10381-02 2007 年9 月 本ドキュメントでは、Oracle SOA Suite 10.1.3.3のパッチ・セットで使用できる新機能につ

無人タスク・レポート・ビュー ビュー名:WFUNATTENDEDTASKS_VIEW

ビューの説明:

名前 型

TASKID1 VARCHAR2(64)

TASKNAME VARCHAR2(200)

TASKNUMBER NUMBER

CREATEDDATE DATE

EXPIRATIONDATE DATE

STATE VARCHAR2(100)

PRIORITY NUMBER

ASSIGNEEGROUPS VARCHAR2(2000)

1 NOT NULL列

サンプル

有効期限が来週の無人タスクの問合せ SELECT tasknumber, taskname, assigneegroups FROM WFUNATTENDEDTASKS_VIEW WHERE expirationdate > current_date AND expirationdate < current_date + 7;

mygroup の無人タスクの問合せ SELECT tasknumber, taskname, assigneegroups FROM WFUNATTENDEDTASKS_VIEW WHERE 'mygroup' IN assigneegroups;

過去 30 日間に作成された無人タスクの問合せ SELECT tasknumber, taskname, assigneegroups FROM WFUNATTENDEDTASKS_VIEW WHERE createddate > current_date -30;

タスク・サイクル時間レポート・ビュー ビュー名:WFTASKCYCLETIME_VIEW

ビューの説明:

名前 型

TASKID1 VARCHAR2(64)

TASKNAME VARCHAR2(200)

TASKNUMBER NUMBER

CREATEDDATE DATE

ENDDATE DATE

CYCLETIME NUMBER(38)

1 NOT NULL列

10

Page 11: Oracle® SOA Suite...Oracle® SOA Suite 新機能 10g(10.1.3.3) E10381-02 2007 年9 月 本ドキュメントでは、Oracle SOA Suite 10.1.3.3のパッチ・セットで使用できる新機能につ

サンプル

過去 30 日間に作成された完了タスクの平均的なサイクル時間(タスク完了時間)の

計算 SELECT avg(cycletime) FROM WFTASKCYCLETIME_VIEW WHERE createddate > (current_date - 30);

過去 30 日間に作成されたすべての完了タスクの平均的なサイクル時間の問合せとタ

スク名によるグループ化 SELECT taskname, avg(cycletime) FROM WFTASKCYCLETIME_VIEW WHERE createddate > (current_date - 30) GROUP BY taskname;

各タスクを処理する 小時間および 大時間の問合せ SELECT taskname, min(cycletime), max(cycletime) FROM WFTASKCYCLETIME_VIEW GROUP BY taskname;

過去 7 日間に完了したタスクの平均的なサイクル時間の計算 SELECT avg(cycletime) FROM WFTASKCYCLETIME_VIEW WHERE enddate > (current_date - 7);

7 日以上費やして完了したタスクの問合せ SELECT taskname, avg(cycletime) FROM WFTASKCYCLETIME_VIEW WHERE cycletime > ((current_date +7) - current_date) GROUP BY taskname;

タスク生産性レポート・ビュー ビュー名:WFPRODUCTIVITY_VIEW

ビューの説明:

名前 型

TASKNAME VARCHAR2(200)

TASKID VARCHAR2(200)

TASKNUMBER NUMBER USERNAME VARCHAR2(200)

STATE1 VARCHAR2(100)

LASTUPDATEDDATE DATE

1 完了したタスクの状態はNULLです。問合せにdecode(outcome, '', 'COMPLETED',outcome)を使

用してください。

サンプル

ユーザーが過去 30 日間に更新した一意なタスクの数のカウント SELECT username, count(distinct(taskid)) FROM WFPRODUCTIVITY_VIEW WHERE lastupdateddate > (current_date -30) GROUP BY username;

ユーザーが過去 7 日間に更新(1 つのタスクが何度も更新されている可能性がありま

す)したタスクの数のカウント SELECT username, count(taskid) FROM WFPRODUCTIVITY_VIEW WHERE

11

Page 12: Oracle® SOA Suite...Oracle® SOA Suite 新機能 10g(10.1.3.3) E10381-02 2007 年9 月 本ドキュメントでは、Oracle SOA Suite 10.1.3.3のパッチ・セットで使用できる新機能につ

lastupdateddate > (current_date -7) GROUP BY username;

ユーザーが操作した各タスク・タイプの数のカウント SELECT username, taskname, count(taskid) FROM WFPRODUCTIVITY_VIEW GROUP BY username, taskname;

ユーザーが過去 100 日間に操作した各タスク・タイプの数のカウント SELECT username, taskname, count(taskid) FROM WFPRODUCTIVITY_VIEW WHERE lastupdateddate > (current_date -100) GROUP BY username, taskname;

タスク優先順位レポート・ビュー ビュー名:WFTASKPRIORITY_VIEW

ビューの説明:

名前 型

TASKID1 VARCHAR2(64)

TASKNAME VARCHAR2(200)

TASKNUMBER NUMBER

PRIORITY NUMBER

OUTCOME VARCHAR2(100)

ASSIGNEDDATE DATE

UPDATEDDATE DATE

UPDATEDBY VARCHAR2(64)

1 NOT NULL列

サンプル

それぞれのタスクの優先順位で各ユーザーが更新したタスクの数の問合せ SELECT updatedby, priority, count(taskid) FROM WFTASKPRIORITY_VIEW GROUP BY updatedby, priority;

タスクと結果の配布の問合せ SELECT taskname, decode(outcome, '', 'COMPLETED', outcome), count (taskid) FROM WFTASKPRIORITY_VIEW GROUP BY taskname, outcome;

それぞれの優先順位で特定のユーザーが更新したタスクの数の問合せ SELECT priority, count(taskid) FROM WFTASKPRIORITY_VIEW WHERE updatedby='jstein' GROUP BY priority;

ファイル/FTP アダプタの新機能 この項では、ファイル/FTP アダプタの新機能について説明します。以下のトピックについ

て説明します。

既存のファイルへのファイルの追加

12

Page 13: Oracle® SOA Suite...Oracle® SOA Suite 新機能 10g(10.1.3.3) E10381-02 2007 年9 月 本ドキュメントでは、Oracle SOA Suite 10.1.3.3のパッチ・セットで使用できる新機能につ

Oracle BPEL Process Managerの大規模なペイロードの送信

Oracle BPEL Process Managerのアウトバウンド操作からのファイル名の読取り

拒否されるメッセージのサイズの制御

アウトバウンド・パートナ・リンクのネーミング規則の一部として時間パターンを使

用する場合の一意なファイル名の指定

既存のファイルへのファイルの追加 ファイル/FTPアダプタを使用する場合、アウトバウンド・インタラクションを構成して、

ファイルを既存のファイルに追加できます。ファイルに追加するには、ファイル/FTPアダ

プタのInteractionSpecにAppend="true"を追加します。

注:FTPアダプタでこの機能を正しく使用するには、宛先のFTPサーバーでRFC 959 APPEコマンドをサポートする必要があります。

以下の構文は、アウトバウンド・ディレクトリの同じファイルに追加する方法を示してい

ます。 <jca:operation

FileType="ascii" PhysicalDirectory="/home/adapter/out" . . . FileNamingConvention="MyOutputFile.txt" NumberMessages="1" . . . . . . Append="true"

>

WSDL(前の構文のとおり)またはヘッダーでファイル名を指定できます。

Oracle BPEL Process Manager の大規模なペイロードの送信 大規模なペイロードをサポートする 2 つの新しいオプションがあります。

Oracle BPEL Process Managerの添付サポート

XMLデバッチ

Oracle BPEL Process Manager の添付サポート

この機能は、Oracle BPEL Process Manager でのみ使用できます。通常、この機能を使用し

て、10MB 以上のデバッチできないファイルを処理します。

以下の例は、ファイルを変換せずにソースから宛先に送信する方法を示しています。

注:この例では、XSDファイルにattachment.xsdと名前を付けてください。

アダプタを構成して添付としてファイルを公開するには、以下の手順を実行する必要があ

ります。

13

Page 14: Oracle® SOA Suite...Oracle® SOA Suite 新機能 10g(10.1.3.3) E10381-02 2007 年9 月 本ドキュメントでは、Oracle SOA Suite 10.1.3.3のパッチ・セットで使用できる新機能につ

1. 以下のスキーマを BPEL プロジェクトにインポートまたは追加します。名前空間には、

完全に同じ名前を使用する必要があります。 <schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://xmlns.oracle.com/pcbpel/adapter/file/attachment/" elementFormDefault="qualified"> <element name="attachmentElement">

<complexType> <attribute name="href" type="string"/> </complexType>

</element> </schema>

2. attachment.xsdを使用して、インバウンド・ファイル・アダプタのパートナ・リ

ンクを作成します。

3. インバウンド・パートナ・リンクのアダプタWSDLファイルに新しいアクティブ化パ

ラメータ(AsAttachment="true")を追加します。

4. 同じattachment.xsdファイルを使用して、アウトバウンド・ファイル・アダプタ

のパートナ・リンクを作成します。

14

Page 15: Oracle® SOA Suite...Oracle® SOA Suite 新機能 10g(10.1.3.3) E10381-02 2007 年9 月 本ドキュメントでは、Oracle SOA Suite 10.1.3.3のパッチ・セットで使用できる新機能につ

5. ソースとターゲットのパートナ・リンク間のhref属性をコピーする割当て文を追加

します。

15

Page 16: Oracle® SOA Suite...Oracle® SOA Suite 新機能 10g(10.1.3.3) E10381-02 2007 年9 月 本ドキュメントでは、Oracle SOA Suite 10.1.3.3のパッチ・セットで使用できる新機能につ

注:送信操作が失敗する場合は、以下の手順を実行します。

SOA_ORACLE_HOME¥j2ee¥MIDDLE_TIER¥configのtransaction-

manager.xmlのトランザクション・タイムアウトを増やします。

SOA_ORACLE_HOME¥j2ee¥MIDDLE_TIER¥application-deployments¥orabpel¥ejb_ob_engineのorion-ejb-jar.xmlのタイムアウトを増や

します。

XML デバッチ

この機能は、Oracle BPEL Process Manager および Oracle Enterprise Service Bus で使用できま

す。この機能を使用すると、大規模な XML ファイルとネイティブ・ファイルをデバッチ

できます。XML 以外(フラット・ファイル)の形式を仮定した 10.1.2 のデバッチ機能と

異なり、10.1.3.3 の XML デバッチは XML ドキュメントに直接対応します。XML デバッ

チを設定するには、XML プル解析ライブラリ(StaX)のダウンロードおよび構成が必要

です。

1. 次の URL へ移動します。 http://jcp.org/aboutJava/communityprocess/final/jsr173/in dex.html

2. "リファレンス実装"の項へ移動し、使用できるリファレンス実装から選択します。

3. API(jsr173_1.0_api.jar)およびRI(jsr173_1.0_ri.jar)をダウンロード

します。これらのJARファイルは、XMLファイルのデバッチにのみ使用されます。

XML以外のファイルのデバッチには、これらのファイルを使用しません。

4. 両方のJARファイルをSOA_ORACLE_HOME¥bpel¥libにコピーします。

5. SOA_ORACLE_HOME¥j2ee¥MID_TIER¥configのserver.xmlの両方のJARファイ

ルをoracle.bpel.common共有ライブラリに登録します。 <shared-library name="oracle.bpel.common" version="10.1.3">

. . .

. . .

<code-source path="C:¥product¥bpel¥lib¥jsr173_1.0_api.jar"/> <code-source path="C:¥product¥bpel¥lib¥jsr173_1.0_ri.jar"/> . . . . . .

</shared-library>

6. PublishSizeパラメータを設定して、インバウンド・ファイル/FTPアダプタのパー

トナ・リンクのデバッチを有効化します。 <jca:operation

PhysicalDirectory=" ¥in" ActivationSpec="oracle.tip.adapter.file.inbound.FileActivationSpec" . . . . . . PublishSize="1" . . . . . . >

</jca:operation>

16

Page 17: Oracle® SOA Suite...Oracle® SOA Suite 新機能 10g(10.1.3.3) E10381-02 2007 年9 月 本ドキュメントでは、Oracle SOA Suite 10.1.3.3のパッチ・セットで使用できる新機能につ

注:ダウンロードしたリファレンス実装にjsr173.zipなどの単一のファイルが

表示される場合、ファイルから API ( jsr173_1.0_api.jar)および RI(jsr173_1.0_ri.jar)を抽出してください。

Oracle BPEL Process Manager のアウトバウンド操作からのファイル名

の読取り アウトバウンド・インタラクションの後にファイル名とディレクトリ名を読み取ることが

できます。

以下の例は、書込み操作後に作成されたファイルの名前を読み取る方法を示しています。

1. アウトバウンド・ファイル/FTPアダプタのプロセスWSDLファイルを編集して、イン

タラクション後のファイル名を受信します。アウトバウンド・ヘッダー・タイプの出

力メッセージをportTypeに追加します。名前空間の接頭辞(hdr)がWSDLファイ

ルにすでに定義されているので注意してください。 <portType name="Write_ptt">

<operation name="Write">

<input message="tns:PurchaseOrder_msg"/> <output message="hdr:OutboundHeader_msg"/>

</operation> </portType>

2. BPEL ファイルのアウトバウンド・ヘッダー・タイプの変数を手動で作成します。名

前空間が変更される可能性があります。 <variable name="Invoke_1_Write_OutputVariable"

messageType="ns3:OutboundHeader_msg"/>

3. 起動アクティビティのアウトバウンド変数としてこの変数を使用します。 <invoke name="Invoke_1" partnerLink="FileOut"

portType="ns2:Write_ptt" operation="Write" inputVariable="Invoke_1_Write_InputVariable" outputVariable="Invoke_1_Write_OutputVariable"/>

拒否されるメッセージのサイズの制御 インバウンド・ファイル/FTP アダプタのパートナ・リンクの以下のエンドポイント・プロ

パティを指定して、拒否されるメッセージのサイズを制御できます。

この例では、実際のファイルが大きすぎるので、100行を拒否しています。

oracle.tip.adapter.file.debatching.rejection.quantum="100"

設定可能な値は、0、EOF、負ではない数値です。

注:エンドポイント・プロパティを指定しない場合、メッセージ・ファイル全体

(または、メッセージ・ファイルから利用できる内容)が拒否されます。

17

Page 18: Oracle® SOA Suite...Oracle® SOA Suite 新機能 10g(10.1.3.3) E10381-02 2007 年9 月 本ドキュメントでは、Oracle SOA Suite 10.1.3.3のパッチ・セットで使用できる新機能につ

アウトバウンド・パートナ・リンクのネーミング規則の一部として時間

パターンを使用する場合の一意なファイル名の指定 アウトバウンド・パートナ・リンクのファイルのネーミング規則の一部として時間パター

ンを使用すると、メッセージが失われます。これは、同じタイム・スタンプで作成された

メッセージが相互に上書きされるからです。

ファイルのネーミング規則を組み合わせると、この問題を回避できます。たとえば、

%yyMMddHHmmssSSz%__%SEQ%_OrderBookings.xmlを指定できます。これによって、

ファイル名が一意になります。

注:これは、NumberMessages="1"などのバッチ以外の事例にのみ有効です。

MQSeries アダプタの新機能 この項では、MQSeries アダプタの新機能について説明します。以下のトピックについて説

明します。

MQSeriesアダプタの廃止予定の機能

アウトバウンド同期-請求-要求-応答のシナリオ

アウトバウンド・デキュー・シナリオ

インバウンド・メッセージングのプロパティ

ActivationおよびInteractionSpecプロパティ名への変更

BPELプロセスの複数のキューのポーリング

接続のバインディング・モードの有効化

MQSeries アダプタの廃止予定の機能 インバウンド・アダプタ方向でメッセージを取得するポーリング・モードのサポート

は、廃止予定です。

ブロッキング・デキュー・モードは、キューからメッセージを取得するために使用さ

れています。ブロッキング・デキュー・モードの実行中、アダプタは、キューをポー

リングしないでキューに到着するメッセージを待機します。この機能には、パフォー

マンスの利点があります。

優先順位に基づくメッセージのフィルタリングは、MQSeries自体のネイティブ・サ

ポート機能ではありません。このため、この機能のアダプタ機能は、廃止予定です。

10.1.3.1 から 10.1.3.3 にプロジェクトを移行している場合、FilteredByPriorityプ

ロパティがインバウンド・アダプタ方向でactivationSpecから削除されているこ

とを確認してください。

アウトバウンド同期-請求-要求-応答のシナリオ 10.1.3.3 のMQSeriesアダプタは、複数のInteractionSpecプロパティを使用して、アウ

トバウンド同期-請求-要求-応答のシナリオをサポートします。このシナリオで、アダプタ

は、通常/要求メッセージのエンキューを行って、レポート/リプライの同期を要求します。

レポート/リプライのメッセージは、通常/要求メッセージのreplyToQueueNameで到着し

ます。

18

Page 19: Oracle® SOA Suite...Oracle® SOA Suite 新機能 10g(10.1.3.3) E10381-02 2007 年9 月 本ドキュメントでは、Oracle SOA Suite 10.1.3.3のパッチ・セットで使用できる新機能につ

アウトバウンド同期-請求-要求-応答のシナリオのInteractionSpecプロパティは、以下

のとおりです。

SyncSolicitReqRes - このプロパティに設定できる値は、trueまたはfalseです。

同期-請求-要求-応答のシナリオには、このプロパティをtrueに設定します。同期-請求-要求-応答のシナリオを使用している場合、このプロパティは必須です。

ResponseWaitInterval - このプロパティに設定できる値は、間隔値(>=0)です。

これは、レポート/リプライがreplyToQueueNameに到着するまでアダプタが待機す

るミリ秒単位の時間です。このプロパティのデフォルト値は、0ミリ秒です。この値

を変更できますが、値をアウトバウンド・アクティビティのタイムアウト未満にする

必要があります。レポート/リプライのメッセージが指定された時間に到着しない場合、

アダプタは、例外をスローします。このプロパティは必須ではありません。

ResponseOpaqueSchema - このプロパティに設定できる値は、trueまたはfalse

です。レポート/リプライのメッセージが不透明なペイロードを持つ場合、このプロパ

ティをtrueに設定します。このプロパティは必須ではありません。このプロパティの

デフォルト値はfalseです。

次の例を使用して、この機能を説明します。

例 1:通常メッセージのエンキューおよびメッセージのデキュー

この例は、通常メッセージのエンキューおよびCOAレポート・メッセージのデキューを行

う方法を示しています。レポートは、5000ミリ秒以内に到着する必要があります。レ

ポート・メッセージには、不透明なペイロードがあります。WSDLファイルの一部を以下

に表示します。 <jca:operation

InteractionSpec="oracle.tip.adapter.mq.outbound.InteractionSpecImpl"

QueueName="Request_Queue" MessageType="NORMAL" MessageFormat="NONE"

Priority="AS_Q_DEF" Persistence="AS_Q_DEF" Expiry="NEVER"

ReportCOA="WITH_FULL_DATA" ReplyToQueueName="Report_Queue" OpaqueSchema="false" SyncSolicitReqRes="true" ResponseWaitInterval="5000" ResponseOpaqueSchema="true"

> </jca:operation>

例 2:要求メッセージのエンキューおよびリプライ・メッセージのデキュー

この例は、5000ミリ秒の間隔で要求メッセージのエンキューおよびリプライ・メッセー

ジのデキューを行う方法を示しています。応答メッセージには、関連するスキーマがあり

ます。WSDLファイルの一部を以下に表示します。 <jca:operation

InteractionSpec="oracle.tip.adapter.mq.outbound.InteractionSpecImpl"

QueueName="Request_Queue" MessageType="REQUEST" MessageFormat="NONE"

Priority="AS_Q_DEF" Persistence="AS_Q_DEF" Expiry="NEVER"

19

Page 20: Oracle® SOA Suite...Oracle® SOA Suite 新機能 10g(10.1.3.3) E10381-02 2007 年9 月 本ドキュメントでは、Oracle SOA Suite 10.1.3.3のパッチ・セットで使用できる新機能につ

ReportCOA="WITH_FULL_DATA" ReplyToQueueName="Reply_Queue" OpaqueSchema="false" SyncSolicitReqRes="true" ResponseWaitInterval="5000"

> </jca:operation>

注:ResponseWaitInterval値は、アウトバウンド・アクティビティのタイム

アウト未満にする必要があります。ResponseWaitInterval値がアウトバウン

ド・アクティビティのタイムアウトを超えると、アダプタの動作が不安定になる

場合があります。

アウトバウンド・デキュー・シナリオ アウトバウンド・デキュー・シナリオでは、複数のInteractionSpecプロパティによるアウト

バウンドMQSeriesアダプタでキューから単一のメッセージがデキューされます。アウトバ

ウンド・デキュー・シナリオは、さまざまなフィルタ・オプションをサポートします。サ

ポートされるフィルタ・オプションには、messageId、correlationId、GroupId、およびmessageIdとcorrelationIdの組合せがあります。フィルタ・オプションは、

ヘッダーを通じてのみ指定できます。

アウトバウンド・デキュー・シナリオのInteractionSpecプロパティは、以下のとおり

です。

InteractionSpec - これは、アウトバウンド・デキューに使用されるInteractionSpecクラスです。このプロパティの値を oracle.tip.adapter.mq.outbound.

SyncInteractionSpecImplにする必要があります。このプロパティは必須です。

QueueName - これは、メッセージがデキューされる MQSeries キューの名前です。こ

のプロパティは必須です。

WaitInterval - これは、メッセージがキューにない場合にアダプタが待機するミリ

秒単位の時間です。このプロパティのデフォルト値は、0 ミリ秒です。このプロパ

ティは必須ではありません。このプロパティに設定できる値は、整数値(>=0)です。

このプロパティの値をアウトバウンド・アクティビティのタイムアウト値未満にする

必要があります。

FilterByMsgId - このプロパティは、messageId に基づいてメッセージ・フィル

タ・オプションを設定します。このプロパティは必須ではありません。このプロパ

ティの値は、messageId用の 16 進数でエンコードされた値にする必要があります。

FilterByCorrelId - このプロパティは、correlationId に基づいてメッセー

ジ・フィルタ・オプションを設定します。このプロパティは必須ではありません。こ

のプロパティの値は、correlationId 用の 16 進数でエンコードされた値にする必

要があります。

FilterByGroupId - このプロパティは、groupId に基づいてメッセージ・フィル

タ・オプションを設定します。このプロパティは必須ではありません。このプロパ

ティの値は、groupId用の 16 進数でエンコードされた値にする必要があります。

以下の例は、アウトバウンド・アダプタ方向で OutboundDequeue_Queue からメッセー

ジをデキューする方法を示しています。メッセージがキューにない場合、 大 1000 ミリ

秒待機します。WSDL ファイルの一部が以下に表示されています。 <jca:operation

20

Page 21: Oracle® SOA Suite...Oracle® SOA Suite 新機能 10g(10.1.3.3) E10381-02 2007 年9 月 本ドキュメントでは、Oracle SOA Suite 10.1.3.3のパッチ・セットで使用できる新機能につ

InteractionSpec="oracle.tip.adapter.mq.outbound.SyncInteractionSpecImpl"

QueueName="OutboundDequeue_Queue" WaitInterval="1000" >

</jca:operation>

インバウンド・メッセージングのプロパティ 20 ページの"アウトバウンド・デキュー・シナリオ"に記載されているアウトバウンド・

メッセージングの使用以外に、インバウンド・メッセージングにFilterByGroupId、

FilterByMsgId、FilterByCorrelIdプロパティも使用できます。

Activation および InteractionSpec プロパティ名への変更 表 1は、ActivationおよびInteractionSpecプロパティ名の変更を示しています。

表 1 プロパティ名の変更

古い名前 新しい名前

SegmentIfReqd SegmentIfRequired

BlockingInterval WaitInterval

BPEL プロセスの複数のキューのポーリング

注:この機能は、プレビュー・リリースとしてのみ使用できます。保証は行われ

ていません。

1 つ以上のキューをポーリングする場合、bpel.xmlに複数の activationAgentプロパ

ティを指定できます。以下の例に示されているように、インバウンド方向のキューを指定

するエンドポイント・プロパティ名は、adapter.mq.inbound.queueNameです。 <activationAgents> <activationAgent className="oracle.tip.adapter.fw.agent.jca.JCAActivationAgent" partnerLink="inboundService">

<property name="portType">Dequeue_ptt</property> <property name="adapter.mq.inbound.queueName">Queue1</property>

</activationAgent> <activationAgent

className="oracle.tip.adapter.fw.agent.jca.JCAActivationAgent" partnerLink="inboundService">

<property name="portType">Dequeue_ptt</property> <property name="adapter.mq.inbound.queueName">Queue2</property>

</activationAgent> </activationAgents>

接続のバインディング・モードの有効化 MQSeries アダプタの oc4j-ra.xmlファイルを変更して、接続のバインディング・モード

を有効化します。oc4j-ra.xmlファイルで、以下の変更が必要です。 hostName - ""

21

Page 22: Oracle® SOA Suite...Oracle® SOA Suite 新機能 10g(10.1.3.3) E10381-02 2007 年9 月 本ドキュメントでは、Oracle SOA Suite 10.1.3.3のパッチ・セットで使用できる新機能につ

portNumber - Any interger value (>1023 & <65356) channelName - ""

queueManagerName - "Valid_Queue_Manager_Name"

データベース・アダプタの新機能 この項では、データベース・アダプタの新機能について説明します。以下のトピックにつ

いて説明します。

XMLTypeサポート

プロキシ認証サポート

インバウンド・スキーマ検証

XMLType サポート Pure SQL を拡張して、XMLType 列をサポートしました。CLOB 列の XML の格納はすで

にサポートされているので(SOA_ORACLE_HOME¥bpel¥tutorials¥122.DBAdapter

¥advanced¥dmlInvoke¥InsertWithClobs サンプルを参照)、XMLType サポートは、

以下の利点を提供するために構築されました。

SQL での XQuery 式の書込み可能(XPath 式を通じて XML レコードの問合せおよび

更新を行う場合)

Oracle から Oracle JDeveloper プロジェクト・プロセスへのスキーマ・バインドされた

XMLType の XSD のインポート。xs:any として XMLType 列をインポートしても役

立ちません。

通常の表の XMLType列ではなく XMLType表のサポート

以下の SQL 文と自動生成された XSD は、上記 3 つの強化機能のサポートを示しています。 SELECT * FROM MOVIES_XMLTYPE WHERE EXTRACT_VALUE(object_value, '/Movies/title') = ?

<?xml version = '1.0' encoding = 'UTF-8'?> <xs:schema targetNamespace="http://xmlns.oracle.com/pcbpel/adapter/db/XMLTypeSelectService" xmlns="http://xmlns.oracle.com/pcbpel/adapter/db/XMLTypeSelectService" xmlns:ns1="http://xmlns.oracle.com/pcbpel/adapter/db/xdb/Movies" elementFormDefault="qualified" attributeFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">

<xs:import namespace="http://xmlns.oracle.com/pcbpel/adapter/db/xdb/Movies"

schemaLocation="Movies_xmltype.xsd"/> <xs:element name="XMLTypeSelectServiceInput" type="XMLTypeSelectServiceInput"/>

<xs:complexType name="XMLTypeUpdateServiceInput"> <xs:sequence>

<xs:element name="XML" nillable="true"> <xs:complexType>

<xs:sequence> <xs:element ref="ns1:Movies" minOccurs="0"/>

</xs:sequence> </xs:complexType>

</xs:element> <xs:element name="TITLE" type="xs:string" nillable="true"/>

22

Page 23: Oracle® SOA Suite...Oracle® SOA Suite 新機能 10g(10.1.3.3) E10381-02 2007 年9 月 本ドキュメントでは、Oracle SOA Suite 10.1.3.3のパッチ・セットで使用できる新機能につ

</xs:sequence> </xs:complexType> <xs:element name="XMLTypeSelectServiceOutputCollection" type="XMLTypeSelectServiceOutputCollection"/> <xs:complexType name="XMLTypeSelectServiceOutputCollection">

<xs:sequence> <xs:element name="XML" nillable="true">

<xs:complexType> <xs:sequence>

<xs:element ref="ns1:Movies" minOccurs="0"/> </xs:sequence>

</xs:complexType> </xs:element>

</xs:sequence> </xs:complexType>

</xs:schema>

XMLType サポートの注意事項を含む新しい SOA_ORACLE_HOME¥samples¥tutorials¥ 122.DBAdapter¥PureSQLTutorial.txt ファイルを参照してください。無名の XMLType

は、ストアド・プロシージャ用に引き続きサポートされます。XMLType のサポートは、

アダプタ構成ウィザードの操作タイプ・ページの表に対して操作を実行フィールドに追加

されていません。XMLType のサポートは、新しいユースケースをデータベース・アダプ

タに追加して、起点として既存のリレーショナル・スキーマを概念的に取得します。リ

レーショナル・スキーマではなく XML スキーマを使用している場合、Oracle データベー

スにその XML を格納して問合せを行うことができます。Oracle XDB は、XSD を削除して、

パフォーマンスの XML 永続性を提供します。

プロキシ認証サポート プロキシ認証を使用して、Oracle データ・ストアに接続できます。起動するたびに、以下

の新しいヘッダー・プロパティの組合せを使用できます。

proxyUserName

proxyPassword

proxyRoles

proxyCertificate(base64Binary)

proxyDistinguishedName

proxyIsThickDriver

起動実行のプロキシ接続は、データソースから取得されます。OCI ドライバを使用する場

合、シック・ドライバとシン・ドライバ間の JDBC レベルの API が異なっているため、

proxyIsThickDriverを構成して trueに設定する必要があります。

参照:以下のURLは、基礎となるOracle TopLink機能の詳細を示します。

http://www.oracle.com/technology/products/ias/toplink/doc/1013/main

/_html/dblgcfg008.htm

23

Page 24: Oracle® SOA Suite...Oracle® SOA Suite 新機能 10g(10.1.3.3) E10381-02 2007 年9 月 本ドキュメントでは、Oracle SOA Suite 10.1.3.3のパッチ・セットで使用できる新機能につ

インバウンド・スキーマ検証 WSDL ファイルの SchemaValidation という新しい ActivationSpec プロパティを構成で

きます。true に設定されると、ポーリング・データベース・アダプタ(受信用)によって

生成されたすべての XML は、XSD に対して検証されます。障害が発生すると、XML レコー

ドは拒否されますが、データベース・アダプタ処理としてマークされます。10.1.3.3 以前、

データベース・アダプタからの不正な形式の XML という概念はありませんでした。このた

め、メッセージの拒否は実装されませんでした。データベースは、構造化ストレージを提供

します。XSD は、アダプタ構成ウィザードによって生成されます。ただし、自動生成した

XSD を編集して独自の制約を追加する場合、検証を使用できます。たとえば、VARCHAR(50)フィールドをインポートする場合、自動生成された XSD は、 大長 50 に制限されます。

ただし、BPEL プロセスが固定長 22 の値だけを処理する場合、XML が検証されることが

あります。

AQ アダプタの新機能 この項では、AQ アダプタの新機能について説明します。

インバウンド・スキーマ検証

インバウンド方向の複数のアクティブ化エージェントの使用

ADT キューを使用する場合のインバウンド・スキーマ検証 ADT(オブジェクト)キューで AQ アダプタを使用する場合、インバウンド XML 検証は、

設計時に生成されたスキーマに対して発生しません。

インバウンド XML 検証を有効にするには、デキュー操作を実行するパートナ・リンクの

WSDL ファイルに以下のブール型プロパティを追加します。 SchemaValidation このブール値の ActivationSpec プロパティのデフォルト値は、false です。true に設定す

ると、インバウンド XML は、実行中に設計時スキーマに対して検証されます。

アダプタ構成ウィザードはこのプロパティをサポートしていないので注意してください。

このプロパティを有効にするには、パートナ・リンクの WSDL ファイルを手動で編集す

る必要があります。

インバウンド方向の複数のアクティブ化エージェントの使用 インバウンド方向の多くのアクティブ化エージェントを使用する場合、oc4j-ra.xml ファ

イルのインバウンド JNDI エントリの useDefaultConnectionManager プロパティを

true に設定します。インバウンド方向の複数のアクティブ化エージェントのインバウン

ド・アダプタ AQ サービスとともにアウトバウンド AQ アダプタ・サービスを使用する場

合、以下の設定を確認してください。

oc4j-ra.xmlの異なる JNDI エントリを使用している。

useDefaultConnectionManagerが falseに設定されている。

JMS アダプタの新機能 この項では、JMS アダプタの新機能について説明します。

24

Page 25: Oracle® SOA Suite...Oracle® SOA Suite 新機能 10g(10.1.3.3) E10381-02 2007 年9 月 本ドキュメントでは、Oracle SOA Suite 10.1.3.3のパッチ・セットで使用できる新機能につ

BEA WebLogic JMS プロバイダのキューおよびトピックのサポート

JMS アダプタは、BEA WebLogic JMS プロバイダのキューおよびトピックのサポートを提

供します。この機能を使用するには、server.xml ファイルの environment-naming-

url-factory-enabledを trueに設定します。

インバウンド・アダプタ・エンドポイントの Oracle ESB の

Singleton 動作 クラスタ(OC4J)環境で Oracle ESB を使用すると、インバウンド・ファイル・アダプタ

などのエンドポイントからメッセージを使用する場合にインバウンド・トランザクション

ではない JCA リソース・アダプタで競合条件が発生します。

この問題を回避するには、以下の ESB エンドポイント・プロパティをサービス定義に追

加します。 clusterGroupId このエンドポイント・プロパティには、任意の値を割り当てることができます。実行時に、

クラスタの 1 つのノードだけがエンドポイントのアクティブ化を認識します。

Ilog JRules の意思決定サービス・サポート 意思決定サービスは、Ilog JRules との統合を自動的にサポートします。ただし、いくつか

の構成手順を手動で実行する必要があります。これらの手順をこの項で説明します。

前提条件 これらの手順では、Ilog JRules バージョン 6.1 の Rule Execution Server(RES)のインストー

ルと Oracle SOA Suite 10.1.3.3 への RES 管理アプリケーション(EAR ファイル)のデプロ

イが完了していると仮定します。これらの手順全体で、以下の環境変数は、インストール

したコンポーネントのディレクトリを示します。

JRULES_HOME - Ilog JRules 6.1 がインストールされるディレクトリ

ORACLE_HOME - Oracle SOA Suite がインストールされるディレクトリ

JDEV_HOME - Oracle JDeveloper がインストールされるディレクトリ

Oracle JDeveloper の設定 意思決定サービス・ウィザードから Ilog JRules RES に接続するには、Ilog JRules インス

トール・ディレクトリから Oracle JDeveloper インストール・ディレクトリに以下の JARファイルをコピーします。

1. Oracle JDeveloper を終了します。

2. オペレーティング・システムのコマンド・プロンプトで以下の手順を実行します。 cd ${JDEV_HOME}/integration mkdir thirdparty/ilog/lib

cp ${JRULES_HOME}/executionserver/lib/jrules-bres-session-java.jar ¥ ${JDEV_HOME}/integration/thirdparty/ilog/lib

3. Oracle JDeveloper を起動します。

25

Page 26: Oracle® SOA Suite...Oracle® SOA Suite 新機能 10g(10.1.3.3) E10381-02 2007 年9 月 本ドキュメントでは、Oracle SOA Suite 10.1.3.3のパッチ・セットで使用できる新機能につ

Oracle SOA Suite の設定 Oracle BPEL Process Manager をホストする Oracle Application Server インスタンスで、意思

決定サービスを実行する際に Ilog JRules を使用する構成を行う必要があります。

1. Oracle SOA Suite を停止します。 ${ORACLE_HOME}/opmn/bin/opmnctl stopall

2. ${ORACLE_HOME}/j2ee/oc4j_soa/config ディレクトリの server.xml ファイ

ルを開きます。

3. oracle.bpel.common 共有ライブラリを検索して、以下の JAR ファイルを追加し

ます。 <code-source path="${JRULES_

HOME}/executionserver/lib/jrules-bres-execution.jar"/>

<code-source path="${JRULES_HOME}/executionserver/lib/jrules-bres-manage-tools.jar"/>

<code-source path="${JRULES_HOME}/executionserver/lib/jrules-bres-session-java.jar"/>

<code-source path="${JRULES_HOME}/executionserver/lib/jrules-engine.jar"/>

<code-source path="${JRULES_HOME}/executionserver/lib/commons-digester.jar"/>

<code-source path="${JRULES_HOME}/executionserver/lib/commons-logging.jar"/>

<code-source path="${JRULES_HOME}/executionserver/lib/sam.jar"/> <code-source path="${JRULES_HOME}/executionserver/lib/xercesImpl.jar"/>

4. Oracle SOA Suite を起動します。 ${ORACLE_HOME}/opmn/bin/opmnctl startall

5. ${ORACLE_HOME}/bpel/system/services/config/DecisionServiceConfi

guration.xmlファイルを開きます。

6. 以下の太字のエントリを確認して、意思決定サービスで Ilog JRules を使用する構成が

行われていることを確認します。 <?xml version = '1.0' encoding = 'UTF-8'?> <!-- Configuration file for the decision service.

--> <configuration xmlns="http://xmlns.oracle.com/bpel/rules"> <!-- Rule Engine provider implementations

--> <ruleEngine name="Oracle" description="Oracle Business Rules 10.1.3.1.0">

<ruleEngineClass> oracle.bpel.services.rules.rpi.oracle.OracleRuleEngine

</ruleEngineClass> </ruleEngine> <ruleEngine name="Ilog" description="Ilog JRules 6.1">

<ruleEngineClass> oracle.bpel.services.rules.rpi.ilog.IlogRuleEngine

</ruleEngineClass> <properties>

<property name="jndiXuConnectorName"> eis/XUConnectionFactory

</property>

26

Page 27: Oracle® SOA Suite...Oracle® SOA Suite 新機能 10g(10.1.3.3) E10381-02 2007 年9 月 本ドキュメントでは、Oracle SOA Suite 10.1.3.3のパッチ・セットで使用できる新機能につ

<property name="ruleSessionProviderClass"> ilog.rules.bres.session.j2se.IlrJ2SERuleSessionProvider

</property> </properties>

</ruleEngine> <!-- Fact context implementations

--> <factContext name="OracleJaxb" description="Oracle JAXB 1.0"> <factContextClass> oracle.bpel.services.rules.rpi.JAXBFactContext

</factContextClass> </factContext> <factContext name="XOM" description="Ilog JRules 6.1 XOM"> <factContextClass> oracle.bpel.services.rules.rpi.ilog.XOMFactContext

</factContextClass> </factContext> </configuration>

RES 接続設定に応じて、以下のプロパティを構成できます。

jndiXuConnection - Ilog JRules Execution Unit リソース・アダプタ(XU)のコネ

クション・ファクトリの JNDI 名。デフォルト設定は、eis/XUConnectionFactory

です。

ruleSessionProviderClass - Ilog JRules RES でルール・セッションを確立する

Ilog JRules Java クラスの完全修飾名。デフォルト設定は、ilog.rules.bres.

session.j2se.IlrJ2SERuleSessionProviderです。

他の設定は、Ilog JRules API リファレンスを参照してください。追加のプロパティ

の指定が必要な場合があります。たとえば、ルール・セッション・クラスが

ilog.rules.bres.session.ejb.IlrManagedRuleSessionProvider また

は ilog.rules.bres.session.ejb.IlrRemoteRuleSessionProvider の

場合、適切な JNDI プロパティを構成して、JNDI InitialContext を初期化す

る必要があります。DecisionServiceConfiguration.xml ファイルの Ilog JRules ルール・エンジン構成のプロパティ要素にこれらのプロパティを追加でき

ます。

例1 DecisionServiceConfiguration.xmlのプロパティ設定

<ruleEngine name="Ilog" description="Ilog JRules 6.1"> <ruleEngineClass>

oracle.bpel.services.rules.rpi.ilog.IlogRuleEngine </ruleEngineClass> <properties>

<property name="jndiXuConnectorName"> eis/XUConnectionFactory

</property> <property name="ruleSessionProviderClass">

ilog.rules.bres.session.ejb.IlrRemoteRuleSessionProvider

27

Page 28: Oracle® SOA Suite...Oracle® SOA Suite 新機能 10g(10.1.3.3) E10381-02 2007 年9 月 本ドキュメントでは、Oracle SOA Suite 10.1.3.3のパッチ・セットで使用できる新機能につ

</property><property name="java.naming.factory.initial">

com.evermind.server.rmi.RMIInitialContextFactory </property> <property name="java.naming.provider.url">

ormi://localhost:23791/rulesession </property> <property name="java.naming.security.principal">

oc4jadmin </property> <property name="java.naming.security.credentials">

welcome1 </property>

</properties> </ruleEngine>

DecisionServiceConfiguration.xml ファイルの Ilog JRules 意思決定サービス構成のプロパ

ティは、デフォルト値を示します。ただし、特定の意思決定サービス・パートナ・リ

ンク構成によって、値が上書きされる場合があります。これを行うには、以下の太字

で示されたプロパティで BPEL プロジェクトの意思決定サービス構成ファイル

decisionservices.decsの ruleEngineProvider要素を変更します。 <ruleEngineProvider provider="Ilog" name="jrules61_myhost">

<repository type="Service"> <service>

<url>service:jmx:rmi:///opmn://myhost.com:6003/home</url> <username>oc4jadmin</username> <password encrypted="true">AK6qvYcrlNMqnYt1uPZFjw==</password>

</service> </repository> <properties>

<property name="jmxConnectorClass"> oracle.bpel.services.rules.rpi.ilog.OracleJmxConnector

</property> <property name="ruleSessionProviderClass">

ilog.rules.bres.session.j2se.IlrJ2SERuleSessionProvider </property>

</properties>

</ruleEngineProvider>

制限 この項では、Ilog JRules との意思決定サービスの統合に関する既知の制限について説明し

ます。

パラメータ型のサポート - 意思決定サービスとして公開するルール・セットの入出力

パラメータは、XML スキーマ要素から派生する必要があります。意思決定サービス

は、JavaBeans などに基づく型モデルを現在サポートしていません。

Ilog JRules 意思決定サービスのデプロイメント - デプロイメント前に特定の Ilog JRulesデプロイメント要素を意思決定サービスの Web アーカイブ・スイートにコピーする必

要があります。これには、JRules XU リソース・アダプタ(ra.xml)の構成ファイル

や特定の Ilog ファイルが含まれる場合があります。詳しくは Ilog JRules ドキュメント

を参照してください。

28

Page 29: Oracle® SOA Suite...Oracle® SOA Suite 新機能 10g(10.1.3.3) E10381-02 2007 年9 月 本ドキュメントでは、Oracle SOA Suite 10.1.3.3のパッチ・セットで使用できる新機能につ

障害管理フレームワーク リリース 10.1.3.3 は、BPEL プロセスの障害を処理する汎用的な障害管理フレームワーク

を提供します。プロセスの起動アクティビティの実行中に障害が発生すると、このフレー

ムワークが障害を捕捉し、アクティビティに関連する障害ポリシー・ファイルに定義され

たユーザー指定アクションを実行します。障害によって人の介入が必要になった場合、

Oracle BPEL Control からリカバリ・アクションを実行します。障害管理フレームワークは、

スコープ・アクティビティの Catch ブランチを使用した BPEL プロセスの設計の代替機能

を提供します。

以下のトピックについて説明します。

障害管理フレームワークの概要

障害ポリシーの設計

障害管理フレームワークのユースケース

Javaアクションの障害ポリシー

参照:障害管理フレームワークのサンプルは、以下のとおりです。 SOA_ORACLE_ HOME¥bpel¥samples¥tutorials¥122.DBAdapter¥InsertWithCatch

障害管理フレームワークの概要 この項では、障害管理フレームワークを構成するコンポーネントの概要について説明します。

fault-policy.xsd というスキーマが障害管理ポリシーを定義するために提供され

ます。

障害管理フレームワークは、起動アクティビティのすべての障害(ビジネスおよび実

行時)を捕捉します。

障害ポリシー・ファイルは、障害条件とそれに対応する障害リカバリ・アクションを

定義します。各障害条件には、処理対象の特定の障害または一連の障害とその対応ア

クションを指定します。一連のアクションは、障害ポリシー・ファイルの ID によっ

て識別されます。

一連の条件によって、障害ポリシーと呼ばれるアクションが起動します。

障害ポリシーは、各ドメインの fault-policies というディレクトリの下の複数の

ファイルに定義されます。 SOA_ORACLE_HOME¥bpel¥domains¥domain_name¥config¥fault-policies¥ domain_nameは、ドメインの名前です(たとえば、defaultまたは作成した追加の

ドメイン)。

障害ポリシーは、次のレベルで関連付けることができます。

- パートナ・リンク

- ポート・タイプ

- プロセス

- ドメイン

29

Page 30: Oracle® SOA Suite...Oracle® SOA Suite 新機能 10g(10.1.3.3) E10381-02 2007 年9 月 本ドキュメントでは、Oracle SOA Suite 10.1.3.3のパッチ・セットで使用できる新機能につ

障害ポリシー・バインディング・ファイルは、障害ポリシー・ファイルに定義された

ポリシーをパートナ・リンク、ポート・タイプ、プロセス、およびドメインに関連付

けます。フレームワークは、次のファイル(優先順)の障害ポリシー・バインディン

グを検索します。

- プロセス・レベルの bpel.xml ファイル

- ドメイン・レベルのファイル: SOA_ORACLE_HOME¥bpel¥domains¥domain_name¥config¥fault-bindings.xml

注:障害管理フレームワークで構成された障害ポリシーは、BPELプロセスのス

コープ・アクティビティのCatchブランチで定義された障害処理を上書きします。

障害管理フレームワークを構成して、障害処理をCatchブランチに再スローできま

す。

障害ポリシーの設計 この項では、障害ポリシーの設計方法について説明します。以下のトピックについて説明

します。

障害ポリシー・バインディング解決の動作の理解

タスク 1:自動障害リカバリ用の障害ポリシー・ファイルの作成

タスク 2:障害ポリシーの関連付け

障害ポリシー・バインディング解決の動作の理解

障害ポリシー・バインディング・ファイルは、障害ポリシー・ファイルで定義されたポリ

シーをパートナ・リンク、ポート・タイプ、プロセス、およびドメインに関連付けます。

フレームワークは、次の順番で障害ポリシー・バインディングを識別します。

bpel.xmlのパートナ・リンク・バインディング

bpel.xmlのポート・タイプ・バインディング

bpel.xmlのプロセス・バインディング

ドメインに指定されたパートナ・リンク・バインディング

ドメインに指定されたポート・タイプ・バインディング

ドメインに指定されたプロセス・バインディング

解決プロセスの実行中に条件に一致するアクションがなかった場合、フレームワークは解

決に失敗したと仮定して、次の解決レベルへ移行します。

たとえば、起動アクティビティの faultname="abc"の障害などです。bpel.xmlファイ

ルに指定される次のポリシー・バインディングがあります。

パートナ・リンク名は policy-id-1にバインドされます

ポート・タイプは policy-id-2にバインドされます

プロセスは policy-id-3にバインドされます

SOA_ORACLE_HOME¥bpel¥domains¥domain_name¥config¥fault-bindings.xml

ファイルでは、次のバインディングも指定されます。

パートナ・リンク名は policy-id-4にバインドされます

30

Page 31: Oracle® SOA Suite...Oracle® SOA Suite 新機能 10g(10.1.3.3) E10381-02 2007 年9 月 本ドキュメントでは、Oracle SOA Suite 10.1.3.3のパッチ・セットで使用できる新機能につ

ポート・タイプは policy-id-5にバインドされます

プロセスは policy-id-6にバインドされます

障害管理フレームワークは、次のように動作します。

初に解決バインディング(この場合、policy-id-1)と照合します。

障害が解決しない場合、次の照合(この場合、policy-id-2)に移動します。

障害が解決しない場合、次の照合(policy-id-3、policy-id-4、policy-id-5、

および policy-id-6)に移動します。

まだ障害が解決しない場合は、障害が BPEL 障害 Catch ブランチに送信されます。

タスク 1:自動障害リカバリ用の障害ポリシー・ファイルの作成

1. 障害管理フレームワークを使用する各ドメインの config ディレクトリの下に

fault-policiesディレクトリを作成します。 SOA_ORACLE_HOME¥bpel¥domains¥domain_name¥config¥fault-policies

2. fault-policies ディレクトリに障害ポリシー・ファイル(たとえば、fault-

policy.xml)を作成します。このファイルには、特定のタスクを実行する

conditionセクションおよび actionセクションが含まれます。

3. 障害ポリシー・ファイルの conditionセクションを定義します。

conditionセクションに関する以下の詳細に注意してください。

- このセクションは、faultNameに基づく条件を提供します。

- 複数の条件を faultNameに構成できます。

- 各条件には、1 つの test セクション(XPath 式)と action セクションが

あります。

- test セクション(XPath 式)は、障害に使用できる障害変数に対して評価

されます。

- action セクションには、同じファイルに定義されたアクションの参照があ

ります。

- 障害に使用できる障害変数の問合せのみを実行できます。

- 条件評価の順番は、ドキュメントの順番で決定されます。

次の表は、障害ポリシー・ファイルの condition セクションの使用例を示しています。

condition セクションに定義されたすべてのアクションは、action セクションのアク

ションに関連付ける必要があります。

条件例 障害ポリシー・ファイルの構文

この条件は、code = "WSDLFailure"の障害変数を確認します。 ora-terminateのactionを指定します。

<condition> <test>$fault.code/code="WSDLReading Error"</test> <action ref="ora-terminate"/>

</condition>

31

Page 32: Oracle® SOA Suite...Oracle® SOA Suite 新機能 10g(10.1.3.3) E10381-02 2007 年9 月 本ドキュメントでは、Oracle SOA Suite 10.1.3.3のパッチ・セットで使用できる新機能につ

条件例 障害ポリシー・ファイルの構文

test 条件が提供されていません。これは、

特定の faultNameの CatchAll 条件です。

<condition> <action ref="ora-rethrow"/>

</condition>

faultName 名前属性が欠落している場合、

これは QName を含む障害用の CatchAll ブランチを示します。

<faultName > . . . </faultName>

4. 障害ポリシー・ファイルの actionセクションを定義します。

actionセクションに関する以下の詳細に注意してください。

- アクションのリストは拡張できません。

- 障害ポリシー・ファイルの検証は、ドメインの起動時に実行されます。新し

いハンドラを有効にするために Oracle BPEL Server を再起動する必要があり

ます。

次の表は、障害ポリシー・ファイルの action セクションのいくつかの使用例を示

しています。一部の障害に自動リカバリ・アクションを設定できます。リトライ

および人の介入を除くすべてのリカバリ・アクションで、フレームワークはアク

ションを同期実行します。

リカバリ・アクション 障害ポリシー・ファイルの構文

リトライ - アクティビティをリトライ

する次のアクションを提供します。 指定した回数のリトライ リトライ間の遅延の提供 指数バックオフの提供 リトライ失敗アクションの提供 リトライ成功アクションの提供

注:指数バックオフは、遅延を 2 倍にし

た時間に次のリトライが実行されること

を示します。遅延とは、現在のリトライ

間隔のことです。たとえば、現在のリト

ライ間隔が 2 秒の場合、次のリトライは

4 秒、その次は 8 秒、その次は 16 秒と

retryCount 値に到達するまで実行さ

れます。

<Action id="ora-retry"> <Retry>

<retryCount>3</retryCount> <retryInterval>2</retryInterval> <exponentialBackoff/> <retryFailureAction ref="ora-java"/> <retrySuccessAction ref="ora-java"/>

</Retry> </Action>

以下の詳細に注意してください。 複数の WSDL の場所を使用できる場合、Oracle BPEL

Server は次の場所への接続を遅延の n 倍試行します。

フレームワークは、リトライ・カウントごとに指定さ

れたそれぞれの WSDL の場所への接続を試行します。 リトライに成功すると、フレームワークはリトライ成

功アクションに連結します。 すべてのリトライに失敗すると、フレームワークはリ

トライ失敗アクションに連結します。

32

Page 33: Oracle® SOA Suite...Oracle® SOA Suite 新機能 10g(10.1.3.3) E10381-02 2007 年9 月 本ドキュメントでは、Oracle SOA Suite 10.1.3.3のパッチ・セットで使用できる新機能につ

リカバリ・アクション 障害ポリシー・ファイルの構文

人の介入 - 現在のアクティビティで処

理が停止します。Oracle BPEL Control に移動して、このインスタンスの複数のア

クションを実行できます。 参照:41 ページの"Oracle BPEL Controlの人の介入"

<Action id="ora-human-intervention"> <humanIntervention/></Action>

プロセスの終了 - プロセスを終了します <Action id="ora-terminate"><abort/></Action>

Java コード - 外部の Java クラスを実行

できます。 参照:47 ページの"Javaアクションの障

害ポリシー"

<Action id="ora-java"> <!-- this is user provided custom java class--> <javaAction className="mypackage.myClass" defaultAction="ora-terminate"> <returnValue value="REPLAY" ref="ora-terminate"/> <returnValue value="RETRHOW" ref="ora-rethrow-fault"/> <returnValue value="ABORT" ref="ora-terminate"/> <returnValue value="RETRY" ref="ora-retry"/> <returnValue value="MANUAL" ref="ora-human-intervention"/> </javaAction> </Action>

障害の再スロー - フレームワークは、

障害を BPEL 障害ハンドラ(スコープ・

アクティビティの Catch ブランチ)に送

信します。何も使用できない場合、障害

が送信されます。

<Action id="ora-rethrow-fault"><rethrowFault/></Action>

再生スコープ - 再生障害が発生します <Action id="ora-replay-scope"><replayScope/></Action>

注意事項:

汎用的な障害ハンドラ拡張機能を作成するオプションはありません。障害ポ

リシー・アクションのリストは、フレームワークによって制限されます。

先行するリカバリ・アクションのタグ名(ora-retry、ora-human-intervention、ora-terminate など)が唯一のサンプルです。これらの

名前は環境に適した名前に置き換えることができます。

以下の例は、condition セクションおよび action セクションを完全に定義した障害ポ

リシー・ファイルを示しています。

注:障害ポリシー・ファイルの名前は、固有の名前に制限されていません。ただ

し、ファイルは、SOA_ORACLE_HOME¥bpel¥system¥xmllib フォルダの fault

policy.xsdスキーマに準拠する必要があります。

33

Page 34: Oracle® SOA Suite...Oracle® SOA Suite 新機能 10g(10.1.3.3) E10381-02 2007 年9 月 本ドキュメントでは、Oracle SOA Suite 10.1.3.3のパッチ・セットで使用できる新機能につ

<?xml version="1.0" encoding="UTF-8"?> <faultPolicy version="2.0.1" id="CRM_ServiceFaults" xmlns:env=http://schemas.xmlsoap.org/soap/envelope/xmlns:xs=http://www.w3.org/2001/XMLSchemaxmlns=http://schemas.oracle.com/bpel/faultpolicyxmlns:xsi=http://www.w3.org/2001/XMLSchema-instancexsi:schemaLocation="http://schemas.oracle.com/bpel/faultpolicy C:¥oc4j¥bpel¥system¥xmllib¥fault-policy.xsd"> <Conditions> <!-- Fault if wsdlRuntimeLocation is not reachable --> <faultName xmlns:bpelx="http://schemas.oracle.com/bpel/extension"

name="bpelx:remoteFault"> <condition>

<test>$fault.code/code="WSDLReadingError"</test> <action ref="ora-terminate"/>

</condition> <condition>

<action ref="ora-java"/> </condition>

</faultName> <!-- Fault if location port is not reachable--> <faultName xmlns:bpelx="http://schemas.oracle.com/bpel/extension"

name="bpelx:bindingFault"> <!--ORA-00001: unique constraint violated on insert--> <condition>

<test>$fault.code/code="1"</test> <action ref="ora-java"/>

</condition> <!--ORA-01400: cannot insert NULL --> <condition>

<test>$fault.code/code="1400"</test> <action ref="ora-terminate"/>

</condition> <!--ORA-03220: required parameter is NULL or missing --> <condition>

<test>$fault.code/code="3220"</test> <action ref="ora-terminate"/>

</condition> <condition>

<action ref="ora-retry-crm-endpoint"/> </condition>

</faultName> <!-- Business faults --> <!-- Fault comes with a payload of error, make sure the name space--> <!-- is provided here or at root level --> <faultName xmlns:credit="http://services.otn.com" name="credit:NegativeCredit">

<condition> <test>$fault.payload/credit:error="Bankruptcy Report"</test> <action ref="ora-retry"/>

</condition> <condition>

<test>$fault.payload/credit:error="Illegal SSN"</test> <action ref="ora-terminate"/>

</condition> </faultName> </Conditions> <Actions>

<Action id="ora-retry">

34

Page 35: Oracle® SOA Suite...Oracle® SOA Suite 新機能 10g(10.1.3.3) E10381-02 2007 年9 月 本ドキュメントでは、Oracle SOA Suite 10.1.3.3のパッチ・セットで使用できる新機能につ

<retry> <retryCount>3</retryCount> <retryInterval>2</retryInterval> <exponentialBackoff/> <retryFailureAction ref="ora-java"/> <retrySuccessAction ref="ora-java"/>

</retry> </Action> <Action id="ora-retry-crm-endpoint">

<retry> <retryCount>5</retryCount> <retryFailureAction ref="ora-java"/> <retryInterval>5</retryInterval> <retrySuccessAction ref="ora-java"/>

</retry> </Action> <Action id="ora-replay-scope">

<replayScope/> </Action> <Action id="ora-rethrow-fault">

<rethrowFault/> </Action> <Action id="ora-human-intervention">

<humanIntervention/> </Action> <Action id="ora-terminate">

<abort/> </Action> <Action id="ora-java"> <!-- this is user provided class-->

<javaAction className="com.oracle.bpel.client.config.faultpolicy.TestJavaAction"

defaultAction="ora-terminate" propertySet="prop-for-billing"> <returnValue value="REPLAY" ref="ora-terminate"/> <returnValue value="RETRHOW" ref="ora-rethrow-fault"/> <returnValue value="ABORT" ref="ora-terminate"/> <returnValue value="RETRY" ref="ora-retry"/> <returnValue value="MANUAL" ref="ora-human-intervention"/>

</javaAction> </Action>

</Actions> <Properties>

<propertySet name="prop-for-billing"> <property name="user_email_recipient">bpeladmin</property> <property name="email_recipient">[email protected]</property> <property name="email_recipient">[email protected]</property> <property name="email_threshold">10</property> <property name="sms_recipient">+429876547</property> <property name="sms_recipient">+4212345</property> <property name="sms_threshold">20</property> <property name="user_email_recipient">john</property>

</propertySet> <propertySet name="prop-for-order">

<property name="email_recipient">[email protected]</property> <property name="email_recipient">[email protected]</property> <property name="email_threshold">10</property> <property name="sms_recipient">+42222</property> <property name="sms_recipient">+423335</property> <property name="sms_threshold">20</property>

35

Page 36: Oracle® SOA Suite...Oracle® SOA Suite 新機能 10g(10.1.3.3) E10381-02 2007 年9 月 本ドキュメントでは、Oracle SOA Suite 10.1.3.3のパッチ・セットで使用できる新機能につ

</propertySet> </Properties>

</faultPolicy>

タスク 2:障害ポリシーの関連付け

1. 使用している障害ポリシー・バインディングのレベルに障害ポリシーを関連付けます。

タスク 2a:パートナ・リンク、ポート・タイプ、またはプロセスへの障害ポリ

シーの関連付け

タスク 2b:ドメイン・レベルでのパートナ・リンク、ポート・タイプ、またはプ

ロセスへの障害ポリシーの関連付け

タスク 2a:パートナ・リンク、ポート・タイプ、またはプロセスへの障害ポリシーの関

連付け 特定のパートナ・リンク、ポート・タイプ、またはプロセス全体を障害ポリシー

に関連付けることができます。この方法によって、次の機能が実現します。

"タスク 2b:ドメイン・レベルでのパートナ・リンク、ポート・タイプ、またはプロ

セスへの障害ポリシーの関連付け"よりも障害ポリシー・バインディングの粒度の高

い方法を提供します

"タスク 2b:ドメイン・レベルでのパートナ・リンク、ポート・タイプ、またはプロ

セスへの障害ポリシーの関連付け"で定義した障害ポリシー・バインディングを上書

きします

1. 新しいセクションをbpel.xmlファイルに追加します。以下の詳細に注意してください。

1 つの障害ポリシーだけを 1 つのプロセス、ポート・タイプ、またはパートナ・

リンクにバインドできます。

複数のパートナ・リンクを 1 つの障害ポリシーにバインドできます。

複数のポート・タイプを 1 つの障害ポリシーにバインドできます。

以下に例をあげます。 <faultPolicyBindings>

<process faultPolicy="BillingFaults"/> <!-----Fault on any plink/port type not specified---> <!-----below uses policy BillingFaults---> <partnerLink xmlns:credit="http://services.otn.com" faultPolicy="CRM_

ServiceFaults"> <name>UnitedLoanService</name> <!-----Fault on these 2 plink will use policy CRM_ServiceFaults---> <name>StarLoanService</name> <portType>credit:CreditRatingService</portType> <!----Fault on these 2 port types uses policy CRM_ServiceFaults---> <portType xmlns:united="http://services.uninted.com/loan"> united:UnitedLoanService</portType>

</partnerLink>

<partnerLink faultPolicy="myOtherFaults"> <name>AnotherPartnerLink</name>

<!-----Fault on this plink uses policy myOtherFaults---> </partnerLink>

</faultPolicyBindings>

タスク 2b:ドメイン・レベルでのパートナ・リンク、ポート・タイプ、またはプロセス

への障害ポリシーの関連付け ドメイン全体を障害ポリシーに関連付けることができます。

36

Page 37: Oracle® SOA Suite...Oracle® SOA Suite 新機能 10g(10.1.3.3) E10381-02 2007 年9 月 本ドキュメントでは、Oracle SOA Suite 10.1.3.3のパッチ・セットで使用できる新機能につ

1. SOA_ORACLE_HOME¥bpel¥domains¥domain_name¥config ディレクトリの fault-

bindings.xmlファイルのドメイン全体に適用可能な障害ポリシーを提供します。

以下に例をあげます。 <faultPolicyBindings version="2.0.1" xmlns=http://schemas.oracle.com/bpel/faultpolicyxmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >

<process faultPolicy="BillingFaults"/> <partnerLink faultPolicy="CRM_ServiceFaults">

<name>StarLoanService</name> <name>BillCardService</name> <portType xmlns:credit="http://services.otn.com"> credit:CreditRatingService</portType>

<portType xmlns:united="http://services.uninted.com/loan"> united:UnitedLoanService</portType>

</partnerLink> </faultPolicyBindings> このファイルのポート・タイプに提供されるバインディングは、ドメインのすべての

プロセスに使用されます。これらのプロセスには、異なるパートナ・リンク名を使用

できます。ポート・タイプが同じ場合、このファイルに指定された障害ポリシーが使

用されます。

注:障害ポリシー・バインディング・ファイルには、fault-bindings.xml と

いう名前を付ける必要があります。この名前は、SOA_ORACLE_HOME¥bpel¥ system¥xmllib¥fault-bindings.xsd のスキーマに準拠する必要がありま

す。

障害管理フレームワークのユースケース このユースケースでは、BPEL プロセスに使用される障害管理フレームワークの設計時段

階および実行時段階を説明します。

以下のトピックについて説明します。

BPELプロセスおよび障害ポリシーの設計

シナリオ 1:自動障害リカバリ

シナリオ 2:障害リカバリに対する人の介入

Oracle BPEL Controlの人の介入

障害ロギング

BPEL プロセスおよび障害ポリシーの設計 この項では、障害管理フレームワークを使用した BPEL プロセスおよび障害ポリシーの設

計方法のユースケースについて説明します。

以下のトピックについて説明します。

BPELプロセス設計

ドメインの障害ポリシー・ファイル

bpel.xml ファイルの障害ポリシー・バインディングの定義

BPELプロセス設計 図 1のBPELプロセスには、次のアクティビティが含まれます。

37

Page 38: Oracle® SOA Suite...Oracle® SOA Suite 新機能 10g(10.1.3.3) E10381-02 2007 年9 月 本ドキュメントでは、Oracle SOA Suite 10.1.3.3のパッチ・セットで使用できる新機能につ

bpelx:bindingFault の障害ハンドラを使用した Scope_1 スコープ・アクティビティ

2 つのパートナ・リンクに接続される 2 つの起動アクティビティ

図 1 BPEL プロセスのスコープ・アクティビティ

ドメインの障害ポリシー・ファイル 図 1に示されているように、2 つの起動アクティビ

ティによって呼び出される 2 つのパートナ・リンクがあります。両方の起動アクティビ

ティの障害を処理するため、障害管理フレームワークを使用して障害ポリシー・ファイル

が作成されます。障害ポリシーは、Scope_1 スコープ・アクティビティのbpelx:bindingFaultのCatchブランチの障害処理を上書きします。例 2は、GetCreditRatingパートナ・リンクの

defaultドメインに作成された 初の障害ポリシー・ファイル(CreditRating.xml)を示

しています。

例2 SOA_ORACLE_HOME¥bpel¥domains¥default¥config¥fault-policies¥CreditRating.xml

<?xml version="1.0" encoding="UTF-8"?> <faultPolicy version="2.0.1" id="CreditRating " 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" xsi:schemaLocation="http://schemas.oracle.com/bpel/faultpolicy

C:¥oc4j¥bpel¥system¥xmllib¥fault-policy.xsd"> <Conditions>

<!-- Fault if location port is not reachable--> <faultName xmlns:bpelx="http://schemas.oracle.com/bpel/extension" name="bpelx:bindingFault">

<condition> <action ref="ora-retry-crm-endpoint"/>

38

Page 39: Oracle® SOA Suite...Oracle® SOA Suite 新機能 10g(10.1.3.3) E10381-02 2007 年9 月 本ドキュメントでは、Oracle SOA Suite 10.1.3.3のパッチ・セットで使用できる新機能につ

</condition> </faultName>

</Conditions> <Actions>

<Action id="ora-retry"> <retry>

<retryCount>3</retryCount> <retryInterval>2</retryInterval> <exponentialBackoff/> <retryFailureAction ref="ora-java"/>

</retry> </Action> <Action id="ora-retry-crm-endpoint">

<retry> <retryCount>5</retryCount> <retryInterval>5</retryInterval> <retryFailureAction ref="ora-java"/> <retrySuccessAction ref="ora-java"/>

</retry> </Action> <Action id="ora-replay-scope"><replayScope/></Action> <Action id="ora-rethrow-fault"><rethrowFault/></Action> <Action id="ora-human-intervention">

<humanIntervention/> </Action> <Action id="ora-terminate"><abort/></Action> <Action id="ora-java">

<!-- this is user provided class--> <javaAction className="myPackage.LogFault" defaultAction="ora-terminate"> Note: property set is optional

<returnValue value="REPLAY" ref="ora-terminate"/> <returnValue value="RETHROW" ref="ora-rethrow-fault"/> <returnValue value="ABORT" ref="ora-terminate"/> <returnValue value="RETRY" ref="ora-retry"/> <returnValue value="MANUAL" ref="ora-human-intervention"/>

</javaAction> </Action>

</Actions> -----Note: Properties section is optional---- </faultPolicy> 例 3は、ApplyCreditパートナ・リンクのdefaultドメインに作成された 2 つ目の障害ポリ

シー・ファイル(ApplyCredit.xml)を示しています。例 3のactionセクションの内

容は、例 2と同じです。

例3 SOA_ORACLE_HOME¥bpel¥domains¥default¥config¥fault-policies¥Apply-Credit.xml

<FaultPolicy id="ApplyCredit"> <!--------------------------Conditions-------------------------------> <Conditions>

<faultName name="{http://schemas.oracle.com/bpel/extension}bindingFault"> <condition>

<action ref="ora-human-intervention"/> </condition>

</faultName> </Conditions>

<Actions>

39

Page 40: Oracle® SOA Suite...Oracle® SOA Suite 新機能 10g(10.1.3.3) E10381-02 2007 年9 月 本ドキュメントでは、Oracle SOA Suite 10.1.3.3のパッチ・セットで使用できる新機能につ

. . .

. . .

. . . </Actions> bpel.xml ファイルの障害ポリシー・バインディングの定義 障害ポリシー・バインディン

グは、bpel.xmlファイルに定義されます。以下の詳細に注意してください。

CreditRating の障害によって、フレームワークでの CreditRating 障害ポリシー

の使用が発生します。

ApplyCredit の障害は、プロセス・レベル・バインディングに戻ってからフレーム

ワークでの ApplyCredit障害ポリシーの使用が発生します。 <faultPolicyBindings>

<process faultPolicy=" ApplyCredit "/> <!--Process binds to ApplyCredit policy--> <partnerLink faultPolicy="CreditRating ">

<name>creditRatingService</name> <!--partner link binds to CreditRating policy--> <portType xmlns:credit="http://services.otn.com">

StarRatingService</portType> </partnerLink>

</faultPolicyBindings>

シナリオ 1:自動障害リカバリ

このシナリオでは、自動障害リカバリ・プロセスについて説明します。CreditRating エン

ドポイントは使用できません。一連の次のアクションが発生します。

Invoke_1 アクティビティによって、フレームワークに捕捉される障害が発生します。

障害ポリシー解決プロセスが起動します。

- CreditRating の障害ポリシーが識別されます。

アクション解決プロセスが起動します。

- 障害ポリシーには、bpelx:bindingFaultのCatchブランチがあります。38 ページ

の例 2に示されているCreditRating.xmlファイルに定義されたora-retry-

crm-endpointアクションが識別されます。

アクションの詳細を取得します。

- これは、リトライ・カウントが 5、リトライ間隔が 5 秒、リトライ失敗アクション

が ora-java、リトライ成功アクションが ora-java のリトライ・アクション

です。

- リトライ・アクションは、非同期操作です。

アクティビティと他のポリシー関連データをデハイドレートします。

障害管理フレームワークがリトライを試行します。

すべてのリトライが失敗します。

RetryFailureAction属性は、ora-javaです。

アクション解決プロセスの手順が繰り返されます。

ora-javaが同期操作なので、デハイドレーションは実行されずに myPackage.

LogFaultの Java コードが起動されます。

Java コードは文字列をログに残して RETHROW を返します。これによって、ora-

rethrow-faultに連結されます。

40

Page 41: Oracle® SOA Suite...Oracle® SOA Suite 新機能 10g(10.1.3.3) E10381-02 2007 年9 月 本ドキュメントでは、Oracle SOA Suite 10.1.3.3のパッチ・セットで使用できる新機能につ

BPEL プロセスに定義された bindingFault の Scope_1 障害ハンドラは、例外を捕

捉します。

リトライに成功すると、フレームワークは ora-java に連結します。ただし、このオブ

ジェクトの異なるメソッドを起動します。

注:BPEL プロセスに障害ハンドラがあっても、フレームワークが例外を処理し

ます。

シナリオ 2:障害リカバリに対する人の介入 このシナリオでは、人の介入について説明します。ApplyCredit サービス・エンドポイント

は、ビジネス障害を受け取ります。一連の次のアクションが発生します。

Invoke_2 アクティビティによって、フレームワークに捕捉される障害が発生します。

障害ポリシー解決プロセスが起動します。

- パートナ・リンク・バインディングはポリシーを解決しません。プロセス・レベ

ル・バインディングの解決が試行されます。

- ApplyCredit 障害ポリシーが識別されます。

アクション解決プロセスが起動します。

- 39 ページの例 3に示されているApplyCredit.xmlファイルに定義されたora-

human-interventionアクションが識別されます。

アクションの詳細を取得します。

- これは、一時停止アクションです。このアクティビティだけが一時停止状態にな

ります。 - 一時停止アクション(人の介入)は、非同期操作です。

アクティビティと他のポリシー関連データをデハイドレートします。

プロセスの他のアクティビティは影響を受けません。

Oracle BPEL Control へ移動し、次のアクションを実行します。

Oracle BPEL Control の人の介入 1. Oracle BPEL Control の障害が発生したインスタンスに移動します。

2. 「Activities」タブをクリックします。

Activity State リストによって、現在の状態に基づいたアクティビティを表示できます。

この例では、現在ペンディングになっているアクティビティだけが表示されています。

41

Page 42: Oracle® SOA Suite...Oracle® SOA Suite 新機能 10g(10.1.3.3) E10381-02 2007 年9 月 本ドキュメントでは、Oracle SOA Suite 10.1.3.3のパッチ・セットで使用できる新機能につ

状態 説明

All States 状態に関係なくすべてのアクティビティを表示します。

Open オープンなアクティビティだけを表示します。

Completed 完了したアクティビティだけを表示します。

Cancelled キャンセルされたアクティビティだけを表示します。

Stale 古いアクティビティだけを表示します。

Pending ペンディング・アクティビティだけを表示します。

3. 障害が発生したアクティビティをクリックします。

Available Actions リストには、一連の使用可能なリカバリ・アクションが表示されます。

人の介入によってリカバリ用にアクティビティがマークされると、次の表のリカバ

リ・アクションが使用される可能性があります。

リカバリ・アクション 説明

Retry リトライ成功アクションを提供するオプションとともにアクティビティ

をリトライします。 Abort 障害が発生したアクティビティのプロセス・インスタンスを終了します。

42

Page 43: Oracle® SOA Suite...Oracle® SOA Suite 新機能 10g(10.1.3.3) E10381-02 2007 年9 月 本ドキュメントでは、Oracle SOA Suite 10.1.3.3のパッチ・セットで使用できる新機能につ

リカバリ・アクション 説明 Rethrow 例外を再スローし、BPEL 障害ハンドラ(Catch ブランチ)を使用して障

害を処理できるようにします。明示的な再スロー障害ポリシーが提供さ

れていない限り、デフォルトで、すべての例外が障害管理フレームワー

クによって捕捉されます。 参照:45 ページの"例外の再スロー"

Replay 障害が発生したスコープを再生します。 Continue アクティビティをスキップします。フレームワークは、障害が発生しな

いで完了したアクティビティを仮定します。 4. 「Fault Details」を開いて、障害が発生したインスタンスの詳細を表示します。

注:Oracle BPEL Process Manager API を使用すると、中断、リトライ(成功アク

ションを使用)、続行、再スロー、および再生のリカバリ・オプションをプログラ

ムで実行できます。

5. 次の項を参照して、これらのリカバリ・アクションを使用します。

アクティビティのリトライ

入力変数の内容の変更とリトライ

出力の設定と続行

スコープの再生

例外の再スロー

プロセスの中断

中断、入力変更、新しいインスタンスの作成

障害が発生した複数のアクティビティのリトライ

アクティビティのリトライ このリカバリ・アクションを使用するシナリオの例は、ネッ

トワーク・エラーによってサービス・プロバイダを使用できないために障害が発生した場

合です。これで、ネットワーク・エラーが解決します。

1. 「Recover」をクリックして、アクティビティをリトライします。

43

Page 44: Oracle® SOA Suite...Oracle® SOA Suite 新機能 10g(10.1.3.3) E10381-02 2007 年9 月 本ドキュメントでは、Oracle SOA Suite 10.1.3.3のパッチ・セットで使用できる新機能につ

自動障害リカバリによって使用される障害ポリシーで使用可能なすべての Java アクション

がドロップダウン・リストに表示されます。

リトライ・アクションに関する以下の詳細に注意してください。

リトライで障害が再度発生した場合、フレームワークは、以前と同じ手順を実行して

このポイントに戻ります。

同じ障害が確認された場合、人の介入がアクティビティにマークされます。

リトライが成功すると、フレームワークは、ここで選択したアクションのカスタム

Java クラスの handleRetrySuccessを起動します。

入力変数の内容の変更とリトライ 障害が発生したアクティビティによって使用される入

力変数の内容を修正できます。障害が発生したこのアクティビティに使用できるすべての

変数がドロップダウン・リストに示されます。

1. 変数を選択し、「Get」をクリックします。これによって、障害が発生したアクティ

ビティのコンテキストで変数の値が取得されます。

2. テキスト領域の変数の内容を変更します。次に、「Set」をクリックして、障害が発

生したアクティビティのコンテキストで変数を修正します。

「Skeleton Value」ボタンを使用すると、実際に値を表示しなくても編集する変数を取

得できます。

44

Page 45: Oracle® SOA Suite...Oracle® SOA Suite 新機能 10g(10.1.3.3) E10381-02 2007 年9 月 本ドキュメントでは、Oracle SOA Suite 10.1.3.3のパッチ・セットで使用できる新機能につ

3. 使用可能なアクション・リストの「Retry」を選択し、「Recover」をクリックしてア

クティビティをリトライします。

出力の設定と続行 このリカバリ・アクションを使用するシナリオの例は、サービス・プ

ロバイダ請求システムを使用できない場合です。次のいずれかを決定します。

請求のコールをスキップする

手動で請求を行って現在のインスタンスを続行する

注:このアクションは、同期プロセスにのみ役立ちます。非同期プロセスの場

合、Oracle BPEL Server が一致する受信アクティビティで待機するため、起動アク

ティビティに成功とマークしても役立ちません。

1. 44 ページの"入力変数の内容の変更とリトライ"に示されているように、変数データを

取得して修正します。

2. アクションとして「Continue」を選択し、「Recover」をクリックしてアクティビ

ティに成功とマークします。アクティビティに成功とマークすると、障害が発生した

アクティビティは無視され、処理が次のアクティビティに進みます。

スコープの再生 障害が発生したスコープを再生できます。

1. 44 ページの"入力変数の内容の変更とリトライ"に示されているように、変数データを

取得して修正します。

2. アクションとして「Replay」を選択し、「Recover」をクリックしてスコープを再生

します。

例外の再スロー 例外を再スローし、BPEL障害ハンドラ(Catchブランチ)を使用して障害

を処理できます。

1. 44 ページの"入力変数の内容の変更とリトライ"に示されているように、変数データを

取得して修正します。

2. アクションとして「Rethrow」を選択し、「Recover」をクリックして障害を再スロー

します。

45

Page 46: Oracle® SOA Suite...Oracle® SOA Suite 新機能 10g(10.1.3.3) E10381-02 2007 年9 月 本ドキュメントでは、Oracle SOA Suite 10.1.3.3のパッチ・セットで使用できる新機能につ

プロセスの中断 障害が発生したアクティビティのインスタンスを中断できます。

1. アクションとして「Abort」を選択し、「Recover」をクリックしてインスタンスを中

断します。

中断、入力変更、新しいインスタンスの作成 このリカバリ・アクションを使用するシナ

リオの例は、プロセスへの不正な入力によってインスタンスで障害が発生する場合です。

この場合、現在のインスタンスを終了し、修正されたペイロードの新しいインスタンスを

インスタンス化する必要があります。

1. 「New Instance」をクリックして、Initiate ページにアクセスします。ドロップダウン・

リストの操作の選択項目(initiate)と入力ペイロードは、すでに設定されています。

2. 障害が発生したインスタンスで使用されたペイロード入力変数の値を修正し、

「Initiate」をクリックして新しいインスタンスを開始します。

障害が発生した複数のアクティビティのリトライ 障害が発生した複数のアクティビティ

の一括リカバリを実行できます。

1. 障害が発生したインスタンスの「Activities」タブに戻ります。

2. リカバリするすべてのアクティビティを選択します。リカバリできるアクティビティ

にのみ、チェック・ボックスが表示されます。

3. ドロップダウン・リストからリカバリ・アクションを選択し、「Recover」をクリッ

クします。

46

Page 47: Oracle® SOA Suite...Oracle® SOA Suite 新機能 10g(10.1.3.3) E10381-02 2007 年9 月 本ドキュメントでは、Oracle SOA Suite 10.1.3.3のパッチ・セットで使用できる新機能につ

障害ロギング

現在のロギング・スキームを使用して、すべての障害情報がログに記録されます。ロギン

グに追加するオプションや障害が発生した場合にログに残す追加データはありません。ロ

ギング・スキームのレベルは制御できませんが、障害ポリシーの JavaAction を使用し

てカスタム Java クラスを提供できます。これによって、障害に基づくカスタム・ロギング

を実行できます。

別のファイルまたはデータベースにログを残すには、ユーザーの Java クラスを起動する

JavaActionのポリシーを関連付け、Java コードのすべてのユーザー指定ロギングを実行

します。

JavaActionポリシーを使用してロギングだけを行うには、defaultAction属性を使用

して JavaAction を再スロー・アクションに連結します。これによって、障害がプロセ

ス定義の障害 Catch ブランチに送信されます。この場合、カスタム Java クラスはロギング

のみを実行します。

Java アクションの障害ポリシー Java アクションの障害ポリシーを使用する場合、次の詳細に注意してください。

提供されている Java クラスは、特定のインタフェースに準拠します。このインタ

フェースは、文字列を返します。複数の値を実行後の出力および障害ポリシーに設定

できます。

実装されたメソッドの出力値(戻り値)から障害ポリシーへのマッピングを提供して、

追加の障害ポリシーを実行できます。

ReturnValueが指定されない場合、デフォルトの障害ポリシーが実行されます。 <Action id="ora-java"> <JavaAction ClassName="mypackage.myclass" defaultAction="ora-human-intervention" propertySet="prop-for-billing"> <!--defaultAction is a required attribute, but propertySet is optional--> <!-- attribute--> <ReturnValue value="RETRY" ref="ora-retry"/> <!--value is not nilable attribute & cannot be empty--> <ReturnValue value="RETRHOW" ref="ora-rethrow-fault"/>

</JavaAction>

47

Page 48: Oracle® SOA Suite...Oracle® SOA Suite 新機能 10g(10.1.3.3) E10381-02 2007 年9 月 本ドキュメントでは、Oracle SOA Suite 10.1.3.3のパッチ・セットで使用できる新機能につ

</Action>

表 2は、ReturnValueの使用例を示しています。 表 2 Java アクションの障害ポリシーのシステム実装 コード 説明

<ReturnValue value="RETRY" ref="ora-retry"/>

メソッドが RETRY 文字列を返す場合に ora-retryアクションを実行します。

<ReturnValue value="” ref=”ora-rethrow”/>

検証が失敗します。

<JavaAction ClassName="mypackage.myclass" defaultAction="ora-human-intervention">

Java コードの実行後に ora-human- intervention を実行します。提供された

ReturnValue とメソッドからの戻り値が一

致しない場合にこの属性が使用されます。

<ReturnValue value="RETRY" ref="ora-retry"/> <ReturnValue value="” ref=””/>

検証が失敗します。

<JavaAction ClassName="mypackage.myclass" defaultAction=" ora-human-intervention"> <ReturnValue></ReturnValue>

検証が失敗します。

Java クラスを起動する場合、IFaultRecoveryJavaClass インタフェースを実装するク

ラスを提供できます。このインタフェースには、2 つのメソッドがあります。 public interface IfaultRecoveryJavaClass

{ public void handleRetrySuccess(IFaultRecoveryContext ctx ); public String handleBPELFault( IFaultRecoveryContext ctx );

} 以下の詳細に注意してください。

リトライが成功すると、handleRetrySuccess が起動します。リトライ・ポリシー

は、retrySuccessActionの Java アクションに連結します。

handleBPELFaultが起動して、javaActionタイプのポリシーを実行します。

FaultRecoveryContextで次のデータを使用できます。 public interface IfaultRecoveryContext

{ public Map getProperties(); public String getActionId(); public String getPolicyId(); public String getActivityType(); public String getActivityId(); public String getActivityName(); public String getWsdlLocation(); public String getPartnerLinkName(); public QName getPortType(); public String getCorrelationId(); public BPELFault getFault(); public BPELProcessId getProcessId(); public String getStatus();

48

Page 49: Oracle® SOA Suite...Oracle® SOA Suite 新機能 10g(10.1.3.3) E10381-02 2007 年9 月 本ドキュメントでは、Oracle SOA Suite 10.1.3.3のパッチ・セットで使用できる新機能につ

public void setStatus(String status); public String setTitle(String title); public String getTitle(); public int getPriority(); public void setPriority(int priority); public long getInstanceId(); public Locator getLocator(); public void addAuditTrailEntry(String message, Object detail); public void addAuditTrailEntry(String message); public void addAuditTrailEntry(Throwable t); public Object getVariableData(String name) throws BPELFault; public Object getVariableData(String name, String partOrQuery) throws BPELFault; public Object getVariableData(String name, String part, String query) throws BPELFault; public void setVariableData(String name, Object value) throws BPELFault; public void setVariableData(String name, String partOrQuery, Object value) throws BPELFault; public void setVariableData(String name, String part, String query, Object value) throws BPELFault;

} 例 4は、javaActionの実装例を示しています。

例 4 javaActionの実装 public class TestJavaAction implements IFaultRecoveryJavaClass

{ public void handleRetrySuccess(IFaultRecoveryContext ctx) {

System.out.println("This is for retry success"); handleBPELFault(ctx);

} public void dumpProperties(Map properties) {

// check if there were properties if(properties.size() == 0 )

return; System.out.println("----Begin propeties -----"); Set entries = properties.entrySet(); Iterator iterator = entries.iterator(); while (iterator.hasNext())

{ Map.Entry entry = (Map.Entry) iterator.next(); System.out.println("¥nKey="+entry.getKey()); // all values are list of strings List propValueList = (List)entry.getValue(); Iterator it = propValueList.iterator(); while (it.hasNext())

{ System.out.print("Value="+it.next()+"¥t");

} } System.out.println("¥n----End propeties -----");

} public String handleBPELFault(IFaultRecoveryContext ctx)

49

Page 50: Oracle® SOA Suite...Oracle® SOA Suite 新機能 10g(10.1.3.3) E10381-02 2007 年9 月 本ドキュメントでは、Oracle SOA Suite 10.1.3.3のパッチ・セットで使用できる新機能につ

{ System.out.println("-----Inside handleFault-----¥n" + ctx.toString()); dumpProperties(ctx.getProperties()); ctx.addAuditTrailEntry("hi there"); System.out.println("-----End Inside handleFault-----"); return "MANUAL";

} }

ドキュメント・アクセシビリティ オラクルは、製品、サービス、およびサポート・ドキュメントを障害のあるお客様にも簡

単に使用していただくことを目標にしています。当社のドキュメントには、ユーザーに支

援技術に関する情報を提供する機能が含まれています。このドキュメントは、HTML 形式

で提供されており、障害のあるお客様が簡単にアクセスするためのマークアップが含まれ

ています。アクセシビリティの標準は進化し続けており、オラクルは当社のドキュメント

をすべてのお客様が利用できるように、市場をリードする他のテクノロジ・ベンダーと積

極的に協力して技術的な問題に対処しています。詳しくは、以下の Oracle Accessibility Programの Web サイトを参照してください。 http://www.oracle.com/accessibility/

ドキュメント内のサンプル・コードのアクセシビリティ

スクリーン・リーダーは、ドキュメント内のサンプル・コードを常に正しく読み取るとは

限りません。コード表記規則では、右中括弧は別の空の行へ記す必要があります。ただし、

スクリーン・リーダーでは、括弧または中括弧のみを含むテキスト行を読み取らない場合

があります。

ドキュメント内の外部 Web サイトへのリンクのアクセシビリティ

このドキュメントには、オラクルが所有あるいは管理しない他の企業または組織の Web サ

イトへのリンクが含まれる場合があります。オラクルは、それらの Web サイトのアクセシ

ビリティに関する評価や言及は行いません。

Oracle サポート・サービスへの TTY アクセス

オラクルは、アメリカ国内では年中無休で 24 時間、Oracle サポート・サービスへのテキ

スト電話(TTY)アクセスを提供しています。TTY サポートへは、800-446-2398 へお電話

ください。

Oracle SOA Suite の新機能

E10381-02 Copyright © 2005, 2007, Oracle.All rights reserved.

このプログラム(ソフトウェアおよびドキュメントを含む)には、オラクル社およびその関連会社に所有権のある情報が含まれていま

す。このプログラムの使用または開示は、オラクル社およびその関連会社との契約に記された制約条件に従うものとします。著作権、

特許権およびその他の知的財産権と工業所有権に関する法律により保護されています。独立して作成された他のソフトウェアとの互換

性を得るために必要な場合、もしくは法律によって規定される場合を除き、このプログラムのリバース・エンジニアリング、逆アセン

ブル、逆コンパイル等は禁止されています。

本文書に記載された内容は、予告なく変更されることがあります。本文書内に問題が見つかった場合は、書面にて報告してください。

オラクル社およびその関連会社は、本文書に一切間違いがないことを保証するものではありません。これらのプログラムのライセンス

契約において明確に許諾されている場合を除いて、いかなる形式、手段(電子的または機械的)、目的のためにも、これらのプログラ

ムを複製または転用することはできません。

このプログラムがアメリカ政府またはプログラムのライセンスを受け、使用するアメリカ政府の代理人に提供される場合は、以下の注

意事項を適用します。

U.S. GOVERNMENT RIGHTS Programs, software, databases, and related documentation and technical data delivered to U.S. Government customers are "commercial computer software" or "commercial technical data" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations.As such, use, duplication, disclosure, modification, and adaptation of the Programs, including documentation and technical data, shall be subject to the licensing restrictions set forth in the applicable

50

Page 51: Oracle® SOA Suite...Oracle® SOA Suite 新機能 10g(10.1.3.3) E10381-02 2007 年9 月 本ドキュメントでは、Oracle SOA Suite 10.1.3.3のパッチ・セットで使用できる新機能につ

Oracle license agreement, and, to the extent applicable, the additional rights set forth in FAR 52.227-19, Commercial Computer Software--Restricted Rights (June 1987).Oracle USA, Inc., 500 Oracle Parkway, Redwood City, CA 94065.

このプログラムは、核、航空産業、大量輸送、医療あるいはその他の危険が伴うアプリケーションへの用途を目的としておりません。

このプログラムをかかる目的で使用する際、上述のアプリケーションを安全に使用するために、適切な安全装置、バックアップ、冗長

性(redundancy)、その他の対策を講じることはライセンシーの責任となります。万一かかるプログラムの使用に起因して損害が発生

いたしましても、オラクル社およびその関連会社は一切責任を負いかねます。

Oracle、JD Edwards、PeopleSoft、および Siebel は、米国 Oracle Corporation およびその子会社、関連会社の登録商標です。その他の

名称はそれぞれの会社の商標です。

このプログラムは、第三者の Web サイトへリンクし、第三者のコンテンツ、製品、サービスへアクセスすることがあります。オラク

ル社およびその関連会社は第三者の Web サイトで提供されるコンテンツについては、一切の責任を負いかねます。当該コンテンツの

利用は、お客様の責任になります。第三者の製品またはサービスを購入する場合は、第三者と直接の取引となります。オラクル社およ

びその関連会社は、(a)第三者の製品およびサービスの品質、(b)購入製品またはサービスに関連する第三者との契約のいかなる条

項の履行(製品またはサービスの提供、保証義務を含む)に関しても責任を負いかねます。また、第三者との取引により損失や損害が

発生いたしましても、オラクル社およびその関連会社は一切の責任を負いかねます。

51

Page 52: Oracle® SOA Suite...Oracle® SOA Suite 新機能 10g(10.1.3.3) E10381-02 2007 年9 月 本ドキュメントでは、Oracle SOA Suite 10.1.3.3のパッチ・セットで使用できる新機能につ

52