この章では、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
の各ビルド・ツールの使用方法について説明しました。