この章では、Oracle BPEL Process Managerに関する問題について説明します。内容は次のとおりです。
この項では、次の問題とその対処方法について説明します。
第9.1.1項「OC4Jインスタンスの名前が14文字以上の場合、Oracle BPEL Process Managerインストールが失敗する」
第9.1.3項「Oracle BPEL Process Manager for Developersインストール・タイプのかわりにSOA標準インストール・タイプを使用」
第9.1.5項「Oracle BPEL Process Managerのクラスタは、OPMNクラスタの一部である必要はない」
第9.1.12項「ループバック・アダプタがインストールされている場合、Windowsでのリモート・アプリケーション・サーバー接続に失敗する」
Oracle BPEL Process Manager for Oracle AS Middle Tierのインストール先であるOracle Application Server中間層のOC4Jインスタンスの名前は、13文字以下にする必要があります。OC4Jインスタンスの名前が14文字以上の場合、BPEL Process ManagerのConfiguration Assistantは、インストール時に失敗します。
Oracle JDeveloperのCodeCoach機能およびプロファイリング機能を使用するには、Oracle Client Java Virtual Machine(OJVM)をインストールする必要があります。
InstallOJVM
スクリプトを実行すると、指定されたJDKディレクトリにOJVMがインストールされます。インストールしたOJVMは、指定したJDKのOracle JDeveloperで新規作成されたあらゆるプロジェクトのデフォルトの仮想マシンになります。
SOA_Oracle_Home
¥integration¥jdev¥jdev¥bin
に移動します。
InstallOJVM.bat
を実行し、JDKルート・ディレクトリを指定します。次に例を示します。
InstallOJVM C:\OraBPELPM\integration\jdev\jdk
Oracle BPEL Process Manager for Developersインストール・タイプのかわりにOracle Application ServerのSOA標準インストール・タイプを使用することをお薦めします。
コールド・フェイルオーバー構成の場合、次のようにant-orabpel.properties
ファイルを手動で編集する必要があります。
『Oracle BPEL Process Managerインストレーション・ガイド』の「Oracle BPEL Process Managerクラスタ化」の章、「クラスタ化のシナリオとアーキテクチャ」の項に、次の序文があります。「Oracle BPEL Process Managerがインストールおよびクラスタ化されるJ2EEインスタンスは、OPMNクラスタの一部であることが必要です。この環境では、BPELアプリケーションをデプロイするときに、BPELアプリケーションの一部であるJ2EEアプリケーションがすべてのノード(稼働中の場合)に自動的にデプロイされます。」。この序文は無視してください。Oracle BPEL Process Managerは、OPMNクラスタの一部である必要はありません。
『Oracle BPEL Process Managerインストレーション・ガイド』では、フェイルオーバー時に残存ノードによってプロセス・インスタンスの実行が自動的に続行されるという誤った記述があります。クラスタ内の他のノードにより、最後のデハイドレーション・ポイントからインスタンスを再開することはできます。ただし、インスタンスは自動的に再開されません。インスタンスを再開する手順は、次のとおりです。
Oracle BPEL Controlの「BPELプロセス」タブに移動します。
「手動リカバリの実行」をクリックして、リカバリを開始します。
インスタンスを自動的にリカバリする場合、Remote Method Invocation(RMI)を介してサーバーに接続するスクリプト(Javaクライアントなど)を記述して、Oracle BPEL Process Manager API(Oracle BPEL Controlと同じメソッドを使用)によりリカバリ手順を開始できます。
ワークリスト・クライアント・コードの使用中に接続失敗エラーを回避するには、次の手順を実行します。
次のファイルに移動します。
SOA_Oracle_Home\bpel\system\services\config\wf_client_config.xml
エントリを探します。
servicesClientConfigurations\ejb\serverURL
前述のエントリを、次のファイルのjndi.url
プロパティと同じにします。
SOA_Oracle_Home\bpel\utilities\ant-orabpel.properties
ただしこれに/hw_services
を付加します。次に例を示します。
<serverURL>opmn:ormi://hostname:nnnnn:oc4j_soa/hw_services</serverURL>
次のファイルがクラスパスにあることを確認します。
SOA_Oracle_Home\bpel\system\services\config\wf_client_config.xml
次のインストール前手順は、10.1.2.0.2インフラストラクチャOIDに関連する、10.1.3.1パッチおよび10.1.3.1.0 BPEL J2EEスタンドアロン・インストールを使用している環境で必要です。
注意: 次のインストール前手順を実行するには、BPELサーバーを再起動する前に、ワークフローの設定ツールを実行するワークフロー関連ユーザーにOIDがシードされている必要があります。 |
次のコマンドを実行してインスタンスを停止します。
opmnctl stopall
次のフォルダにあるjazn.xml
ファイルのバックアップを作成します。
SOA_Oracle_Home\j2ee\home\config
同じディレクトリで、jazn.xml.save
nnnn
の名前を変更してjazn.xml
にします。
このファイルは、OIDがJ2EEインスタンスと関連付けられる前のjazn.xml
ファイルです。
jazn.xml
の内容が次のようになっていることを確認します。特に、太字のエントリが次のとおりであることに注意してください。
<?xml version = '1.0' encoding = 'UTF-8' standalone = 'yes'?> <jazn xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://xmlns.oracle.com/oracleas/schema/jazn-10 _0.xsd" schema-major-version="10" schema-minor-version="0" provider="XML" location="./system-jazn-data.xml" default-realm="jazn.com"/> "
次のコマンドを実行してインスタンスを起動します。
opmnctl startall
BPELをインストールします。
インストールが正常に完了した後で、インスタンスを停止します。
jazn.xml
を新規の名前に変更します(バックアップとして保持します)。
新規jazn.xml
としてLDAPのjazn.xml
のバックアップ・コピーを戻します。
インスタンスを起動します。
Oracle BPEL Controlが機能するためには、BPELでOID設定に必要な手動の手順に従います。
10.1.2.0.2インフラストラクチャOIDに関連する、10.1.3.1パッチおよび10.1.3.1.0 BPEL J2EEスタンドアロン・インストールを使用している環境では、次のエラー・メッセージを無視してください。
The operation is unsupported
このメッセージは、(Oracle Universal Installerが起動されたバックグラウンド・コンソールで)インストール中にパスワードを入力したときに表示されます。
『Oracle BPEL Process Managerインストレーション・ガイド』のタスク4: BPELプロセスのコンパイルとデプロイの項にあるBPELプロセスのクラスタ化手順を実行する場合、BPELプロセスをクラスタ内のすべてのノードにデプロイするようにしてください。
Oracle BPEL Process ManagerおよびOracle Enterprise Service Busのインストール方法によっては、アダプタ・エンドポイントのアクティブ化に影響が出る可能性があります。インストールを実行する前に、次の問題を確認してください。
次のコンポーネントを同じOracleホームにインストールする場合
Oracle Application Server 10.1.3.0
Oracle Application Server Patch Set 10.1.3.1
Oracle BPEL Process Manager for OracleAS Middle Tier(専用の10.1.3.1ソフトウェアCDを使用)
Oracle Enterprise Service Bus(専用の10.1.3.1ソフトウェアCDを使用)
または、次のコンポーネントをインストールする場合
Oracle Application Server SOA 10.1.3.1の「J2EEサーバーとWebサーバー」拡張インストール・タイプ
Oracle BPEL Process Manager for OracleAS Middle Tier(専用の10.1.3.1ソフトウェアCDを使用)
Oracle Enterprise Service Bus(専用の10.1.3.1ソフトウェアCDを使用)
アダプタ・エンドポイントのアクティブ化は、次の事例の場合に成功します。
Oracle BPEL Process ManagerおよびOracle Enterprise Service Busが、同じデフォルトのホームOC4Jコンテナの下にインストールされる場合
Oracle BPEL Process ManagerおよびOracle Enterprise Service Busが同じコンテナ(ホームOC4Jコンテナ以外)の下、および(ホームOC4Jコンテナと)同じデフォルト・グループの下にインストールされる場合
Oracle Application Serverおよびループバック・アダプタがインストールされているリモートのWindowsホストへのアプリケーション・サーバー接続をOracle JDeveloperから作成できません。
対処方法として、次のいずれかの手順を実行してください。
ループバック・アダプタを削除し、リモート・ホスト上でOracle Process Manager and Notification Server(OPMN)を再起動します。
Oracle Application Serverおよびループバック・アダプタと同じホスト上にOracle JDeveloperをインストールします。
関連項目: ループバック・アダプタを削除する手順は、Microsoft Windowsオペレーティング・システム用の『Oracle Application Serverインストレーション・ガイド』を参照してください。 |
Integration Repository Creation Assistant(IRCA)を実行してOracle XEデータベース内にOracle SOA Suiteリポジトリ(デハイドレーション・ストア)を作成すると、次のエラーが表示されます。
ERROR: Cannot find java executable - \bin\java.exe" Please verify that the JAVA_HOME is set correctly.
これは、Windows上に、Oracle XEデータベースとともにJava Runtime Environmentがインストールされていないためです。次の手順を実行して、Java Runtime Environmentをインストールおよび構成します。
http://java.sun.com/javase/downloads/index.jsp
を参照します。
Java SE Development Kitバージョン1.4以上をダウンロードします。
次の手順で、JAVA_HOME
環境変数を設定します。
Windows 2000 — 「スタート」 > 「設定」 > 「コントロール パネル」 > 「システム」を選択します。
Windows 2003 — 「スタート」 > 「コントロール パネル」 > 「システム」を選択します。
Windows XP — 「スタート」 > 「コントロール パネル」を選択し、「システム」をダブルクリックします。
「詳細設定」タブを選択します。
「環境変数」をクリックします。
「システム環境変数」セクション内の「新規」をクリックします。
名前にJAVA_HOME
値を、値にはJavaインストールのパスを入力します。
IRCA.bat
を実行します。
この項では、次の問題とその対処方法について説明します。
第9.2.1項「マルチパートSOAPメッセージをOracle BPEL Process ManagerとリモートWebサービスの間で交換できない」
第9.2.7項「Oracle JDeveloperから生成されたWSIFバインディングにはOracle BPEL Process Managerとの相互運用性がない」
第9.2.10項「Oracle JDeveloperでoc4jadmin以外を使用したアプリケーション・サーバー接続の作成」
第9.2.11項「編集モードでアダプタ構成ウィザードを実行すると、空のBPELプロセス内のプロパティの別名が削除される」
第9.2.12項「JavaクラスのBPELProcessRevisionInfoは、BPELProcessMetaDataに移動」
マルチパートSOAPメッセージは、Oracle BPEL Process Managerと、別のOracle BPEL Process Managerまたはその他のサードパーティWebサービス・コンテナのいずれかで実行しているリモートWebサービスの間で交換できません。
Oracle JDeveloperの「コンポーネント・パレット」にある「サービス」の下にリストされている他のサービスと同様に、デシジョン・サービスを「サービス」スイムレーンの1つにドラッグする必要があります。サービスはBPELダイアグラムのアクティビティ領域にはドラッグできません。ただし、インタフェースにはデシジョン・サービスをアクティビティ領域にドラッグできないことを示すビジュアル・インジケータがありません。ドラッグしても何も起こりません。
デシジョン・サービスはOracle JDeveloperで編集できません。削除して再作成する必要があります。
相関セットがプロセス・バージョン間で変更された場合、最新のデプロイ・バージョンが以前のデプロイ・バージョンの相関セットを上書きします。バージョン1のインスタンスが進行中であり、続いて新規にバージョン2がデプロイされ、相関セットが変更された場合は、この上書きが問題になることがあります。
リリース10.1.2.0.2のHeaderHandler
インタフェースは10.1.3.1.0環境に移植できません。メソッド・シグネチャに次の変更を加える必要があります。
リリース10.1.2.0.2の該当箇所:
public void invoke(CXPartnerLink partnerLink, String operationName, Map payload, Map header, Map callProps)
リリース10.1.3.0.1での変更:
public void invoke(CXPartnerLink cXPartnerLink, String string, Map map, List list, Map map1)
「編集 Decide」ウィンドウで、実行する起動パターンの操作を選択できます。選択可能な操作は、「デシジョン・サービス・ウィザード」の「ルールセットまたは関数の選択」ウィンドウで選択した起動パターンに基づいています。これらの操作の説明を参照するには、次のいずれかを実行してください。
Oracle BPEL Process Managerは、Oracle JDeveloperで作成されたWSIFバインディングと相互運用ができないため、Javaバインディング・サービスに渡したJava BeansまたはXDK JAXBオブジェクトをサポートできません。
Java Webサービスの生成時に、SOAPのRPCタイプおよびWSIFバインディング・オプションを選択できます。選択すると、Javaバインディング対応のWSDLはOracle BPEL Process Managerと相互運用できます。ただし、これはJavaコードに複合型参照がない場合にのみ機能します。
このリリースでは、xpath-functions.xml
ファイルがSOA_Oracle_Home
¥bpel¥system¥config
ディレクトリに移動されました。また、これらの機能へのコンソール・リンクは、「XPathライブラリ」リンクの下のOracle BPEL Admin Console(http:¥¥
hostname:port
¥BPELAdmin
)に表示されます。
BPELプロセスを作成するときに、XSDファイル名がマルチバイト・キャラクタをサポートしません。
デフォルトで、oc4jadmin
ユーザーには、Oracle JDeveloperの「接続ナビゲータ」でアプリケーション・サーバー接続を作成する権限と、プロセスをdefault
のBPELドメインまたはその他の自分で作成した他のドメインにデプロイするための権限が含まれています。別のユーザー・アカウント(たとえばdefault
ユーザー・アカウントまたは新規のユーザー・アカウント)を使用してOracle JDeveloperでアプリケーション・サーバー接続を作成する場合は、次の手順を実行する必要があります。
oc4j-administrators
グループにユーザー・アカウントを含めます。
ユーザー・アカウントに、そのユーザーが作業するドメインに対する権限を付与します。
プロパティの別名が定義されている空のBPELプロセス内で、編集モードでアダプタ構成ウィザードを実行する場合、次の動作に注意してください。
空のBPELプロセスを作成します。
アダプタ構成ウィザードにより、サービスを作成します。
「構造」ウィンドウでプロパティの別名を作成します。別名は、アダプタWSDLファイル内で定義されます。
アダプタ構成ウィザードを再実行します。
これにより、手順3で作成したプロパティの別名がアダプタWSDLファイルから削除されます。
対処方法として、編集モードでアダプタ構成ウィザードを実行しないでください。かわりに、アダプタWSDLファイルを直接編集します。
JavaクラスのBPELProcessRevisionInfo
は、BPELProcessMetaData
に移動しました。オブジェクトへのハンドルは、IBPELProcessHandle.getMetaData()
から取得できます。
この項では、次の問題とその対処方法について説明します。
第9.3.5項「Oracle BPEL Controlの「デプロイ済のプロセス」の下にTaskManagerがリスト表示されない」
第9.3.6項「WindowsでBPELプロセス用の実行時WSDLのエンドポイントがLOCALHOSTとして定義されている」
第9.3.10項「HW_ServicesアプリケーションでJSSOが使用可能な場合、OBANT.SHはJSSOのログインを処理しない」
第9.3.11項「10.1.2アプリケーション・サーバー接続で表示されるClassCastExceptionエラー・メッセージ」
第9.3.14項「Enterprise ManagerコントロールでOracle BPEL Process Managerのいくつかの機能が提供されない」
第9.3.15項「Oracle Enterprise Managerを介したOracle BPEL Process Managerの起動」
Oracle JDeveloperまたはobant
を使用してWindows Vistaオペレーティング・システム上でBPELプロセスをデプロイする場合、SOA_Oracle_Home
¥bpel¥utilities¥ant-orabpel.properties
ファイル内の
hostname = hostname.us.oracle.com
を次のように変更します。
hostname = 127.0.0.1
そうでない場合、プロセスのデプロイは失敗します。
ご使用のネットワーク環境でデプロイに使用しているORMIのURLがホスト名を使用しないで、(DMZネットワーク構成内などの)ローカルホストを使用している場合は、次のエラーが表示されることがあります。
...Missing ormi[s]://<host>:<port>
次のファイルのプロパティhostname
の値をローカルホストに変更する必要があります。
SOA_Oracle_Home\bpel\utilities\ant-orabpel.properties
複数のファイル・アダプタ・ポート(受信)を使用するBPELプロセスで、Oracle BPEL Controlの「ディスクリプタの更新」機能を使用しディレクトリ参照情報を変更すると、bpel.xml
ファイルが正常に更新されません。たとえば、ファイル・アダプタが(物理パスにではなく)ディレクトリ・パスに対して論理名を使用し、BPELプロセスのデプロイ後に、論理ディレクトリのプロパティ値から実際の物理ディレクトリに変更するとします。Oracle BPEL Controlからの更新プロセスでは、物理ディレクトリ値を設定した新規プロパティを追加し、論理名用の既存のプロパティも同様に残します。実行時に、変更は有効になりません。
Oracle BPEL Controlの「ディスクリプタの更新」機能で使用している受信ファイルのディレクトリ情報を更新する場合は、複数のファイル・アダプタ・ポートを使用するBPELプロセスを再デプロイする必要があります。
これは、どの階層内の最上位ユーザーにも該当します。この説明では、ユーザーcdickens(デモ・ユーザー・コミュニティの最上位ユーザー)を使用します。
アイデンティティ・ルックアップ・ダイアログで、「ユーザーの検索」リストからcdickensを選択し、「階層」をクリックした場合、cdickensについて「報告先がありません」というメッセージが表示されます。これは、wfaulkがcdickensに報告するので正しくありません。ただし、cdickensを選択し、「報告先」をクリックすると、wfaulkが正常に表示されます。
TaskActionHandlerおよびTaskManagerは、Oracle BPEL Controlのデプロイ済のプロセスとして表示されます。TaskManagerが表示されない場合は、次の手順を実行します。
Oracle BPEL Controlを停止します。
次のようにbpel_TaskActionHandler.jar
をコピーします。
SOA_Oracle_Home
/bpel/install/extensions
から
SOA_Oracle_Home
/bpel/domains/default/deploy
へ
Oracle BPEL Controlを再起動します。
BPEL実行時、次のようにWSDLエンドポイントがlocalhost
に指定されます。
<soap:address location="http://localhost:9700/orabpel/default/TestUDDIService/1.0 . . .
ただし、別のホストからこのプロセスを起動した場合、別のプロセスからの起動またはコール時にエラー・メッセージが表示されます(一般的なバインディングの失敗)。
このエラーを避けるには、次のファイルでlocalhost
をホスト名に再設定します。
SOA_Oracle_Home/bpel/system/config/collaxa-config.xml
プロセスを再デプロイします。
OracleAS Integration InterConnectがAQアダプタを使用してメッセージを公開し、Oracle BPEL Process Managerがそのメッセージをサブスクライブしている環境でアプリケーションをデプロイすると、次のエラー・メッセージが表示されます。
<2006-09-25 04:10:36,421> <ERROR> <default.collaxa.cube.engine> <DomainObserverRegistry::notify> Error while notifying observer class com.collaxa.cube.ws.soap.oc4j.BPELOC4JServlet$1 with aspect class com.collaxa.cube.engine.observer.ProcessInitAspect oracle.webservices.provider.ProviderException: No service @ {http://xmlns.oracle.com/pcbpel/adapter/ic/implement/Item/Is_Item_Available/OA I/V1}Item defined in the WSDL at oracle.j2ee.ws.server.provider.ProviderConfigImpl.getServiceName(ProviderConfigImpl.java:312) . . .
エラー・メッセージは無視してかまいません。アプリケーションはデプロイされ、BPELプロセスは正常に実行されます。
空のBPELプロセスを作成し、Java Webサービス作成ウィザードを起動してパートナ・リンクの作成を開始すると、パートナ・リンクがまだ作成されていない場合は、コンパイル・エラーが発生します。
かわりに、次のいずれかを実行できます。
パートナ・リンク作成前に、別のJava Webサービスを作成します。「パートナ・リンクの作成」ダイアログ・ボックスおよび「サービス・エクスプローラ」を使用して、WSDLファイルを取得します。
同期テンプレートまたは非同期テンプレートで起動し、パートナ・リンクを作成します。その後で、クライアント・パートナを削除できます。
BPELプロセスにinvokeアクティビティとreceiveアクティビティのループが含まれる場合、ユニット・テストの生成機能が正常に動作しません。
JSSOモードでは、deployProcess
タスク(obant
により起動)は、Oracle HTTP Serverからの応答として、入力用のJSSOログイン・フォームを取得します。タスクはこれを処理しません。タスクは、タスクが正常にデプロイされたと応答します。しかし、hw_servicesアプリケーションはJSSOを使用可能にできません。
リリース10.1.2では、接続マネージャがスタンドアロン・モードで動作し、Oracle BPEL Serverとアプリケーション・サーバー・コンテキストの確立なしに直接通信を行っていました。その結果、デプロイ時にユーザー名とパスワードを要求されました。リリース10.1.3.1.0では、接続マネージャはユーザー名、パスワード、URLなどの情報をアプリケーション・サーバー接続から取得します。このため、統合接続が構築される前に、アプリケーション・サーバー接続を作成する必要があります。アプリケーション・サーバー接続に格納されたデータは、接続マネージャでビジネス・プロセスのデプロイに使用されます。ユーザー名およびパスワードはアプリケーション・サーバー接続にすでに知られているため、接続マネージャは、デプロイ時にユーザー名とパスワードを要求しません。この変更のために、10.1.2接続は10.1.3.1.0では無効になり、ClassCastException
エラー・メッセージを生成します。
Oracle JDeveloperでは、複数のIPアドレスを持つ10.1.3アプリケーション・サーバーへの接続を作成する場合、「接続のテスト」機能が次のエラー・メッセージを返します。
Error getting OC4J Process for: ... : Error connecting to OPMN (is it running?): Connection refused: connect
Oracle JDeveloperからサーバーへの接続を作成するには、一意のIPアドレスを指定する必要があります。
chgiphost
コマンドを使用する場合は、次の手順も実行する必要があります。
Oracle BPEL Serverを停止します。
tmp
ディレクトリが存在する場合は、削除します。
SOA_Oracle_Home/bpel/domains/domain_name/tmp/
Oracle BPEL Serverを再起動し、すべてのプロセスを再デプロイします。
リモート・クローニングの場合も、この手順に従います。
中間層のインストール・タイプのいずれかを含むホストのホスト名またはドメイン名を変更する方法は、『Oracle Application Server管理者ガイド』を参照してください。Oracle BPEL Process Managerのtmp
ディレクトリがクローニング後のインスタンスに存在する場合の削除方法は、タスク8: Oracle BPEL Process Managerアプリケーションの再デプロイに関する項で説明します。
このリリースでは、次の点に注意してください。
Enterprise Managerは、カスタムBPELページを表示しません。現在、OC4Jを通じて追跡しています。
Enterprise Managerは、アダプタ・メトリックを表示しません。現在、Oracle BPEL Controlで使用できます。
通知パラメータは、プロパティを使用して更新されます。たとえば、デフォルトで3回の通知サービスの再試行を(たとえば、5回に)変更する場合は、SOA_Oracle_Home
/bpel¥system¥services¥config¥wf_config.xml
に次のプロパティを追加し、Oracle BPEL Serverを再起動します。
<property name="oracle.bpel.services.notification.maxattempt" value="5" />
詳細は、『Oracle BPEL Process Manager開発者ガイド』の通知サービスに関する章を参照してください。
このリリースでは、Oracle BPEL Process Managerはorabpel
という名前のアプリケーションで、親のOC4Jコンテナ・インスタンス(たとえばhome
またはoc4j_soa
という名前)の下に置かれます。Oracle BPEL Process ManagerをOracle Enterprise Manager 10g Application Server Control Consoleを介して再起動するには、Oracle BPEL Process Managerがインストールされた親のOC4Jコンテナ・インスタンスか、Oracle Application Serverインスタンス全体のどちらかを再起動する必要があります。この操作により、関連するすべてのアプリケーション(ヒューマン・ワークフロー用のhw_services
など)が再起動し、デプロイされたすべてのBPELプロセスがOracle BPEL Controlに表示されます。
orabpel
またはhw_services
アプリケーションを再起動しただけでは、すべてのBPELプロセスがOracle BPEL Controlにロードおよび表示されるようにはなりません。
この項では、次の問題とその対処方法について説明します。
第9.4.1項「Identity Managementをサポートするための、Oracle Application Server上のOracle BPEL Process Managerの手動構成」
第9.4.10項「SSLをサポートするためのTaskActionHandlerおよびTaskManagerサービスの構成」
第9.4.22項「BPELプロセス・インスタンスに関連するヒューマン・タスクのフレックス・フィールド・マッピングの制限」
Oracle BPEL Process ManagerをOracle Application ServerにインストールしてIdentity ManagementおよびMetadata Repositoryを使用するには、基礎となるOracle Application ServerにIdentity Managementが構成されていない場合は、インストール後の手順としてOracle Internet Directoryを手動で構成する必要があります。
Identity Managementがすでに構成されたOracle Application Server中間層を使用している場合、このインストール後の手順は実行しないでください。構成は、インストール時に自動的に実行されます。
たとえば、Portal and Wireless中間層インストール・タイプにはOracle Internet Directoryが必要なため、このタイプの中間層にOracle BPEL Process Managerをインストールする際、構成は自動的に実行されます。
次のコード内でイタリック表記されている値は、ご使用の環境に適した値に置き換えてください。
SOA_Oracle_Home
¥j2ee¥OC4J_BPEL¥config¥jazn.xml
に、次のjazn provider
要素のエントリが含まれていることを確認します。
<jazn provider="LDAP" location="ldap://host:port" default-realm="us"> <property name="ldap.user" value="cn=orcladmin"/> <property name="ldap.password" value="!welcome1"/> </jazn>
SOA_Oracle_Home
¥bpel¥system¥services¥config¥is_config.xml
に、次のprovider
要素のエントリが含まれていることを確認します。
<provider providerType="JAZN" name="oid"> <connection url="ldap://host:port" binddn="cn=orcladmin" password="welcome1" encrypted="false"/> </provider>
SOA_Oracle_Home
¥j2ee¥OC4J_BPEL¥application-deployments¥hw_services¥orion-application.xml
に、次のjazn provider
要素のエントリが含まれていることを確認します。
<jazn provider="LDAP" location="ldap://host:port" default-realm="us" > <jazn-web-app auth-method="SSO"/> </jazn>
bpelportlet.ear
WebプロバイダがOracle Enterprise Managerを介してデプロイされる場合、SOA_Oracle_Home
¥j2ee¥OC4J_BPEL¥application-deployments
¥bpelPortlet¥orion-application.xml
を次のように手動で構成します。
<jazn provider="LDAP" location="ldap://host:port" default-realm="us" > <jazn-web-app auth-method="SSO"/> </jazn>
ワークフローを含むBPELプロジェクトをOracle JDeveloperからデプロイする必要があります。obant
のようなコマンドライン・ツールは使用しないでください。コマンドライン・デプロイを使用する場合、ペイロード表示のようなJSP機能は動作しません。
ワークフロー・ウィザードの「ワークフロー・パターン」ウィンドウに表示される「ワークフロー名」フィールドには、ピリオドを含む名前を入力しないでください。
ユーザー・タスク・アクティビティにBPELプロセスをコンパイルする場合、Oracle JDeveloperの「ログ」ウィンドウに表示される次のような警告を無視できます。
Warning(443): [Error ORABPEL-10041]: Trying to assign incompatible types [Description]: in line 443 of "C:\apr20\integration\jdev\jdev\mywork\Application1\BPELProcess4\BPELProcess4.bpel ",<from> value type "{http://www.w3.org/2001/XMLSchema}anyType" is not compatible with <to> value type "{http://www.example.org}book anonymous type".
この警告は、anyType
がanonymous
型に割り当てられていることを示しています。これらの警告は無視しても問題ありません。クエリーfrom-spec
の戻り値が、クエリーto-spec
と互換性があることを確認します。
ユーザー・タスク・アクティビティを削除して再作成する場合は、次の手順を実行してください。
BPELプロジェクトの「ダイアグラム・ビュー」に移動します。
ユーザー・タスク・アクティビティのscopeアクティビティおよびswitchアクティビティを削除します。これらのアクティビティは、ユーザー・タスク・アクティビティのワークフロー・ウィザードを実行した際にプロジェクトに作成されたものです。
パートナ・リンクを削除します。
プロジェクトからWSDLまたはXSDファイルを削除します。これらのファイルは削除することをお薦めしますが、必須ではありません。
ワークフローを設計するための新しいユーザー・タスク・アクティビティを作成します。
Oracle BPELのワークリスト・アプリケーションの「カテゴリ」リストを使用すると、検索するユーザー、グループまたはタイトルのカテゴリ(GroupやReporteesなど)を選択できます。前回の検索結果の値も表示されることに注意してください。たとえば、最初にGroupカテゴリを検索し、その結果が表示されているとします。次にReporteesに対して検索を実行すると、最初の検索結果と2番目の検索結果の両方が表示されます。これは予期されている動作です。「すべて選択」や「すべて選択解除」を使用して、一括選択や、選択の解除ができます。これらのボタンは、選択したリストに複数のユーザーが含まれる場合にのみ表示されることに注意してください。
この問題は、まだワークリスト10.1.2のAPIを使用している場合にのみ該当します。
タスクをリストする場合、それぞれのタスクにはサマリー情報のみが含まれ、ペイロード、添付ファイルおよび履歴などの詳細情報は含まれません。タスクの詳細を取得するには、getWorklistTaskDetails()
APIをループ内で明示的にコールします。
ループを実行してタスクの詳細を取得する処理は、リソースを消費します。通常は、一度に1つのタスク詳細を表示します。このメソッドは、詳細を取得するタスクに対してのみコールしてください。for
ループ・コードを次のように変更します(タスクの詳細を取得する1行を追加します)。
for (int i=0; i<tasks.size(); i++) { IWorklistTask thisTask = (IWorklistTask)tasks.get(i); if ( <condition> ) { // task matches some condition thisTask = wlSrvc.getWorklistTaskDetails(ctx, thisTask.getTaskId()); .... Form form = null; form = PayloadFormGenerator.getMappingForm(thisTask); .... } }
この問題は、まだワークリスト10.1.2のAPIを使用している場合にのみ該当します。
自動化されたクライアントにより、Oracle BPEL Serverよりも高速にタスク操作が実行されることがあります。これにより、メッセージが失われる可能性があります。この問題は解決されていますが、対処方法として、次の例に示すように、タスク操作間にわずかな遅延(約5秒)を追加します。
client.updateTask(ctx, task); Thread.sleep(5000); // sleep for 5000 milliseconds client.customTaskOperation(ctx, taskId, "DONE");
Oracle Application Server中間層でカスタム・アイデンティティ・サービス・プロバイダのプラグイン・サンプルを使用するには、build.xml
ファイルで次の変更を行います。
SOA_Oracle_Home
¥bpel¥samples¥hw¥isplugin¥db¥build.xml
ファイルを開きます。
15行目にある
<pathelement location="${classpath}" />
を次のように変更します。
<pathelement location="${client.classpath}" />
67行目にある
<sysproperty key="java.naming.provider.url" value="ormi://${hostname}"/>
を次のように変更します。
<sysproperty key="java.naming.provider.url" value="${jndi.url}"/>
Oracle Application Server中間層のOracle BPEL Process ManagerをSecure Socket Layer(SSL)サポートで構成する場合、次の変更を行い、TaskActionHandlerサービスおよびTaskManagerサービスがBPELプロセスに対して正しくロードされるか確認する必要があります。
SOA_Oracle_Home
¥bpel¥domains¥
domain_name
¥tmp
の下にある.bpel_TaskManager_1.0.jar
および.bpel_TaskActionHandler_1.0.jar
ディレクトリを削除します。
Oracle BPEL Serverを再起動します。
これらの手順により、TaskManagerおよびTaskActionHandlerプロセスに対する正しいサービス・バインドとWSDLファイルが再作成され、HTTP/Sベースのエンドポイントからの使用が可能になります。
注意: BPELクラスタの一部としてOracle BPEL Process Managerがインストールされている場合は、BPELクラスタを作成した後、これらの手順をそれぞれのBPELクラスタ・ノードについて実行する必要があります。 |
タスク・エディタの「詳細設定」では、タスクの添付ファイルに指定するためにXSL
ファイルを参照する際、テキスト・フィールドに.xsl
ファイル名は受け入れられますが、ディレクトリのフルパスは受け入れられません。ただし、ディレクトリのフルパスを指定しないと、ファイルが実行時に見つからず、解析エラーが発生します。
実行時エラーを回避するには、まずスタイルシートをタスク・ファイルのあるプロジェクト・ワークフロー・ディレクトリにコピーします。次に、タスク・エディタで、そのスタイルシートを参照します。
ワークリスト・アプリケーションでの操作中に、内部サーバー・エラーからの回復が必要な場合があります。たとえば、「ログイン」ページへリダイレクトされて再ログインすると、「戻る」ボタンをクリックするように要求する内部サーバー・エラー・メッセージが表示される場合、次のような回復処理を行います。
Webブラウザ(Internet Explorer 6.0またはMozilla Firefox 1.0.4.)を開きます。
ワークリスト・アプリケーションのURLに移動します。
http://hostname:portnumber/integration/worklistapp/Login
hostname
は、Oracle BPEL Process Managerがインストールされているホストの名前です。
インストール時に使用されるportnumber
(通常は9700または8888)は、次の場所にあるbpelsetupinfo.txt
に記されています。
SOA_Oracle_Home\install\
「スタート」、「すべてのプログラム」、「Oracle - Oracle_Home」、「Oracle BPEL Process Manager」、「Worklist Application」の順に選択します。
ユーザー名とパスワードを入力し、「ログイン」をクリックします。
トランザクションを続行します。
注意: OC4Jフェィルオーバー発生後に、この回復も内部サーバー・エラーとして動作します。 |
ヒューマン・ワークフロー・タスクでは、updateTaskOutcomeAndRoute
フラグがfalseに設定されていて、タスクでupdateTaskOutcomeAndRoute
メソッドがコールされると、エラー・メッセージを表示するかわりに次のNULLポインタ・エラーがスローされます。
[java] Error in evaluating routing slip.
[java] Error while evaluating the routing slip
@ http://hostname:portnumber/orabpel/default/wfsvc1/1.0/HumanTask1/HumanTask1.task
This routing slip is used by workflow default_wfsvc1_1.0_HumanTask1
[java] Please check the underlying exception and correct the error in the routing
slip. Contact oracle support if error is not fixable.
updateTaskOutcomeAndRoute
メソッドは、対応するフラグがfalseに設定されている場合は許可されません。
ヒューマン・タスク・アクティビティを、もう1つのアクティビティ(たとえば、assign)を含むスコープ・アクティビティ内にドラッグすると、タスク定義を作成するために指定した情報が表示されない場合があります。つまり、展開時に、ヒューマン・タスク・アクティビティが空で表示されます。
正しい結果を取得するには、次のいずれかを実行します。
空のアクティビティ(no-op)を、スコープ内部の既存のアクティビティの上または下にドラッグします。次に、ヒューマン・タスク・アクティビティを追加します。後で、空のアクティビティを削除できます。
または、他のどのアクティビティよりも先に、ヒューマン・タスク・アクティビティがスコープ内にドロップされるようにします。
ワークリスト・アプリケーションの生産性レポートの生成に作成日が必要であることはインタフェースでは示されませんが、作成日を指定しないかぎりレポートは生成されません。
ワークリスト・アプリケーションは、SSOおよびJSSOをサポートしないサンプル・アプリケーションです。
本番環境でワークリスト・アプリケーションのような非SSO準拠のアプリケーションが公開されるのを回避するには、次の手順を実行します。
SOA_Oracle_Home
/j2ee/home/config/default-web-site.xml
ファイルを開きます。
このようなアプリケーションを参照する次の行をコメント・アウトまたは削除します。
<web-app application="hw_services" name="worklistapp" load-on-startup="true" root="/integration/worklistapp" />
サーバーを再起動します。
BPELでヒューマン・タスク・アクティビティを使用している場合に、データベース・アクセス・レベルで高いCPU使用率になることがあります。これが発生するのは、一般に、タスクのロードが非常に不均等に分配された場合、たとえば多くのタスクが短時間に作成された場合などです。これはデータベース索引の動作に影響します。この問題を解決するには、定期的(1日1回)に、またはこの問題が発生した際に、DBAが該当する表を次のように分析することが可能です。
analyze table orabpel.wftask compute statistics; analyze table orabpel.wfassignee compute statistics;
ワークフロー・フォルダのコンテキスト・メニューを使用してください。.task
レベルのコンテキスト・メニューは機能しません。
電子メール通知のコンテンツにマルチバイト・キャラクタを含むことができません。
アプリケーション・サーバー接続のOC4Jインスタンスが正しくない場合、BPELプロセスのデプロイ・エラーを受信します。たとえば、スタンドアロンのOracle BPEL Process Manager for Developersインストール・オプションで作成されたデフォルトのOC4Jインスタンスのhome
を使用するようにその接続が構成され、実際のSOA環境では拡張SOAインストール・オプションで作成されたOC4Jインスタンスのoc4j_soa
を使用していると想定します。
このエラーを受信した場合、次の手順を実行してください。
Oracle JDeveloperの「接続ナビゲータ」に移動します。
「アプリケーション・サーバー」を開きます。
使用しているアプリケーション・サーバー接続をダブルクリックします。「アプリケーション・サーバー接続の編集」ウィンドウが表示されます。
「接続」タブをクリックします。
「OC4Jインスタンス名」フィールドをデフォルト値のhome
からoc4j_soa
に変更します。
「テスト」タブをクリックします。
「接続のテスト」をクリックして接続が成功することを確認します。
「OK」をクリックします。
BPELプロセスを再デプロイします。
BPELプロセスを作成し、最上部にSwitchアクティビティを追加した後、SwitchアクティビティのCaseブランチにHuman Taskアクティビティを追加すると、BPELプロセスのコンパイル時にエラーを受信します。
対処方法として、次の手順を実行してください。
SwitchアクティビティのCaseブランチにSequenceアクティビティを追加します。
Sequence内にHuman Taskアクティビティを追加します。
ヒューマン・タスクのフレックス・フィールド機能を適切に動作させるには、対応するBPELプロセスのデプロイ後、必ずプロセス・インスタンスの作成前に、ヒューマン・タスク・ペイロードに対しフレックス・フィールド・マッピングを実行する必要があります。フレックス・フィールド・マッピングを実行する前にBPELプロセス・インスタンスが作成された場合、対応するタスク・インスタンスにはフレックス・フィールドのデータが含まれず、したがってこれを表示および検索することはできません。
『Oracle BPEL Process Manager開発者ガイド』のユーザーおよびロール・プロパティに関する項では、使用可能なアイデンティティ・サービスのユーザー・プロパティとその使用要件が識別されています。アイデンティティ・サービスの使用については、次の付加的なユーザー・タスク・エスカレーション要件に注意してください。
すべてのタイプのアイデンティティ・プロバイダでユーザー役職属性はオプションです。
エスカレーション・ポリシーでユーザー役職属性を使用すると、エスカレーションを指定のマネージャ役職に限定できます。
設計時にエスカレーション・ポリシーでマネージャ役職を指定する場合、その役職はユーザー管理チェーンからのユーザー・マネージャ役職と一致する必要があります。一致しない場合は、指定したユーザーの管理チェーン全体が使用されます。
設計時には、役職パターンにワイルドカード文字を指定して、管理チェーン内で役職がパターンと一致する最初のユーザーを検索できます。たとえば、タスクをManager
、Sr.Manager
またはDev.Manager
の役職を持つマネージャにエスカレートする場合、エスカレーション・ポリシーで*Manager
を指定できます。タスクは、チェーン内で役職が*Manager
パターンと一致する最初のマネージャにエスカレートします。ただし、この役職が一致しなければ、指定したユーザーの管理チェーン全体が使用されます。
各LDAP実装では、検索可能な属性のリストを定義します。通常は、そのために属性の索引を作成します。詳細は、トランスポートのLDAPサーバーのドキュメントを参照してください。リリース10.1.3.xでは、ユーザーのマネージャ属性のマッピングはサポートされていません。この種の属性をマップする必要がある場合は、Oracle Virtual Directory(OVD)を使用できます。
この項では、次の問題とその対処方法について説明します。
ora:readFile
を使用した添付ファイルの送信では、.txt
および.html
の電子メール添付ファイルは受信電子メール内で破損します。.pdf
や.doc
など、その他の添付ファイル・タイプでは、問題が発生しません。
SMS通知アクティビティは、ユーザーのmobile
属性を受け入れません。かわりに、workPhone
属性を使用します。
通知アクティビティ(電子メール、FAX、ポケットベル、SMSまたはボイス)を「設計」ビューで作成し、「ソース」ビューに切り替えて、再び「設計」ビューに戻ると、通知アクティビティを展開したときに空で表示されます。ただし、アクティビティ作成時に指定した詳細は、まだ存在しています。「ソース」ビューには表示され、プロセスは正常にデプロイします。電子メール・アクティビティに添付ファイルを追加していて、生成されるスコープ内にassign文を追加する必要がある場合、「ソース」ビューに切り替えた後は、スコープの内容も「設計」ビューに表示されません。
展開時に空で表示された通知またはスコープ・アクティビティの詳細を表示するには、アイコンをダブルクリックして「アクティビティ」ダイアログを表示します。添付ファイルを電子メール・アクティビティに追加するには、「ソース」ビューを使用します。
リリース10.1.3からは、通知は電子メール・サーバーまたはメッセージ・ゲートウェイに次のように非同期で送信されます。
最初は、メッセージはJMSキューおよびデータベース表に保持されます。
その後、メッセージが非同期でJMSキューから取得され、電子メール・サーバーまたはメッセージ・ゲートウェイに配信されます。
エラーが発生すると、次のようになります。
JMSキューまたはデータベース表へのメッセージの永続中に発生したエラーの場合にのみ、NotificationServiceFault
がBPELプロセスまたはヒューマン・ワークフローにスローされます。
電子メール・サーバーまたはメッセージ・ゲートウェイへのメッセージ送信中に発生したエラーは捕捉され、通知が自動的に再試行されます。
電子メール・サーバーまたはメッセージ・ゲートウェイへのメッセージ送信中のエラーの場合、デフォルトで通知サービスは15分間隔で3回はメッセージを再送信しようとすることに注意してください。3回の再試行後も通知を送信できなければ、メッセージはERROR
としてマーク付けされ、メッセージ配信は再試行されません。
したがって、メッセージが通知サービスに配信された後、BPELプロセスまたはヒューマン・ワークフロー・タスクは、電子メール・サーバーまたはメッセージ・ゲートウェイに実際にメッセージが配信されるまで待たずに操作を続行できます。
この項では、次の問題とその対処方法について説明します。
トランスフォーメーション関連の問題は、第9.10.3項「変換における西ヨーロッパの数値書式の問題」を参照してください。
query-database()
、lookup-table()
またはsequence-next-val()
などのデータベース関数でJNDI名を使用し、MapTest
ユーティリティを使用してマップをテストしても、何も出力されません。対処方法として、JNDI名のかわりにJDBC文字列を使用します。
この項では、次の問題とその対処方法について説明します。
XPathビルディング・アシスタントを使用して(assignアクティビティの「コピー・ルールの作成」ウィンドウなどで)ハイフンを含むXPath式を作成すると、ハイフンで連結された要素に青い下線が表示され、次のようなエラー・メッセージが表示されます。
(34) Message part of name xyz-pqr- xyz not found
ハイフンで連結された要素がネストしている場合、XPathビルディング・アシスタントではbpws:getVariableData()
を続行できません。次に例を示します。
bpws:getVariableData('ug_in_var','users-and-groups','')
このエラーは、ほとんどの場合、ファイル・アダプタでネイティブ・フォーマット・ビルダー・ウィザードを使用する場合に発生します。ファイル・アダプタでは、Root-Element
のようにハイフンで連結された要素名がデフォルトで使用されます。
さらに、root = "publicKeyInfrastructureCertificateAuthorities"
およびelement = "publicKeyInfrastructureCertificateAuthority"
のように要素名が長くてラップされる場合も、XPath式の作成に失敗します。次のエラーが表示されます。
"publicKeyInfrastructureCertificateAuthorities" not found
かわりに、「コピー・ルールの作成」ウィンドウで式ビルダーのアイコンをクリックして、「XPath式ビルダー」ウィンドウを表示します。このウィンドウでは、要素にハイフンを含む式を作成することも、ラップされる長い名前を使用することも可能です。ハイフンを含む例を次に示します。
bpws:getVariableData('ug_in_var','users-and-groups','/ns2:users-and-groups/ns2 :user-or-group/ns2:name')
XPath式ビルダーでは、文脈上不適切なXPath式が選択されるのを回避しません。たとえば、タスク定義内(タスクの早期期限切れの設定など)で、正しいXPath式hwf:getNumberOfTaskApprovals()
ではなくbpws:getVariableData()
を使用しても、インタフェースでは作業の続行が許可され、最終的に「XPath式ビルダーの初期化に失敗しました」のようなエラー・メッセージを受け取ります。
assignアクティビティ内でのコピー操作中にXPath式ビルダーで文字列値を使用すると、スタック・トレースによってエラーが表示されます。ただし、このエラーは無視できます。機能性は失われません。
この項では、次の問題とその対処方法について説明します。
第9.8.4項「一部のOracle BPEL ControlのレポートがOracle Lite Databaseで使用できない」
第9.8.6項「BPELプロセスの再ロード中にOracle BPEL Serverウィンドウに表示されるエラーを無視できる」
第9.8.7項「Oracle BPEL Controlにメモリー不足エラーが表示され、Oracle BPEL Serverが再起動する」
第9.8.8項「Oracle Access Managerを使用したOracle BPEL Controlへのログイン」
第9.8.10項「Oracle Web Services ManagerによりOracle BPEL Process Managerに返されるエラー・メッセージ」
Oracle BPEL Admin Consoleでドメインを作成する場合、名前をすべて小文字のみで指定していることを確認してください。
Oracle BPEL Controlへのアクセスに、Safariブラウザを使用しないでください。このブラウザはサポートされていません。 サポートされているブラウザのリストは、『Oracle BPEL Process Manager開発者ガイド』または『Oracle BPEL Process Managerインストレーション・ガイド』を参照してください。
Oracle BPEL Controlのレポートを使用する場合は、次の問題に注意してください。
「問合せ」セクションの「終了日」フィールドの書式は、すべての言語についてmm/dd/yyです。
アクティビティ・センサーのレポートには、数字型の変数(integer、double、decimalおよびfloatなど)のみが表示されます。今回のリリースでは、数字以外の型はサポートされません。また、Oracle JDeveloperの「アクティビティ・センサーの作成」ウィンドウで、「評価時間」を「すべて」に設定したアクティビティ・センサーにのみデータが表示されます。
Albanyフォントがインストールされていない場合、グラフ内のアジア言語についてフォントが正しく表示されません(四角が表示されます)。Albanyフォントは、インストール時に適切なアジア言語を選択することによって自動的にインストールされます。
パフォーマンス・レポートのグラフで棒をクリックすると、表示される「インスタンス」ページにインスタンスの正しいリストが表示されないことがあります。これは、小数点を含む品質保証契約(SLA)値が最も近い整数に丸められるためです。たとえば、2つのインスタンスがあるとします。1つのインスタンスは3秒、もう1つのインスタンスは2秒で完了します。SLA値は2.6秒です。グラフには、一方のインスタンスが緑(SLA値を満たしていることを示す)、もう一方のインスタンスが赤(SLA値を満たしていないことを示す)で表示されます。赤い部分をクリックしてもインスタンスは表示されません。これはSLA値が3秒に丸められ、最初のインスタンスの完了時間と等しくなったためです。
デフォルトのSLA値は、ビジネス・プロセスのインスタンスが少なくとも1つ作成されていないと、パフォーマンス・レポートに表示されません。
「終了時間」フィールドは、日次または週次レポートではなく、毎時レポートでのみ使用されます。たとえば、終了日に「07/29/05」、終了時間に「22:00」、期間に「Weekly」および「3」と入力すると、レポートは07/08/05から07/29/05の間生成されます。終了時間が22:00であっても、すべての時間のインスタンスが考慮されます(23:00または0:00も考慮されます)。これは、日次レポートについても同じです。毎時レポートでのみ、レポートの生成が22:00で終了します。
Oracle Lite Databaseを使用している場合、プロセスおよびパフォーマンスの週次レポートは、Oracle BPEL Controlから使用できません。
ドメインを削除したり、削除したドメインをOracle BPEL Adminコンソールで同じ名前を使用して再作成できない(ドメインがすでに存在するというメッセージが表示される)場合は、次の手順を実行します。
Oracle BPEL Controlに移動します。
「BPELプロセス」タブを選択して、「WSDLキャッシュの消去」を選択します。
次のエラーは、無視してかまわなければ、無視できます。参照対象のクラスはロードされません。
***Unable to find class oracle.tip.tools.ide.pm.addin.BPELOptions. ***This object will be loaded as null.
Oracle BPEL Controlで次のエラー・メッセージが表示された後、サーバーが再起動してエラーが消える場合があります。
500 Internal Server Error java.lang.OutOfMemoryError: PermGen space" ...
opmn.xml
のMaxPermSize
JVMパラメータを、次のように、より大きい値に変更します。
<data id="java-options" value="-server -XX:MaxPermSize=128M -ms512M -mx1024M -XX:AppendRatio=3 -Djava.security.policy=$ORACLE_HOME/j2ee/oc4j_soa/config/ java2.policy -Djava.awt.headless=true -Dhttp.webdir.enable=false -D oraesb.home=/scratch/rxvenkat/soa/atsoa0701/integration/esb -Dhttp.proxySet=false -Doc4j.userThreads=true -Doracle.mdb.fastUndeploy=60 -Dorabpel.home=/scratch/rxvenkat/soa/atsoa0701/bpel -Xbootclasspath^/p:/scratch/rxvenkat/soa/atsoa0701/bpel/lib/orabpel-boot.jar -Dhttp.proxySet=false"/>
Oracle BPEL Controlは、system-jazn-data.xml
に指定されている、ユーザーとロールに対する権限付与を使用します。Oracle Access Manager(以前はCOREid)を使用してOracle BPEL Controlにログインする場合、JAZNのユーザーおよびロールをCOREidで認識されるユーザーにマッピングする必要があります。次の例では、OracleAS JAAS Provider Admintoolを使用してマッピングを行います。(例では、プリンシパル名をorcladmin
とします。)
% java -jar jazn.jar -grantperm oracle.security.jazn.realm.CoreIDPrincipal\ orcladmin com.evermind.server.rmi.RMIPermission login
この結果、system-jazn-data.xml
ファイルで次の構成になります。
<jazn-policy> <grant> <grantee> <principals> <principal> <class>oracle.security.jazn.realm.CoreIDPrincipal</class> <name>orcladmin</name> </principal> </principals> </grantee> ... <permissions> <permission> <class>com.evermind.server.rmi.RMIPermission</class> <name>login</name> </permission> ... </permissions> ... </grant> ... </jazn-policy>
Oracle Access Managerの詳細およびOracle Access ManagerのプリンシパルへのRMI権限の付与に関する詳細は、『Oracle Containers for J2EEセキュリティ・ガイド』を参照してください。
BPELテストを実行するには、Apacheのライセンス許可を受けた次のJARファイルをダウンロードします。
注意: これらの手順で説明するように、ダウンロードしたJARファイルの名前を変更する必要があります。 |
推奨のミラー・サイトからxalan-j_2_7_0-bin.zip
をダウンロードします。
ファイルを解凍します。
unzip_dir
¥xalan-j_2_7_0¥
serializer.jar
をSOA_Oracle_Home
¥bpel¥lib¥
serializer_2.7.0.jar
にコピーします。
unzip_dir
¥xalan-j_2_7_0¥
xalan.jar
をSOA_Oracle_Home
¥bpel¥lib¥
xalan_2.7.0.jar
にコピーします。
Oracle BPEL Process ManagerのサービスがOracle Web Services Manager(OWSM)を介して統合および認証されている場合、OWSMで認証または認可のエラーが発生すると、Oracle BPEL Process Managerインスタンスに対して一般例外メッセージが返されます。このメッセージでは、エラーが十分に説明されない場合があります。
この項では、次の問題とその対処方法について説明します。
Oracle BPEL Controlでレポート・ポートレットを使用する場合は、次の問題に注意してください。
Oracle BPEL Controlのレポート・ポートレットを使用するには、uix2.jar
ファイルをSOA_Oracle_Home
¥bpel¥lib
から別のディレクトリ(たとえば、C:¥OraMidTier
¥bpel¥temp-lib
)に移動し、次に示すように、このライブラリ・パスをSOA_Oracle_Home
¥j2ee¥OC4J_BPEL¥config¥application.xml
ファイルに含めます。
<library path="C:\OraMidTier\bpel\temp-lib"/>
ポートレット・パラメータをOracle Application Server Portalのページ・パラメータとマッピングする場合は、Oracle BPEL Controlのレポート・ポートレットのページ・パラメータ「期間」のデフォルト値を常に大文字にする必要があります(DAILY、WEEKLYまたはHOURLYなど)。 ポートレット・パラメータとページ・パラメータのマッピングについては、『Oracle BPEL Process Manager開発者ガイド』の「Oracle BPELポートレット」、ポートレット・パラメータとページ・パラメータのマッピングに関する項に説明されています。
Oracle BPEL Worklistアプリケーション・ポートレットを使用する場合は、次の問題に注意してください。
最初に、dcmctl
またはEnterprise Managerを介してOracle BPELポートレットをデプロイし、次のスクリプトを実行します。
/SOA_Oracle_Home/bpel/system/services/install/ant-tasks/configure_oid.sh
次に、エントリ<jazn provider="LDAP" jaas-mode="doAsPrivileged"/>
を次のファイルに手動で含めます。
SOA_Oracle_Home\j2ee\OC4J_BPEL\application-deployments\ provider-name\orion-application.xml
dcmctl
を使用したOracle BPELポートレットのデプロイ方法については、『Oracle BPEL Process Manager開発者ガイド』を参照してください。
Oracle BPEL Worklistアプリケーション・ポートレットを使用するには、uix2.jar
ファイルをSOA_Oracle_Home
¥bpel¥lib
から別のディレクトリ(たとえば、C:¥OraMidTier
¥bpel¥temp-lib
)に移動し、次に示すように、このライブラリ・パスをSOA_Oracle_Home
¥j2ee¥OC4J_BPEL¥config¥application.xml
ファイルに含めます。
<library path="C:\OraMidTier\bpel\temp-lib"/>
ポートレットのタイトルに360文字より長い文字列を使用すると正しく処理されません。
BPEL WorklistポートレットおよびBPEL Worklist分析ポートレットでパラメータ値を指定する場合は、「表示のカスタマイズ」セクションの「タイトル」フィールドに、URLアドレスのような長いタイトルを使用しないでください。長いタイトルはポートレットのレイアウトに影響し、右上隅にある「パーソナライズ」リンクが動作しない原因になります。
Worklistポートレットのタイトル・バーが最初は表示されません。
Oracle Application Server Portalを初めてインストールしてWebプロバイダを登録し、最初のページ・グループを作成してOracle BPEL Worklistアプリケーション・ポートレットを追加すると、タイトル・バーが表示されません。これは、タイトル・バーの右上隅に表示される「パーソナライズ」リンクにアクセスできないことを意味します。対処方法として、2番目のページ・グループを作成し、このグループにOracle BPEL Worklistアプリケーション・ポートレットを追加します。このグループ、および以降作成されるすべてのグループでタイトル・バーおよび「パーソナライズ」リンクが表示されます。
BPEL Worklistポートレットには、すべてのタスクの状態が表示されます。
「カテゴリ」リストで「すべて」または「前へ」を選択し、BPEL Worklistポートレットの「タスクのカスタマイズ」セクションの「状態」リストで「割当て済」を選択すると、「割当て済」として識別されるタスクだけでなく、すべてのタスクの状態が表示されます。
この項では、次の問題とその対処方法について説明します。
ネイティブ・フォーマット・ビルダー・ウィザードで固定長のファイル・タイプを選択すると、各レコードのフィールド長を指定する「フィールド長」ウィンドウのルーラーがマルチバイトに準拠しなくなります。
拡張されたXPath関数ora:readFile
には、最初のパラメータとしてファイルのディレクトリ・パスが必要です。これらの関数では、指定されたファイルが、OSのデフォルトのエンコーディングを使用して読み取られます。指定されたファイルがローカルのファイル・システムにある場合、これは問題になりません。ただし、指定されたパスがURLである場合、ターゲット・ファイルが常にOSのデフォルトのエンコーディングを使用してエンコードされているとはかぎりません。
ドイツやフランスなど西ヨーロッパの多くのロケールでは、デフォルトで小数点にドット(.)ではなくカンマ(,)を使用します。この場合、変換アクティビティでのADD
やSUBTRACT
などの数学関数では、関数の入力数字にドットが使用されていても、出力では小数点にカンマが使用されます。
この問題に対処するには、小数書式関数を追加して、デフォルトの書式に上書きします。次にADDITION
での例を示します。
<xsl:decimal-format name="usa" decimal-separator="."/> <xsl:template match="/"> <tns:Root-Element> <tns:Price> <tns:price1> <xsl:value-of select="/tns:Root-Element/tns:Price/tns:price1"/> </tns:price1> <tns:price2> <xsl:value-of select="/tns:Root-Element/tns:Price/tns:price2"/> </tns:price2> <tns:price3> <xsl:value-of select="format-number((/tns:Root-Element/tns:Price/tns:price1 - /tns:Root-Element/tns:Price/tns:price2), '#.00', 'usa')"/> </tns:price3> </tns:Price> </tns:Root-Element> </xsl:template>
この項では、次の問題とその対処方法について説明します。
第9.11.2項「BankTransferFlowおよびBankTransferFlowWithCompensationのデモに関する詳細」
第9.11.3項「BankTransferFlowおよびBankTransferFlowWithCompensationのデモに対する監査証跡がない」
次の場所にあるXAInsertサンプル用のreadme.txt
ファイルの最後で内容が欠落しています。
SOA_Oracle_Home\bpel\samples\tutorials\122.DBAdapter\advanced\dmlInvoke\XAInsert
「The only way to debug the instance is to switch from using an XA data source to using a non-XA data source,」という文の後に、次の内容を追加します。
However, to set-up a nontransactional data source, if you have
xADataSourceName="" dataSourceName="loc/BPELSamplesDataSource"
also configure the corresponding data source to have tx-level="local"
in data-sources.xml
, as in the following example:
<managed-data-source name="DBSamplesDataSource2" connection-pool-name="dbSample_CONNECTION_POOL2" jndi-name="jdbc/DBConnection2DataSource" tx-level="local"/>
BankTransferFlowまたはBankTransferFlowWithCompensationのデモをデプロイし、デプロイされたプロセスをOracle BPEL Controlから開始した場合に、BPELインスタンスが見つからなかったり、プロセスが回復可能なプロセスとして表示されることがあります。このプロセスは、パートナ・リンクがXAトランザクションに関与するものとしてマークされているためにロール・バックされています。したがって、これは正しい動作です。
BankTransferFlowおよびBankTransferFlowWithCompensationのデモ実行後、監査証跡はOracle BPEL Controlの「監査」リンクから入手できません。
次のエラー・メッセージが表示されます。
Workitem binary deserialization failed. An attempt to deserialize the workitem "40015-BpAss5-BpSeq3.3-5" from binary format failed. The exception reported is: Scope not found. The scope "BpSeq3.3" has not been defined in the current instance.
この項では、次の問題とその対処方法について説明します。
次のオプションは、リリース10.1.3.1.0以上ではサポートされていません。
oracle.bpel.services.workflow.query.ITaskQueryService.ASSIGNMENT_FILTER_ALL
Javaのドキュメントでは、ASSIGNMENT_FILTER_ALL
がフィルタの1つとしてリストされていますが、サービスではこのフィルタはサポートされません。
表示可能なタスクをすべてフェッチするには、適用可能な各フィルタ・オプションを繰り返し使用してタスクをフェッチする必要があります。たとえば、ASSIGNMENT_FILTER_MY_AND_GROUP
の後にASSIGNMENT_FILTER_REPORTEES
、さらにASSIGNMENT_FILTER_CREATOR
、さらにASSIGNMENT_FILTER_OWNER
というように使用します。
次のメソッドに関するJavaのドキュメントは正しくありません。
oracle.bpel.services.workflow.query.ITaskQueryService.queryViewTasks
不正な2番目の引数:
oracle.bpel.services.workflow.user.model.UserViewDetailType userViewDetail
正しい2番目の引数:
java.lang.String viewId
viewId
は、タスクの取得が必要なビューのIDです。
次のクラスは、『Oracle BPEL Process Manager Workflow Services API Reference (Javadoc)』で記述されていません。
oracle.bpel.services.workflow.metadata.taskattributes.TaskAttributesUtil
oracle.bpel.services.workflow.query.ITaskQueryService. ITaskQueryService.TASK_ACTIONS_TYPE_GROUP_ACTIONS
oracle.bpel.services.workflow.user.impl.UserMetadataUtil
oracle.bpel.services.workflow.worklist.*
この項では、ドキュメントの記載内容の誤りについて説明します。
『Oracle BPEL Process Manager開発者ガイド』の第19章「BPELプロセスのデプロイおよびドメイン管理」、「BPELプロセスのコンパイルおよびデプロイ」項には、次の注意が記載されています。「1つのBPELプロセスのデプロイが完了するまで待ってから、別のプロセスをデプロイしてください。最初のプロセスのデプロイ中に2番目のプロセスをデプロイしようとすると、問題が発生する場合があります。」。この文は誤りであり、BPELプロセスをクラスタ内でデプロイする際には無視してください。かわりに、このリリース・ノートの第9.1.10項「クラスタ内のすべてのノードに対するBPELプロセスのデプロイ」の説明に従って、BPELクラスタ環境の全ノードにBPELプロセスを明示的にデプロイする必要があります。
『Oracle BPEL Process Managerインストレーション・ガイド, 10g リリース3(10.1.3.1.0)』の第5章「Oracle BPEL Process Managerクラスタ化」には、高可用性構成でのBPEL設定に関する推奨ステップの一部のみが記載されています。完全なステップについては、『Oracle Application Serverエンタープライズ・デプロイメント・ガイド, 10g リリース3(10.1.3.3.0)』を参照してください。
『Oracle BPEL Process Manager管理者ガイド』の「Oracle BPEL ControlおよびOracle BPEL Admin Consoleのユーザーとロール」の項に、新規および既存のBPELドメインにアクセスするためのユーザーおよびグループを作成する方法の構文例があります。次の構文を含むいくつかの構文例が記載されています。
java -Xbootclasspath/a:/home/oc4j/bpel/lib/orabpel-boot.jar -jar jazn.jar -shell -grantperm jazn.com -user soaAdmin com.collaxa.security.DomainPermission soaAdmin all
これらの構文例は、単一行に入力するのではなく、複数のステップに分けて入力する必要があります。次に例を示します。
-shell
オプションまでの構文部分を入力します。
java -Xbootclasspath/a:/home/oc4j/bpel/lib/orabpel-boot.jar -jar jazn.jar -shell
-shell
オプションにより、Admintoolシェルが開きます。
シェル・プロンプトに残りの構文を入力します。grantperm
の前のダッシュ(-
)が不要であることに注意してください。
JAZN:> grantperm jazn.com -user soaAdmin com.collaxa.security.DomainPermission soaAdmin all
終了したら、exit
を入力してAdmintoolシェルを閉じ、オペレーティング・システム・コマンド・プロンプトに戻ります。
JAZN:> exit
『Oracle SOA Suite開発者ガイド』の「システムの保護」の章、「ユーザー資格証明を使用したファイルの設定方法」の項では、メモ帳やviなどのテキスト・エディタを使用してユーザー資格証明付きのファイルを作成する方法について説明しています。この項に、単一ユーザー名のエントリをファイル内に作成するという記述があります。次に例を示します。
bill:
これは誤りです。このファイル内に、ユーザー・パスワードを入力する必要があります。次に例を示します。
bill:oracle
『Oracle BPEL Process Manager開発者ガイド』では、Oracle BPEL Control内にoptSoapShortcutプロパティを設定できるという誤った記述があります。このプロパティは現在、Oracle BPEL Controlで表示されません。かわりに、これはSOA_Oracle_Home
¥bpel¥domains¥
domain_name
¥config¥domain.xml
ファイル内で明示的にtrue
に設定されています。このプロパティを別の値に変更するには、domain.xml
ファイルに次の構文を追加する必要があります。次に例を示します。
<property id="optSoapShortcut"> <value=false</value></property>
『Oracle Application Serverパフォーマンス・ガイド』の「Oracle BPEL Process Managerのパフォーマンス・チューニング」の章、「syncMaxWaitTime BPELプロパティ」の項で、syncMaxWaitTime
の定義は、次のように修正される必要があります。
このプロパティは、プロセス結果の受信側が結果が戻るまで待機する、最大時間を設定します。永続的な同期BPELプロセスの結果は、結果を待機する受信側により、同期的に取得されます。一時的な同期BPELプロセスは、このプロパティの影響を受けません。これは、プロセスを処理するスレッドと同じスレッドが結果を戻すために使用されるためです。BPELプロセスが永続的である場合は、プロセスの部分は非同期的に実行される必要があります。したがって、クライアント・スレッドは、バックグラウンド・スレッドから結果を待機する必要があります。
『Oracle BPEL Process Manager開発者ガイド』の第15章「Oracle BPEL Process Managerワークフロー・サービス」では、Dynamic Assignment Functionの名前の表記で、大文字と小文字の区別の間違いおよびアンダースコアのかわりにダッシュを誤使用している箇所があります。正しい名前の表記は次のとおりです。
ROUND_ROBIN
MOST_PRODUCTIVE
LEAST_BUSY
「パートナ・リンクの作成」または「パートナ・リンクの編集」ウィンドウの「プロパティ」タブに関するオンライン・ヘルプでは、パートナ・リンク・プロパティはBPELプロセスにより実行時に定義されるアクセス可能な、名前と値がペアとなった単一のプロパティであり、プロパティの値はOracle BPELコンソールから実行時に変更することができ、BPELプロセスを再デプロイする必要はないと記述されています。
この記述は誤りです。実行時に変更できるのは、アクティブ化エージェントのプロパティのみです。次の2つの種類のパートナ・リンクがあります。
receiveアクティビティに関連付けられているもの(インバウンド、アクティブ化)
invokeアクティビティに関連付けられているもの(アウトバンド、Webサービスの起動)
receiveアクティビティに関連付けられているポーリング・プロパティのみ、実行時に変更できます。
『Oracle BPEL Process Manager開発者ガイド』の「フォルト処理」の章、「getFaultAsString XPath拡張関数によるフォルト詳細の取得」の項に、次のコード例が表示されています。
<assign>
<from expression="bpelx:getFaultAsString()"/>
<to variable="faultVar" part="message"/>
</assign>
getFaultAsString
の正しいネームスペース接頭辞は、bpelx
ではなくora
です。