この章では、BPELプロセスのデプロイおよびドメイン管理に関する重要な概念について概説します。プロセスおよびドメインの管理に使用するOracle BPEL Controlの概要も示します。さらに、いくつかのビルド・ツールおよびコマンドライン・ツールの概要を示します。
この章の内容は次のとおりです。
BPELプロセスの設計が完了したら、プロセスをコンパイルしてOracle BPEL Serverにデプロイします。コンパイルおよびデプロイに成功した場合、Oracle BPEL ControlからBPELプロセスを実行および管理できます。
デプロイ時には、Oracle BPEL Process Managerアーカイブ(プロジェクトのディレクトリ構造に似たディレクトリ構造を持つJARファイル内の一連のファイル)がOracle BPEL Serverに送信されます。プロジェクト・ディレクトリの検証、およびBPELアーカイブへのコンパイルは、デプロイ処理中に自動的に行われます。したがって、デプロイ前にプロジェクトの検証、コンパイルおよび再コンパイルを明示的に行う必要はありません。追加のプロセスのコンパイルおよびデプロイを行う前に、Oracle BPEL Controlを使用して現在実行中のBPELプロセスを表示します。
BPELプロセスは、Oracle JDeveloperでコンパイルしてデプロイできます。
Oracle JDeveloperでBPELプロセスをコンパイルおよびデプロイするには、アプリケーション・ナビゲータでBPELプロジェクト(この例ではOrderBooking)を右クリックし、「デプロイ」を選択します。
2つのデプロイ方法のいずれかを選択できます。
defaultドメイン、または統合サーバー接続を使用して作成した他のドメインに直接デプロイできます。
ドメインを使用すると、プロセスのインスタンスのパーティション化および管理が可能になります。ドメインの重要性については、この章の後半で説明します。
初めてこのBPELプロセスをOracle BPEL Serverにデプロイする場合、1.0というデフォルトのバージョン・ラベルが自動的に作成されます。バージョンは、BPELプロセスの特定のデプロイ済インスタンスを識別するためのものです。バージョン・ラベルは、BPELプロセスのデプロイ時に作成されるJARファイル名の最後に追加されます。
このラベル・バージョンがデプロイ済であり、サーバー・モードが本番である場合、既存のバージョンを上書きするか、別のバージョン・ラベルを入力するよう求められます。

バージョンを上書きする場合、サーバー上の古いプロセス定義は新しい定義に置き換わります。古い定義に戻すことはできません。また、古い定義で実行されていたプロセス・インスタンスは失効としてマークされます。失効したインスタンスは確認できず、フローおよび監査情報はすべて失われます。新しいプロセス定義用に別のバージョン・ラベル(2.0など)を入力した場合、そのバージョン・ラベルはOracle BPEL Serverにデプロイされますが、デプロイ済の古いプロセス定義(1.0)もOracle BPEL Serverで同時に実行を続けます。古い定義で実行されていたインスタンスは保持され、失効としてマークされません。これらのインスタンスのフローおよび監査情報は引き続き確認できます。
サーバー・モードが開発の場合、プロンプトは表示されず、バージョンは自動的に上書きされます。
これは、バージョニングの大きな利点です。たとえば、BPELプロセスの古いインスタンスを1人の顧客に対して実行中で、このインスタンスがまだ有効であるとします。さらに、このBPELプロセスのわずかな設計変更を求める別の顧客とのパートナシップを開始します。どこかの時点で、古い顧客をBPELプロセスの新しいバージョンに移行する計画を立てることになりますが、今のところその必要はありません。バージョニングを行えば、両方のプロセスを実行できます。
より説明的なバージョン名をプロセスで使用するには、アプリケーション・ナビゲータでプロセスを右クリックし、「デプロイ」→「connection_name」→「domain_nameドメインにデプロイ」を選択します。プロンプトが表示された時点で、「デプロイメント・プロパティ」ウィンドウの「バージョン」フィールドに、より説明的な名前(sales_div_1.0など)を入力します。その後、Oracle BPEL Controlで他方のプロセス・バージョンを廃止できます。
「BPELプロセス・デプロイヤ」を選択すると、「BPELプロセス・デプロイヤ」ウィンドウが開きます。このウィンドウでは、別のOracle BPEL Server接続を選択するか、新規のOracle BPEL Server接続を作成して、default以外のドメインにデプロイすることで、設定をカスタマイズできます。このプロセス・バージョンがすでにデプロイされている場合、既存のバージョンを上書きするか、両方のバージョンを同時に実行できるように別のバージョン・ラベルを入力するかを選択することも可能です。
デプロイ方法を選択した後、Oracle JDeveloper下部の「ログ」ウィンドウに、デプロイのステータスに関するメッセージが表示されます。たとえば、「メッセージ」タブに表示される次のメッセージは、デプロイに成功したことを示しています。

「Apache Ant」タブに表示される次のメッセージも、デプロイに成功したことを示しています。

|
注意: 本番環境でバージョン・ラベルを再利用する場合はデータが失われる可能性がありますので注意してください。開発環境では、バージョン番号を再利用して、Oracle BPEL Serverにプロセスの不要なリビジョンが作成されるのを回避すると便利です。 |
デプロイに失敗した場合、「ログ」ウィンドウにエラーが表示されます。エラーをクリックし、デプロイが失敗する原因となったコード行を表示します。
修正を行って再デプロイします。
Oracle BPEL Process ManagerアーカイブをOracle BPEL Serverにただちにデプロイせずにコンパイルすることもできます。この処理を実行するには、BPELプロセスを右クリックし、「メイク」または「再ビルド」を選択します。これで、Oracle BPEL Process Managerアーカイブが次のディレクトリに配置されます。
JDev_Oracle_Home¥jdev¥mywork¥my_application¥project_name¥output
このディレクトリから、次のいずれかの方法でプロセスをデプロイできます。
アーカイブを適切なドメイン・ディレクトリ(この例ではdefault)にコピーします。
SOA_Oracle_Home¥bpel¥domains¥default¥deploy
または
「スタート」→「すべてのプログラム」→「Oracle - Oracle_Home」→「Oracle BPEL Process Manager」→「BPEL Control」を選択して、Oracle BPEL Controlにログインします。
「BPELプロセス」をクリックします。
「関連タスク」セクションの「新規プロセスのデプロイ」をクリックします。
「参照」をクリックしてプロセスのBPELスーツケースJARファイルを選択し、「開く」をクリックします。
「デプロイ」をクリックします。
「ダッシュボード」タブをクリックし、新たにデプロイされたプロセスを表示します。
コンパイルおよびデプロイの際に、BPELプロセス・アーカイブおよびそのコンポーネントがコンパイルされ、BPELスーツケースと呼ばれるJARファイルにパッケージ化されます。このJARファイルには次のファイルが含まれています。
プロセスのproject_name.bpelファイル実装
project_name.wsdlファイル
bpel.xmlデプロイメント・ディスクリプタ・ファイル
その他の必要なローカル・リソース(XMLスキーマ、Javaクラスまたはライブラリなど)
スーツケースJARファイルは、ディレクトリJDev_Oracle_Home¥jdev¥mywork¥application_name¥process_name¥outputにデプロイされます。スーツケースJARファイルの名前は、bpel_projectname_versionnumber.jarという規則に従います。たとえば、次のようになります。
bpel_LoanProcess_1.0.jar
BPELプロセスのテストおよび開発フェーズが完了すると、プロセスを本番環境にデプロイできます。 本番環境では、通常、開発環境とは異なる構成プロパティを使用します。 たとえば、本番環境で使用するパートナ・リンクWebサービスURLは、通常、テスト環境で使用したURLとは異なります。
以前のリリースでは、この矛盾を解決するためにbpel.xmlデプロイメント・ディスクリプタ・ファイルを変更するか、開発環境用と本番環境用に個別のbpel.xmlファイルを提供していました。 bpel.xmlファイルに多数の変更が必要だった場合や、bpel.xmlの複数バージョンに変更が必要だった場合は、多大な労力を伴うことになりました。
このリリースからは、customize antタスクが用意されており、開発環境用と本番環境用のプロパティ値を単一のビルド・ファイルの場所で指定できます。 customizeタスクでは、ビルド・ファイルを使用してbpel.xmlのバージョン間の変更内容が取得されます。 このタスクは、bpelcのサブタスクまたはスタンドアロンのantタスクとして使用できます。 bpelcのサブタスクには、複数のcustomizeタスクを含めることができます。 customizeタスクにも複数のサブタスクを含めることができます。
この項では、customize antタスクのエンドツーエンドの使用例を示します。
パートナ・リンクWebサービスのターゲット・ドメインURL WSDLファイルを、BPELプロセスのbpel.xmlファイルが置かれているディレクトリにコピーします(この例ではIncrementService.wsdlを使用しています)。
同じディレクトリ内でbpel.xmlファイルを開きます。
partnerLinkBinding要素の下でIncrementService.wsdlファイルのディレクトリ・パスを変更し、このWSDLファイルが同じディレクトリにあることを示します。
<?xml version="1.0" encoding="UTF-8"?>
<BPELSuitcase>
<BPELProcess src="Invoke.bpel" id="Invoke">
<partnerLinkBindings>
<partnerLinkBinding name="client">
<property name="wsdlLocation">Invoke.wsdl</property>
</partnerLinkBinding>
<partnerLinkBinding name="IncrementService">
<property name="wsdlLocation">IncrementService.wsdl</property>
</partnerLinkBinding>
</partnerLinkBindings>
<configurations>
<property name="testIntroduction"><![CDATA[
This BPEL process invokes a synchronous integer increment service.
]]></property>
</configurations>
</BPELProcess>
</BPELSuitcase>
bpel.xmlファイルおよびcustomizeタスクを使用するIncrementService.wsdlファイルと同じディレクトリに、カスタムのbuild.xmlファイルを作成します。 ant-orapbel-propertiesファイル内で設定された値にマップするパートナ・リンクWebサービスのホスト名、ポート、ドメイン名およびプロセス・リビジョンのプロパティを指定します。
<?xml version="1.0" encoding="iso-8859-1"?>
<project name="bpel.deploy" default="compile" basedir=".">
<target name="compile">
<bpelc input="${basedir}/bpel.xml" out="${process.dir}/output"
rev="${rev}" home="${bpel.home}">
<customize>
<partnerLinkBinding name="IncrementService">
<property name="wsdlLocation">
http://${host_name}:${port_number}
/orabpel/${domain_name}
/IncrementService/${rev}/IncrementService?wsdl</property>
</partnerLinkBinding>
</customize>
</bpelc>
</target>
</project>
|
注意: ant-orapbel-propertiesファイルのかわりに、独自のカスタム・ビルド・プロパティ・ファイルを使用できます。 カスタム・ファイルをbuild.xmlファイルにインポートしてください。
|
SOA_Oracle_Home¥bpel¥utilities¥ant-orapbel-propertiesファイル内で、ホスト名、ポート、ドメイン名およびプロセス・リビジョンの各プロパティの値を指定します。
#Development or production environment host_name=jsmith-pc.us.oracle.com port_number=80 domain_name=default rev=1.0 # -------------------------------------------------- # END OF FILE
開発環境と本番環境の間で編集が必要となるのは、この単一ファイルのみです。 たとえば、本番環境で使用するホスト名が異なる場合(jwilliams-pc.us.oracle.comなど)、それをこのファイル内で変更します。
bpel.xml、IncrementService.wsdlおよびカスタムbuild.xmlファイルの上位ディレクトリにあるメインbuild.xmlファイルに移動します。
process-deployセクションで新規のターゲット名を指定します(この例では、デフォルトのターゲット名compileをcompile1に変更しています)。
<target name="process-deploy"
depends="validateTask, compile1, deployProcess, deployTaskForm,
deployDecisionServices" />
ターゲット名の下に新規のtarget nameセクションを作成します。 この例では、手順4で作成したカスタムbuild.xmlスクリプトをコールするセクションで値compile1を指定しています。 target nameセクションは、bpel.xml、IncrementService.wsdlおよびカスタムbuild.xmlファイルを含むbpelディレクトリを指しています。
<target name="process-deploy" depends="validateTask, compile1, deployProcess, deployTaskForm, deployDecisionServices" /> <target name="validateTask"> <echo> -------------------------------------------------------------- | Validating workflow -------------------------------------------------------------- </echo> <validateTask dir="${process.dir}/bpel" /> </target> <target name="compile1"> <ant dir="${process.dir}/bpel"/> </target> <target name="compile">
antを使用してBPELプロセスをデプロイします。
ant process-deploy
Oracle BPEL Controlにアクセスし、すべてのプロセスが正常にデプロイされたことを確認します。
customize antタスクを使用して、複数タイプのプロパティを変更できます。 この項では、これらのプロパティでcustomize antタスクを使用する構文の例を示します。
デフォルトでは、build.xmlファイル内で設定されているbpel.xmlファイルが使用されます。 カスタムの入力および出力デプロイメント・ディスクリプタ・ファイルを指定することもできます。 このアクションにより、指定の入力XMLファイルが変更され、結果が指定のoutFileに書き込まれます。 表19-1に、使用する属性を示します。
bpelcのサブタスクとして使用する場合、customize antタスクでデプロイメント・ディスクリプタのconfigurationsプロパティを追加または変更できます。
<configurations> <property name="propName">propValue</property> </partnerLinkBinding>
bpelcのサブタスクとして使用する場合、customize antタスクでpartnerLinkBindingのプロパティを追加または変更できます。
<partnerLinkBinding name="partnerLinkName"> <property name="propName">propValue</property> </partnerLinkBinding>
bpelcのサブタスクとして使用する場合、customize antタスクでactivationAgentのプロパティを追加または変更できます。
<activationAgents name="actAgentName"> <property name="propName">propValue</property> </partnerLinkBinding>
BPELプロセス(具体的にはスーツケースJARファイル)はドメインにデプロイされます。BPELドメインにより、開発者または管理者はOracle BPEL Process Managerの単一インスタンスを複数の仮想BPELセクションにパーティション化できます。
BPELドメインの使用方法の例をいくつか示します。
Oracle BPEL Process Managerの単一インスタンスを複数開発者環境にパーティション化します。この場合、ドメインIDは一般的にそのドメインを所有する開発者を識別するものになります。
Oracle BPEL Process Managerの単一インスタンスを開発環境とQA環境の両方にパーティション化します。この場合、ドメインIDはtestおよびqaにできます。
Oracle BPEL Process Managerの単一インスタンスを、複数の部門またはパートナが使用する環境にパーティション化します。この場合、ドメインIDは部門またはパートナの名前になります。
次の項では、BPELドメインに関する重要な問題について説明します。
Oracle BPEL Process Managerのドメイン管理は、Oracle BPEL ControlおよびOracle BPEL Admin Consoleで行います。
このリリースからは、Oracle BPEL ControlとOracle BPEL Admin ConsoleはOracle Application Server J2EEおよびJAASのセキュリティ機能で保護されています。BPELドメインへのアクセスは、ユーザーIDとパスワードを介して保護されます。以前のリリースでは、パスワードのみが必須でした。
Oracle BPEL Process Managerのインストール時に、defaultという名前の初期ドメインが作成されます。Oracle BPEL Controlまたは作成したドメインを介してdefaultドメインにアクセスするための初期パスワードは、インストール時にoc4jadminユーザーについて指定したパスワードと同じです。この章で説明するタスクの実行手順では、oc4jadminユーザーを使用します。
ドメインへのアクセスには、bpeladminユーザーまたはdefaultユーザーとそれぞれのデフォルト・パスワードwelcome1を使用することもできます。bpeladminユーザーはすべてのドメインにアクセスでき、defaultユーザーはdefaultドメインにのみアクセスできます。
oc4jadmin、bpeladminおよびdefaultの各ユーザーを使用すると、次の方法でOracle BPEL Controlにアクセスできます。
「スタート」→「すべてのプログラム」→「Oracle - Oracle_Home」→「Oracle BPEL Process Manager」→「BPEL Control」を選択します。
次のURLに移動します。
http://localhost:port/BPELConsole
portは次のとおりです。
8888: Oracle Application Server SOAソフトウェアCDからOracle BPEL Process Managerをインストールした場合
9700: Oracle BPEL Process ManagerソフトウェアCDからOracle BPEL Process Manager for DevelopersまたはOracle BPEL Process Manager for OracleAS Middle Tierインストール・タイプをインストールした場合
oc4jadminおよびbpeladminユーザーを使用すると、次のURLを介してOracle BPEL Admin Consoleにアクセスできます。
http://localhost:port/BPELAdmin
defaultユーザーではOracle BPEL Admin Consoleにアクセスできません。以降の各項では、Oracle BPEL ControlとOracle BPEL Admin Consoleについてさらに詳しく説明します。
oc4jadmin、bpeladminおよびdefaultユーザーのパスワードは、Oracle Enterprise Manager 10gのApplication Server Control Consoleを介して変更できます。インストール後にbpeladminおよびdefaultユーザーのパスワードを変更することをお薦めします。
次の手順を実行すると、追加のドメインを作成できます。
次の場所にあるOracle BPEL Admin Consoleにアクセスします。
http://localhost:port/BPELAdmin
oc4jadminユーザー名およびパスワードを入力します。
「BPELドメイン」タブをクリックします。
「新規BPELドメインの作成」をクリックします。
「新規BPELドメインの作成」ウィンドウが表示されます。
画面の指示に従って、IDを指定して新しいドメインを作成します。
Oracle JDeveloperに戻ります。
プロセスを右クリックします。
「デプロイ」→「connection_name」→「リフレッシュ」を選択します。
「デプロイ」→「connection_name」→「domain_nameドメインにデプロイ」を選択します。
domain_nameは手順5で入力したIDです。
Oracle BPEL Controlにログインします。
Oracle BPEL Controlの右上隅にあるドロップダウン・リストから、新規のドメイン名を選択します。
手順9でデプロイしたプロセスが「ダッシュボード」タブに表示されます。
Oracle BPEL Serverは自動的に本番モードでインストールされます。プロセスを本番モードでデプロイしようとして、そのプロセスのラベル・バージョンがすでにデプロイされている場合、既存のバージョンを上書きするか、別のバージョン・ラベルを入力するよう求められます。
次の手順に従って、Oracle JDeveloperでサーバーの現行のモードを確認します。
「アプリケーション・ナビゲータ」でBPELプロセスを右クリックします。
「デプロイ」→「BPELプロセス・デプロイヤ」を選択します。
「BPELプロセス・デプロイヤ」ウィンドウの「サーバー・モード」フィールドにモードが表示されます。
このモードを開発モードに変更できます。プロセスを開発モードでデプロイしようとして、そのプロセスのラベル・バージョンがすでにデプロイされている場合には、既存のバージョンは自動的に上書きされ、ユーザーが判断を求められることはありません。
サーバーの現行のモードを変更する手順は、次のとおりです。
次の場所にあるOracle BPEL Admin Consoleにアクセスします。
http://localhost:port/BPELAdmin
oc4jadminユーザー名およびパスワードを入力します。
「サーバー」タブをクリックします。
productionServerプロパティの値をfalseに変更します。
「適用」をクリックします。
「BPELプロセス・デプロイヤ」ウィンドウに戻ります。これで、「サーバー・モード」フィールドに「開発」と表示されます。
「BPELプロセスのコンパイルおよびデプロイ」で説明したドメイン・デプロイ方法に加えて、他の方法でもBPELスーツケースをドメインにデプロイできます。
ドメインがローカルの場合、bpelc antタスクのdeployオプションを、特定のドメインへのローカル・デプロイを実行するように構成します。次の例は、BPELスーツケースをqaという名前のドメインにデプロイするantビルド・スクリプトを示しています。
<?xml version="1.0"?>
<project name="LoanFlow" default="main" basedir=".">
<property name="deploy" value="qa"/>
<property name="rev" value="1.0"/>
<target name="main">
<bpelc orabpelhome="${orabpelHome}" rev="${rev}" deploy="${deploy}"/>
</target>
</project>
ドメインがBPELスーツケースのコンパイル先環境に対してローカルではない場合、Oracle BPEL Controlの「ダッシュボード」タブにある「新規プロセスのデプロイ」リンクを使用して、BPEL JARファイルのアップロードおよびデプロイをリモートで実行します。このタスクへのリンクは、「ダッシュボード」タブの左下部分、および「BPELプロセス」タブの左下部分にあります。deployオプションを使用せずに単にbpelcタスクを実行すると、現行ディレクトリにBPELスーツケースJARを作成できます。BPELスーツケースをすでにローカルにデプロイしている場合は、そのBPELスーツケースをローカル・デプロイ・ディレクトリからアップロードできます。デプロイ済BPELスーツケースの場所の詳細は、「BPELスーツケースJARファイル」を参照してください。
BPELプロセスをデプロイするということは、該当するBPELドメインのdeployディレクトリにBPELスーツケースJARファイルをコピーすることと同じです。ドメインにリモートでアクセスする場合でも、必要となるのはディスク共有、FTP、セキュア・コピー(SCP)、またはドメインをホストしているサーバーへのその他のアクセスのみです。これをantのbuild.xmlスクリプトに追加して前述のようにdeployオプションを削除した後、適切な場所への生成済JARファイルのリモート・コピーを実行する独自のタスクを追加できます。
Oracle BPEL Controlでは、デプロイ済のBPELプロセスのライフ・サイクルおよび状態を管理できます。「ダッシュボード」タブでBPELプロセスの名前を選択し、左側の「管理」タブを選択します。このページでは、選択したBPELプロセスをまず廃止してから、アンデプロイできます。プロセスを廃止すると、そのプロセスの新規インスタンスは作成されなくなります。保留されている進行中のインスタンスがすべて終了する前に、BPELプロセスの特定のバージョンをアンデプロイすると、進行中のインスタンスは失効としてマークされ、実行が取り消されます。Oracle BPEL Controlで実行できるタスクは、すべてプログラム的にも実行できます。
コンパイルおよびデプロイに成功した場合、Oracle BPEL ControlからBPELプロセスを実行および管理できます。この項では、Oracle BPEL Controlの主なページの概要を示します。
「スタート」→「すべてのプログラム」→「Oracle - Oracle_Home」→「Oracle BPEL Process Manager」→「BPEL Control」を選択して、Oracle BPEL Controlにログインします。
oc4jadminユーザー名およびパスワードを入力します。
Oracle BPEL Controlの概要は、次の項を参照してください。
Oracle BPEL Controlへのログイン時には、デフォルトで「ダッシュボード」タブが表示されます。このページには、現在デプロイされているBPELプロセス、BPELプロセスの現在実行中(進行中)のインスタンス、および最近終了したインスタンスが表示されます。「名前」列でデプロイ済のBPELプロセスをクリックし、インスタンスを作成してプロセスをテストするためのページにアクセスします。追加のプロセスのコンパイルおよびデプロイを行う前に、Oracle BPEL Controlを使用して現在実行中のBPELプロセスを表示します。アスタリスクは、そのバージョンがデフォルト・プロセスであることを示します。デフォルト・プロセスは、この章の後半で説明します。

Oracle BPEL Controlの各ウィンドウの右上隅には、BPELドメインの管理、Oracle Technology NetworkのBPELサイトへのアクセス、他のドメインへの切替えに使用するリンクがあります。現在ログインしているドメインは必ず表示されます。Oracle BPEL Process Managerのインストール時に、defaultという名前の初期ドメインが作成されます。さらにドメインを作成できます。ドロップダウン・リストを使用すると、表示されるドメインにアクセスできます。
「ドメイン」リストをクリックし、使用可能なドメインのリストを表示します。

適切なドメインを選択してアクセスします(この例ではsales)。
選択したドメインの「ダッシュボード」タブが表示されます。パスワード入力を求めるプロンプトは表示されません。
「BPELプロセス」タブをクリックし、BPELプロセスのライフ・サイクルおよび状態を表示します。OrderBookingの異なるバージョン・ラベルが同時にアクティブになっていることに注意してください。アスタリスクで識別されるプロセス(OrderBookingバージョン1.5など)は、デフォルト・プロセスです。
表19-2に、「BPELプロセス」タブの各セクションの使用手順を示します。
表19-2 「BPELプロセス」タブ
| セクション | 参照先 |
|---|---|
| WSDLキャッシュの消去 | 「WSDLキャッシュの消去」 |
| 新規プロセスのデプロイ | 「新規プロセスのデプロイ」 |
| 手動リカバリの実行 | 「手動リカバリの実行」 |
| アラーム表のリフレッシュ | 「アラーム表のリフレッシュ」 |
| プロセス・ログの表示 | 「プロセス・ログの表示」 |
| デプロイ済のプロセス | 「プロセスのライフ・サイクルの管理」 |
「新規プロセスのデプロイ」をクリックすると、Oracle JDeveloperを使用するかわりに、Oracle BPEL ControlからBPELプロセスをデプロイできます。
「手動リカバリの実行」をクリックすると、メッセージの手動リカバリを実行できます。たとえば、ファイル・アダプタを使用しており、インバウンド・メッセージの処理中にシステム・サーバーがクラッシュした場合は、すべてのメッセージ・レコードが確実にリカバリされるように、サーバーの再起動時に手動でリカバリを実行できます。たとえば、ファイルに10件のメッセージが含まれており、3件のメッセージの処理が完了した後にサーバーがクラッシュしたとします。このクラッシュが原因で、4件目のメッセージが配信されなくなります。サーバーが再起動して5件目のメッセージ(最後に正常に拒否されたメッセージのオフセット)の処理が開始された時点で、すべてのメッセージが確実に保持されるように4件目のメッセージを手動でリカバリできます。
「アラーム表のリフレッシュ」をクリックすると、選択したドメインのアラーム表をリフレッシュできます。これにより、保留中のwait/onAlarmアクティビティがすべてシステムに登録されます。
「プロセス・ログの表示」をクリックすると、選択したドメイン内の全BPELプロセスのイベント(プロセスのコンパイル時、アンデプロイ時、デフォルト・インスタンスとしてマークされたときなど)を表示できます。
この項では、プロセスのライフ・サイクルの管理方法について説明します。
「BPELプロセス」リストの特定のプロセスをクリックします。
「管理」ウィンドウが表示されます。このウィンドウでは、BPELプロセスのライフ・サイクルおよび状態を管理できます。
表19-3に、このウィンドウの各セクションの使用手順を示します。
表19-3 プロセスのライフ・サイクルの管理
| セクション | 参照先 |
|---|---|
| 管理 | 「BPELプロセスのステータス・インジケータ」
|
| 開始 | 「プロセスの開始」 |
| ディスクリプタ | 「デプロイメント・ディスクリプタの表示および設定」 |
| WSDL | 「WSDLファイルのコンテンツの表示」 |
| センサー | 「センサー・データの表示」 |
| ソース | 「BPELファイルのコンテンツの表示」 |
| テスト・スイート | 「テスト・スイートの実行」 |
| レポート | 「レポートの作成」 |
Oracle BPEL Controlには、BPELプロセスごとに次のステータス・インジケータが表示されます。
ライフ・サイクル
プロセスのライフ・サイクルは、「アクティブ」または「リタイア」です。プロセスのライフ・サイクルが「リタイア」の場合、新規インスタンスは作成できません。
状態
プロセスの状態は、「オン」または「オフ」です。プロセスの状態が「オフ」の場合、インスタンスへのアクセスや新規インスタンスの作成は行えません。
オープンしているインスタンス
オープンしているインスタンスの数。オープンしているインスタンスとは、現在処理中のインスタンスです。
終了したインスタンス
終了したインスタンスの数。終了したインスタンスとは、正常に、またはエラーにより、処理が終了したインスタンスです。
このウィンドウから次のプロセス管理タスクを実行します。
プロセスのライフ・サイクル(「アクティブ」または「リタイア」)の管理
プロセスの状態(「オン」または「オフ」)の管理
デフォルト・プロセスの明示的な変更
プロセスのアンデプロイ
プロセスのライフ・サイクルおよび状態に関する次の概念を確実に理解しておいてください。
開発環境では、常にOracle BPEL Server上の同じバージョンにプロセスをデプロイすることをお薦めします。これにより、プロセスをデフォルトとして明示的にマーキングすることに注意を払う必要がなくなります。この環境では、次のようなライフ・サイクルに従います。
プロセスを設計します。
プロセスをOracle BPEL Serverにデプロイします(バージョンは1.0です)。これは、あらゆる新規インスタンスのデフォルト・プロセスになります。
必要に応じてプロセスを再設計します。
プロセスをバージョン1.0として再デプロイします(これは古いバージョンを上書きした新しいバージョンですが、バージョン1.0はデフォルト・プロセスのままです)。
本番環境では、新しいバージョンをデプロイするたびにバージョン番号を増分することをお薦めします。たとえば、OrderBookingバージョン1.0が本番環境で実行されている場合、OrderBookingの新しいバージョンはバージョン2.0にデプロイします。いつプロセスをデフォルトとしてマークするかは、ユーザーの判断に委ねられています。新規インスタンスはこの定義を使用して開始されます。プロセスのテストおよび検証を十分に行ったという確信がある場合は、手順1に示した「管理」ウィンドウで「デフォルトとしてマーク」を選択します。バージョン1.0のすべてのインスタンスがバージョン2.0にシームレスに切り替わります。これにより、プロセスを本番モードで実行できる状態になった時期を判断できます。このシナリオでは、次のようなライフ・サイクルに従います。
プロセスを設計します。
プロセスを別のバージョン番号でOracle BPEL Serverにデプロイします(たとえば、古いデフォルト・バージョンが1.0の場合はバージョン2.0を使用します)。
プロセスのバージョン2.0をテストします。
バージョン2.0をデフォルト・プロセスとしてマークし、アクティブにします。
この項では、2つのプロセス・バージョンの様々なライフ・サイクル状態の簡単な例を示します。 最初のステージでは、表19-4に示すように、同じプロセス・バージョンの2つのインスタンスが作成されます。CreditRatingServiceバージョン1.0が2つのメッセージを受信した結果、2つのインスタンスが作成されます。
表19-4 ステージ1: 2つのインスタンスの作成
| ステージ | 処理 | ライフ・サイクル | 状態 | デフォルト・プロセス | 新規メッセージ・リクエストの受信時 |
|---|---|---|---|---|---|
| 1 | CreditRatingServiceバージョン1.0をデプロイ | アクティブ=1.0 | オン=1.0 | バージョン1.0(Oracle JDeveloperのデフォルト・バージョンとして自動的に設定) | CreditRatingServiceバージョン1.0の2つのインスタンスを作成 |
CreditRatingServiceバージョンのライフ・サイクルおよび状態が、図19-1に示す「BPELプロセス」タブに表示されます。CreditRatingServiceバージョン1.0はこのプロセスの最初にデプロイされたバージョンだったため、自動的にデフォルト・プロセスになりました。2つのCreditRatingServiceバージョン1.0のインスタンスが作成される原因となった2つのメッセージは、どちらも終了しています。
CreditRatingServiceバージョン1.0の2つの終了したインスタンスが、図19-2に示す「インスタンス」タブに表示されます。
ステージ2では、表19-5に示すように、CreditRatingServiceを再デプロイしますが今回は新しいバージョン番号2.0を使用します。
表19-5 ステージ2: 複数のプロセス・バージョンの作成
| ステージ | 処理 | ライフ・サイクル | 状態 | デフォルト・プロセス | 新規メッセージ・リクエストの受信時 |
|---|---|---|---|---|---|
| 2 | CreditRatingServiceバージョン2.0をデプロイ | アクティブ=1.0 | オン=1.0 | バージョン2.0(Oracle JDeveloperのデフォルト・バージョンとして自動的に設定) | -- |
これにより、CreditRatingServiceバージョン2.0がデフォルト・バージョンになります(図19-3にアスタリスクで示されています)。CreditRatingServiceバージョン1.0はデプロイされたままです。Oracle JDeveloperは、この規約に従います。
Oracle JDeveloperで再びCreditRatingServiceをデプロイし、「デプロイメント・プロパティ」ウィンドウの「バージョン」フィールドでバージョン1.0を選択すると、表19-6および図19-4に示すように、CreditRatingServiceバージョン1.0が再びデフォルト・バージョンになります。
表19-6 ステージ2: 複数のプロセス・バージョンの作成
| ステージ | 処理 | ライフ・サイクル | 状態 | デフォルト・プロセス | 新規メッセージ・リクエストの受信時 |
|---|---|---|---|---|---|
| 2 | CreditRatingServiceバージョン1.0を再デプロイ | アクティブ=1.0 | オン=1.0 | バージョン1.0(Oracle JDeveloperのデフォルト・バージョンとして自動的に設定) | -- |
ステージ3では、表19-7に示すように、Oracle BPEL Controlで明示的にCreditRatingServiceバージョン2.0をデフォルト・バージョンに変更し、CreditRatingServiceバージョン1.0を廃止します。
表19-7 ステージ3: デフォルト・プロセスの変更およびインスタンスの廃止
| ステージ | 処理 | ライフ・サイクル | 状態 | デフォルト・プロセス | 新規メッセージ・リクエストの受信時 |
|---|---|---|---|---|---|
| 3 | デフォルト・プロセスをOrderBookingバージョン2.0に変更 | アクティブ=1.0 | オン=1.0 | バージョン2.0(Oracle BPEL Controlで明示的に設定) | OrderBookingバージョン2.0のインスタンスを作成 |
| 3 | OrderBookingバージョン1.0を廃止 | リタイア=2.0 | オン=2.0 | バージョン2.0 | 処理なし |
CreditRatingServiceバージョン2.0に対して「デフォルトとしてマーク」が選択されている様子を図19-5に示します。このため、バージョン2.0がデフォルト・プロセスになります。
CreditRatingServiceバージョン1.0が廃止される様子を図19-6に示します。
2つのCreditRatingServiceバージョンの変更済のライフ・サイクルおよび状態が、図19-7に示す「BPELプロセス」タブに表示されます。CreditRatingServiceバージョン2.0はデフォルト・プロセスとして明示的に選択されたため、アスタリスクが表示されます。CreditRatingServiceバージョン1.0のインスタンスが作成される原因となったメッセージは終了しています。CreditRatingServiceバージョン1.0は「リタイア」として表示されます。
CreditRatingServiceバージョン2.0の終了したインスタンスが、図19-8に示す「インスタンス」タブに表示されます。
「ダッシュボード」タブをクリックしても、廃止したCreditRatingServiceバージョン1.0は表示されません。つまり、このバージョンのインスタンスは作成できません。
ステージ4では、表19-8に示すように、CreditRatingServiceバージョン1.0を非アクティブにした後、アンデプロイします。
表19-8 ステージ4: プロセスの非アクティブ化およびアンデプロイ
| ステージ | 処理 | ライフ・サイクル | 状態 | デフォルト・プロセス | 新規メッセージ・リクエストの受信時 |
|---|---|---|---|---|---|
| 4 | CreditRatingServiceバージョン1.0を非アクティブ化 | リタイア=2.0 | オフ=2.0 | バージョン2.0 | 処理なし |
| 4 | CreditRatingServiceバージョン1.0をアンデプロイ | リタイア=2.0 | オフ=2.0 | バージョン2.0 | 処理なし |
CreditRatingServiceバージョン1.0の状態が、図19-9では「オフ」(非アクティブ)に変更されます。
CreditRatingServiceバージョン1.0の状態が、図19-10に示す「BPELプロセス」タブに「オフ」と表示されます。最初にこのプロセスを廃止したため、ライブ・インスタンスはすでに通常どおり終了しています。このバージョンを廃止する前に非アクティブにした場合は、ライブ・インスタンスに障害が発生し、中断されます。
図19-11に示すように、CreditRatingServiceバージョン1.0がアンデプロイされます。
図19-12の「BPELプロセス」タブには、CreditRatingServiceバージョン1.0は表示されていません。CreditRatingServiceバージョン2.0には、アスタリスクも表示されなくなっています。ただし、このバージョンはまだデフォルトです。「BPELプロセス」リストでこのインスタンスをクリックした場合、「管理」ウィンドウに「デフォルトとしてマーク」ボタンは表示されません。かわりに次のメッセージが表示されます。
This revision is currently selected as the default revision.
アンデプロイされたCreditRatingServiceバージョン1.0の2つの終了したインスタンスが、図19-13に示す「インスタンス」タブに無効として表示されます。
終了したインスタンスのいずれかをクリックすると、図19-14に示すように、ステータスが「失効」として表示されます。
「開始」をクリックすると、「BPELプロセス」タブからプロセスを実行できます。これは、「ダッシュボード」タブの「デプロイ済のBPELプロセス」リストでプロセスをクリックしたときに表示されるのと同じウィンドウです。
「ディスクリプタ」をクリックすると、実行時にBPELプロセスのデプロイメント・ディスクリプタ・ファイルbpel.xmlのプロパティを表示および変更できます。これにより、設計時とBPELプロセスの再デプロイ時には、これらのプロパティをリセットできなくなります。
テスト・スイートを使用すると、本番環境にデプロイする前に、BPELプロセスとWebサービス・パートナの相互作用をシミュレートできます。これにより、本番環境へのデプロイ準備が完了するまでに、プロセスとWebサービス・パートナの相互作用が予期したとおりであることを確認できます。「テスト・スイート」をクリックすると、BPELプロセス・インスタンスについてデプロイ済のテスト・スイートのテスト・ケースを実行し、XML文書レポートを表示できます。デフォルトでは、レポート結果はJUnit XMLテスト結果として書式設定されます。
「インスタンス」タブをクリックし、BPELプロセス・インスタンスを表示します。
「インスタンス」列でインスタンスをクリックします(Instance #30 of OrderBookingなど)。表示されるウィンドウから次のタスクを実行できます。
インスタンスの状態を表示します(「完了」、「アクティブ」または「失敗」など)。
インスタンスを削除します。
「デバッグ」をクリックしてBPELデバッガを表示します。デバッガにより、このプロセスを実装するBPELソース・コードが、このインスタンスの状態と照合されます。コード内で実行が現在一時停止されている位置が黄色でハイライトされます(たとえば、プロセスが現在は融資サービスからの融資提案のコールバックを待機している場合など)。
「テスト」をクリックし、インスタンスをテスト・ケースとして保存します。これで、インスタンスをOracle JDeveloperプロジェクトにインポートできます。
|
関連項目: センサーおよびテスト・ケースの詳細は、次のドキュメントを参照してください。 |
「アクティビティ」タブをクリックし、デプロイ済のBPELプロセス・インスタンスにおけるアクティビティのステータスを表示します。
BPELプロセスをデプロイすると、いくつかのビルドおよびコンパイラ・コマンドライン・ツールが自動的に起動されます。この項では、これらのツールと、XML Facadeの生成に使用するもう1つのコマンドライン・ツールの概要を示します。
antは、Oracle BPEL Process ManagerでBPELプロセスのコンパイルおよびデプロイに使用されるJavaベースのビルド・ツールです。antはmakeファイルに似ています。ただし、antはオペレーティング・システムに依存したシェルベースのコマンドで拡張されているのではなく、Javaクラスを使用して拡張されています。構成ファイルはXMLベースで、各種タスクが実行されるターゲット・ツリーをコール・アウトします。
|
関連項目: http://ant.apache.org/
|
bpelc(UNIXオペレーティング・システムではbpelc.sh)は、BPELプロセスのコンパイルおよびデプロイを行うOracle BPEL Process Managerツールです。
サポートされるbpelcのオプションを表19-9に示します。
表19-9 パラメータ
| 属性 | 説明 | 必須 |
|---|---|---|
classpath
|
ユーザー・クラス・ファイルを検索する場所を指定します。この属性はPATH構造に似ており、ネストしたクラスパス要素を通じて設定することもできます。
|
いいえ |
deploy
|
BPELプロセス・アーカイブを、ローカルのOracleホームの指定されたドメインにデプロイします。このオプションが機能するためには、ファイル・システム経由でドメインにアクセスできることが必要です。 | いいえ |
force
|
常にプロセスをコンパイルします。コンパイラでは.bpelファイル、.wsdlファイルおよび.xmlファイルのタイム・スタンプはチェックされません。デフォルト値はfalseです。
|
いいえ |
help
|
ヘルプ・メッセージを表示します。デフォルト値はfalseです。
|
いいえ |
home
|
orabpelホーム・ディレクトリ(またはSOA_Oracle_Homeとして指定した任意のディレクトリ)。通常は、antプロパティ$homeとして使用できます。
|
いいえ |
input
|
デプロイメント・ディスクリプタのロケーション・パス。デフォルトでは、現行ディレクトリのbpel.xmlを検索します。
|
いいえ |
keepGenerated
|
BPELプロセスのJavaクラスを生成されたBPELアーカイブに組み込みます。デフォルト値はfalseです。
|
いいえ |
lib
|
Oracle BPEL Process Managerのシステムlibディレクトリ。
|
いいえ |
out
|
BPELアーカイブをデプロイする場所を指定します。このオプションを使用するのは、deploy属性を使用しない場合です。たとえば、次のようになります。
|
いいえ |
rev
|
デプロイ済のプロセスのリビジョン(バージョン)・タグ。 | いいえ |
verbose
|
コンパイラ処理に関する追加のデバッグ・メッセージを生成します。デフォルト値はfalseです。
|
いいえ |
次のantタスクでは、デフォルトのbpel.xmlデプロイメント・ディスクリプタを使用して、BPELアーカイブ・ファイルのコンパイルおよび生成が現行ディレクトリで行われます。
BPELアーカイブをdefaultドメイン・デプロイ・ディレクトリにデプロイするには、次のbpelcタスク・サンプルを使用します。
<bpelc home="${home}" rev="${rev}" deploy="default"/>
BPELアーカイブをc:¥myprojectディレクトリにデプロイするには、次を使用します。
<bpelc home="${home}" rev="${rev}" out="C:¥myproject"/>
デプロイメント・ディスクリプタのファイル名を指定するには、次を使用します。
<bpelc home="${home}" rev="${rev}" deploy="default" input="orderdd.xml"/>
bpelcにユーザーのclasspathを指定するには、次を使用します。
<bpelc home="${home}" rev="${rev}" deploy="default"/>
<classpath>
<pathelement location="dist/test.jar"/>
<pathelement path="${java.class.path}"/>
</classpath>
</bpelc>
schemac(UNIXオペレーティング・システムではschemac.sh)は、Oracle BPEL Process Managerに付属のスキーマ・コンパイラ・ユーティリティです。このユーティリティを使用して、XML Facadeを生成します。XML Facadeとは、BPEL(および他のXML)変数にアクセスして変更したり、getおよびsetメソッドで個々のXML値をJava変数にマップするために使用する、一連のJavaインタフェースおよびクラスです。クラスは、complexTypesスキーマ・タイプ、および匿名のcomplexTypeの要素に対してのみ生成されます。これは、jaxbコンパイラに似ています。
オペレーティング・システムのコマンド・プロンプトからschemacを起動し、特定のタスクを実行できます。schemacのコマンドライン構文では次の書式が使用されます。
schemac optionsfilename|classname(s)
filenameは、.xsdで終わり、有効なXMLスキーマ定義を含むファイルの名前です。classnameは有効なJavaクラスの名前です(.java拡張子は付けません)。この引数は、-Rオプションを指定した場合にのみ使用します。
サポートされるオプションを表19-10に示します。
表19-10 パラメータ
| 属性 | 説明 | 必須 |
|---|---|---|
input
|
XMLスキーマは、有効なXMLスキーマ定義を含むファイルの名前です(.xsdまたは.wsdlで終わります)。
|
はい |
out
|
生成されたFacadeクラス・ファイルの配置場所を指定します。デフォルト値は現行ディレクトリです。 | いいえ |
doc
|
生成されたクラスのJavadocを生成し、それを指定された場所にリダイレクトします。 | いいえ |
jar
|
生成されたクラスを指定されたJARファイル名にアーカイブします。 | いいえ |
verbose
|
コンパイラ処理に関する追加のデバッグ・メッセージを生成します。デフォルト値はfalseです。
|
いいえ |
noCompile
|
trueに設定した場合、Javaソース・ファイルのみを生成し、生成されたソースをコンパイルしません。デフォルト値はfalseです。
|
いいえ |
help
|
ヘルプ・メッセージを表示します。デフォルト値はfalseです。
|
いいえ |
sourceOut
|
生成されたJavaファイルをリダイレクトする場所を指定します。たとえば、次のようになります。
|
いいえ |
nsMap
|
デフォルトのJavaパッケージ名をオーバーライドするには、ネームスペースをJavaパッケージ・マッピング・ファイルに指定します。たとえば、次のようになります。
注意: 名前値のプロパティ・ファイルの場合、円記号( |
いいえ |
XSDからFacadeクラスを生成し、現行ディレクトリに配置するには、次を使用します。
<schemac input="${basedir}/Order.xsd "/>
WSDLスキーマ・ファイルからFacadeクラスを生成するには、次を使用します。
<schemac input="${basedir}/PurchaseOrder.wsdl "/>
Javadocをc:¥myjavadocディレクトリに生成するには、次を使用します。
<schemac input="${basedir}/Order.xsd" doc="c:¥myjavadoc"/>
生成されたFacadeクラスを.jarファイルにアーカイブするには、次を使用します。
<schemac input="${basedir}/XPath.wsdl" jar="myorderfacade.jar"/>
生成されたFacadeクラスを特定のディレクトリにリダイレクトするには、次を使用します。
<schemac input="${basedir}/Order.xsd " out="${basedir}/BPEL-INF/classes"/>
ネームスペースのJavaパッケージ・マッピング・ファイルを指定し、デフォルトの動作を無効にするには、次を使用します。
<schemac input="${basedir}/Order.xsd " out="${basedir}/BPEL-INF/classes"
nsMap="mynsmap.txt"/>
この章では、BPELプロセスのコンパイルおよびデプロイ方法について説明しました。また、BPELスーツケースJARファイルの主要な機能についても説明しました。さらに、BPELドメインの作成および管理方法についても説明しました。これには、ドメインの作成、Oracle BPEL Serverのモード(本番または開発)の変更、BPELスーツケースJARファイルの管理、プロセスのアンデプロイが含まれます。BPELプロセスの複数バージョンの管理方法の詳細を含む、Oracle BPEL Controlの概要についても説明しました。最後に、ant、bpelcおよびschemacの各ビルド・ツールの使用方法について説明しました。