この章では、フォルト処理および例外を捕捉する例外管理機能の作成方法について説明します。
この章の内容は次のとおりです。
チュートリアルのこのフェーズでは、第5章「条件分岐ロジックの追加」で設計したOrderBookingプロセスに処理を追加します。このフェーズを実行する前に、前のフェーズが正常に完了したことを確認してください。チュートリアルのこのフェーズでは、問題のある信用履歴を識別するフォルト処理および例外管理機能を作成します。次の主要タスクを実行します。
フォルト処理および例外管理機能を設計します。
BPELプロセスをデプロイします。
デプロイしたBPELプロセスをOracle BPEL Controlから実行し、無効な社会保障カード番号を信用格付けサービスに送信してクライアントの信用履歴をチェックします。
信用格付けサービスからクライアントに返された信用格付け結果を調べ、無効な社会保障番号が識別されるかどうかを確認します。
この項では次のタスクを実行します。
「+」記号をクリックして、「GetCreditRating」Scopeアクティビティを開きます。
GetCreditRatingの左側にあるアイコンから「CatchAllブランチの追加」(上から4番目)をクリックします。
「+」記号をクリックして、新しいブランチを開きます。
「アクティビティをここにドロップ」と書かれた新しいボックスが右側に表示されます。
「コンポーネント・パレット」セクションから「Process Activities」を選択します。
「コンポーネント・パレット」セクションから作成したcatchブランチにAssignアクティビティをドラッグ・アンド・ドロップします。
assignアイコンをダブルクリックして、割当てウィンドウを表示します。
「一般」タブをクリックします。
「名前」フィールドにassignZeroCRと入力します。
「適用」をクリックします。
「コピー操作」タブをクリックします。
「作成」をクリックし「コピー操作」を選択して、コピー操作の作成ウィンドウを表示します。2つのフォルト処理ルールを作成します。
次の値を入力します。
フィールド | 値 |
---|---|
送信元 | |
|
式 |
|
'0' |
宛先 | |
|
変数 |
|
「変数」→「invokeCR_process_OutputVariable」→「ペイロード」→「ns1:rating」の順に開いて選択します。
注意: このネームスペースの数値(ns1、ns2など)は変わる場合があります。自動的に表示されるネームスペース値を使用してください。 |
「OK」をクリックします。
「コピー操作」タブをクリックします。
「作成」をクリックし「コピー操作」を選択して、コピー操作の作成ウィンドウを表示します。
次の詳細を入力して、2番目の文を作成します。
フィールド | 値 |
---|---|
送信元 | |
|
式 |
|
('Bad Credit, Rating = 0') |
宛先 | |
|
変数 |
|
「変数」→「inputVariable」→「ペイロード」→「ns1:PurchaseOrder」→「ns1:OrderInfo」→「ns1:OrderComments」の順に開いて選択します。 |
「OK」をクリックして、コピー操作の作成ウィンドウおよび割当てウィンドウを閉じます。
完了後、Designerのウィンドウには次のように表示されます。
-記号をクリックしてScopeアクティビティを閉じます。
「ファイル」メイン・メニューから「保存」を選択します。
「アプリケーション・ナビゲータ」セクションに移動します。
「OrderBooking」を右クリックします。
「デプロイ」→「my_integration_server_connection」→「defaultドメインにデプロイ」の順に選択します。
プロンプトが表示されたら、プロジェクトのバージョン番号を増分(たとえば、1.4と入力)し、「OK」をクリックします。
これでBPELプロセスがコンパイルされます。 ウィンドウ下部のボタンをクリックしてエラーの有無を確認します。エラーが発生していなければ、デプロイは成功しています。 デプロイに失敗した場合は、手順4を参照してください。
フォルト処理および例外管理機能をテストする準備ができました。
「スタート」→「すべてのプログラム」→「Oracle - Oracle_Home」→「Oracle BPEL Process Manager」→「BPEL Control」の順に選択し、Oracle BPEL Controlにアクセスします(すでに開いている場合はページをリフレッシュします)。
Oracle BPEL Controlにログインするために次の情報を入力して「ログイン」をクリックします。
フィールド | 値 |
---|---|
ユーザー名 | oc4jadmin
|
パスワード | password
|
password
は、インストール時に入力した値です。
Oracle BPEL Controlの「ダッシュボード」タブが表示されます。
次のいずれかの方法で、手順4で増分したOrderBookingインスタンス・バージョンを起動します。
「デプロイ済のBPELプロセス」リストでOrderBookingをクリックします。 「HTMLフォーム」のCustIDフィールドに0から始まる9桁の整数値を入力し、「XMLメッセージの転送」をクリックします。このアクションにより、信用格付けサービスで例外が呼び出されます。
http://localhost:8888/CreateOrderBookingUI
で、提供されているCreateOrderBookingUIアプリケーションを開いて入力値を指定し、プロセスを開始します。 CustIDフィールドのデフォルト値をゼロで上書きしてください。
「BPELプロセス」タブに次のようなメッセージが表示されます。
テスト・インスタンスが開始されました
手順11で説明したグラフィカル・ユーザー・インタフェースJSPページを使用して、SelectManufacturingの手動価格見積りタスクを完了します。
Oracle BPEL Controlに戻ります。
画面上部の「インスタンス」タブをクリックします。
OrderBookingインスタンスが作成されたことを確認します。インスタンスが「インスタンス」リストに表示されます。「最終更新日時」リストには、インスタンスが作成された時間が表示されます。
OrderBookingインスタンスをクリックします。
プロセス・フローでステップが実行され、例外が捕捉および処理されたことを確認します。scopeブロック内で問題のある信用の例外が発生し、例外ブロックで例外が処理され、デフォルト値の0が割り当てられ、処理が続行されます。
ここでは、信用格付けサービスで例外を捕捉するフォルト処理および例外管理機能を作成しました。次の主要タスクを実行しました。
BPELプロセスでフォルト処理および例外管理機能を設計しました。
BPELプロセスをデプロイしました。
デプロイしたBPELプロセスをOracle BPEL Controlから実行し、故意に無効な社会保障カード番号を信用格付けサービスに送信してクライアントの信用履歴をチェックしました。
信用格付けサービスからクライアントに返された信用格付け結果を調べました。入力した無効な社会保障カード番号により、設計したフォルト処理および例外管理機能が呼び出されました。問題のある信用履歴のメッセージがクライアントに返されました。BPELプロセスは、Rapid DistributorsおよびSelect Manufacturingサービスが呼び出される前に終了しました。