ヘッダーをスキップ
Oracle® Fusion Middleware Oracle SOA SuiteおよびOracle Business Process Management Suite管理者ガイド
11g リリース1 (11.1.1.5.0)
B55916-05
  ドキュメント・ライブラリへ移動
ライブラリ
製品リストへ移動
製品
目次へ移動
目次
索引へ移動
索引

前
 
次
 

11 BPELプロセスのサービス・コンポーネントとエンジンの構成

この章では、BPELプロセス・サービス・コンポーネントとサービス・エンジンの構成方法について説明します。

この章の内容は、次のとおりです。

11.1 BPELプロセス・サービス・エンジン・プロパティの構成

BPELプロセス・サービス・エンジン・プロパティを構成でき、このプロパティは、BPELサービス・コンポーネントの処理時に、BPELプロセス・サービス・エンジンで使用されます。

BPELプロセス・サービス・エンジン・プロパティを構成する手順は、次のとおりです。

  1. 次のいずれかのオプションを使用して、このページにアクセスします。

    SOAインフラストラクチャのメニューから... ナビゲータのSOAフォルダから...
    1. 「SOA管理」「BPELプロパティ」の順に選択します。
    1. 「soa-infra」を右クリックします。
    2. 「SOA管理」「BPELプロパティ」の順に選択します。


    「BPELサービス・エンジン・プロパティ」ページに、監査証跡しきい値と大容量ドキュメントしきい値の設定、ディスパッチャ・スレッド・プロパティの設定、ペイロード・スキーマの検証、および監査証跡レベルの設定を行うためのプロパティが表示されます。

    soaadmin_bpel_props.gifの説明が続きます
    図版soaadmin_bpel_props.gifの説明

  2. 使用環境に適するようにサービス・エンジン・プロパティを変更します。

    プロパティ 説明
    監査レベル 次のいずれかのオプションを選択します。
    • オフ: コンポジット・インスタンスのトラッキング情報とペイロード・トラッキング情報は収集されません。

    • 継承: ロギング・レベルは、SOAインフラストラクチャの監査レベルと同じです。この設定を使用すると、グローバル設定が変更されたときに、BPEL監査レベルも自動的に変更できます。このページで別の監査レベル・トラッキングを設定すると、SOAインフラストラクチャ・レベルで設定したトラッキングが上書きされます。

    • 最小: BPELサービス・エンジンでは、監査詳細がキャプチャされません。したがって、フローの監査証跡で監査詳細は使用できません。他のすべてのイベントは記録されます。

    • 本番: BPELサービス・エンジンでは、ペイロードがキャプチャされません。フローの監査証跡でペイロード詳細は使用できません。他のBPELアクティビティのペイロード詳細は、assignアクティビティを除いて収集されます。このレベルは、標準の操作とテストに最適です。

    • 開発: コンポジット・インスタンスのトラッキングとペイロード・トラッキングの両方を実行できます。すべてのイベントが記録されます。ただし、パフォーマンスに影響を与える可能性があります。このレベルは通常、デバッグする際に便利です。

    監査証跡しきい値(バイト) 監査証跡とは別にチャンクされてデハイドレーション・ストア表に保存される前の、インスタンスの監査証跡の最大サイズをバイト単位で入力します。このしきい値を超えると、ペイロードのかわりに、「XMLの表示」リンクが監査証跡に表示されます。
    大容量のドキュメントしきい値(バイト) デハイドレーション・ストアの別の表に保存される前の、BPELプロセス・コンポーネント・インスタンス内に生成されるドキュメントの最大サイズを入力します。
    ディスパッチャ・システム・スレッド システム・ディスパッチャ・メッセージの処理に割り当てるスレッドの合計数を指定します。システム・ディスパッチ・メッセージは、通常、サーバーにより迅速に処理される一般的なクリーン・アップ・タスクです(たとえば、ステートフル・メッセージBeanを元のプールに解放)。通常、実行時に生成されたシステム・ディスパッチ・メッセージの数を処理するために必要なスレッド数はごく少数です。

    デフォルト値は2スレッドです。1スレッド未満の値は、デフォルト値に変更されます。

    ディスパッチャ呼出しスレッド 呼出しディスパッチャ・メッセージの処理に割り当てるスレッド合計数を指定します。呼出しディスパッチャ・メッセージは、受信したペイロードごとに生成され、新規インスタンスをインスタンス化するために使用されます。サービス・エンジンで処理されるリクエストの大多数が(インスタンス・コールバックではなく)インスタンス呼出しである場合は、呼出しスレッド数を増加させることでパフォーマンスが大幅に向上する可能性があります。スレッド数が多くなるほど、コンテキスト切替えコストが高くなるため、CPU使用率が大幅に増加する可能性があります。

    デフォルト値は20スレッドです。1スレッド未満の値は、デフォルト値に変更されます。

    ディスパッチャ・エンジン・スレッド エンジン・ディスパッチャ・メッセージの処理に割り当てるスレッド合計数を指定します。エンジン・ディスパッチャ・メッセージは、アクティビティを非同期で処理する必要がある場合に必ず生成されます。デプロイされるプロセスの大多数が永続的で、多数のデハイドレーション・ポイント(midprocess receive、onMessage、onAlarmおよびwaitアクティビティ)がある場合は、ディスパッチャ・エンジン・スレッド数を増加させることでパフォーマンスが大幅に向上する可能性があります。スレッド数が多くなるほど、コンテキスト切替えコストが高くなるため、CPU使用率が大幅に増加する可能性があることに注意してください。

    デフォルト値は30スレッドです。1スレッド未満の値は、デフォルト値に変更されます。

    ペイロードの検証 インバウンド・メッセージとアウトバウンド・メッセージの検証を有効にする場合に選択します。スキーマに準拠しないペイロード・データが捕捉され、フォルトとして表示されます。

    注意: この設定は、SOAコンポジット・アプリケーションおよびSOAインフラストラクチャのペイロード検証レベルの設定に依存しません。ペイロード検証がサービス・エンジンとSOAインフラストラクチャの両レベルで有効な場合、データは2回チェックされます。1回目は、データがSOAインフラストラクチャに入るとき、2回目は、データがサービス・エンジンに入るときです。

    BPELモニターおよびセンサーの無効化 デプロイ済のすべてのSOAコンポジット・アプリケーションのすべてのBPELコンポーネントに定義されているすべてのBPELモニターおよびセンサーを無効にするには、このチェック・ボックスを選択します。

  3. 「適用」をクリックします。

  4. システムMBeanブラウザで拡張BPELプロパティを構成するには、「詳細BPEL構成プロパティ」をクリックします。表示されるプロパティの一部を次に示します。各プロパティには説明が記載されています。

    • BpelcClasspath: BPELで生成されたJavaソースをコンパイルするときに含める追加BPELクラスのパス。

    • DisableAsserts: BPELでアサーションの実行を無効化します(bpelx:assertアクティビティを含む)。

    • DisableSensors: センサーへのすべての呼出しを無効にします。

    • ExpirationMaxRetry: 失敗した期限切れ呼出し(wait/onAlarm)が失敗するまでに再試行される最大回数。

    • ExpirationRetryDelay: 次の期限切れ呼出しの再試行までの遅延。

    • InstanceKeyBlockSize: 1回のフェッチごとにデハイドレーション・ストアから割り当てられるインスタンスIDのブロック・サイズ。

    • MaximumNumberOfInvokeMessagesInCache: メモリー内キャッシュに格納される起動メッセージ数。

    • MaxRecoverAttempt: 同一のリカバリ可能なインスタンスに発行する自動リカバリ試行の数。詳細は、第11.4項「起動メッセージおよびコールバック・メッセージの自動リカバリ試行の構成」を参照してください。

    • OneWayDeliveryPolicy: 一方向呼出しメッセージを配信するかどうかを変更します。

    • StatsLastN: 最近処理されたリクエスト・リストのサイズ。

    • SyncMaxWaitTime: タイムアウトする前に実行されるリクエスト操作およびレスポンス操作の最大回数。

  5. 使用環境に適した変更を行います。

11.2 Oracle BPEL Process Managerの自動リカバリの構成

Oracle SOA Suiteには、Oracle Enterprise Manager Fusion Middleware Controlの自動リカバリ機能が備えられており、この機能を使用して、次のものを構成およびリカバリでます。

自動リカバリを構成するには、次の手順を実行します。

  1. ナビゲータで、「soa-infra」を右クリックし、「SOA管理」「BPELプロパティ」の順に選択します。

  2. 「詳細BPEL構成プロパティ」をクリックします。

  3. 「名前」列で「RecoveryConfig」をクリックします。

  4. RecurringScheduleConfigを展開します。

    このセクションでは、繰返しのリカバリ試行を構成できます。

  5. 次のプロパティを環境に適した値に設定し、「適用」をクリックします。

    プロパティ 説明
    maxMessageRaiseSize 繰り返されるリカバリ試行ごとに送信するメッセージの最大数。サーバーに対するリカバリの影響を制限するには、このプロパティを使用します。この値は、アクティビティ、起動およびコールバックの問合せからフィルタするメッセージの最大数を指定するもので、つまり、アクティビティ表、呼出し表およびコールバック表のそれぞれからの50メッセージです。

    デフォルト値は50です。負の値に設定すると、データベースから選択されたすべてのメッセージがリカバリのために送信されます。0の値の場合は、データベースからメッセージが選択されません(実質的にリカバリが無効になります)。

    startWindowTime 日次リカバリ・ウィンドウの開始時刻であり、24時間の表記法で指定します。したがって、午後2:00は14:00と指定します。時間が1桁の値の場合、先頭のゼロを指定する必要はありません(1:00-9:00)。

    デフォルト値は午前0時(00:00)です。解析された時刻が無効な値の場合、デフォルトで午前0時に設定されます。

    stopWindowTime 日次リカバリ・ウィンドウの停止時刻であり、24時間の表記法で指定されます。したがって、午後2:00は14:00と指定されます。時間が1桁の値の場合、先頭のゼロを指定する必要はありません(1:00-9:00)。

    日次リカバリを行わない場合、開始ウィンドウ時刻と停止ウィンドウ時刻を同じ値に設定します。停止ウィンドウ時刻が開始ウィンドウ時刻よりも前である場合は、開始ウィンドウ時刻と停止ウィンドウ時刻の両方が、それぞれのデフォルト値に変更されます。

    デフォルト値は午前0時(04:00)であり、実質的に、繰返しリカバリが04:00まで実行されるように設定されます。

    解析された時刻が無効な値である場合は、デフォルトで00:00に設定されます。

    subsequentTriggerDelay 日次の繰返し起動リカバリ期間内での、リカバリ試行間の秒数。次のリカバリ・トリガーが現在のリカバリ期間の外になる場合、そのトリガーは次の繰返しリカバリ期間(翌日)までスケジュールされません。

    デフォルト値は300です(5分)。負の値の場合はデフォルトが選択されます。

    threshHoldTimeInMinutes これは自動リカバリ処理を無視する分単位のしきい値の時間です。自動的な起動およびコールバック・リカバリの場合、この値は受信日付がしきい値の時間よりも小さいメッセージを選出するために使用されます。

    自動アクティビティ・リカバリの場合、この値は修正日付がしきい値の時間よりも小さいアクティビティを選出するために使用されます。

    このプロパティによって、BPELプロセス・サービス・エンジンがリカバリ目的でメッセージを選択するとき、サービス・エンジンの別のスレッドがそのメッセージを処理しているというメッセージ競合のシナリオを回避します。このプロパティによって、サービス・エンジンのリカバリ部分は、threshHoldTimeInMinutesの値よりも古いメッセージについてリカバリを試行するようになります。

    デフォルト値は10分です。負の値の場合はデフォルトが選択されます。


  6. 「StartupScheduleConfig」を展開します。

    このセクションでは、サーバー起動リカバリ試行を構成できます。

  7. 次のプロパティを環境に適した値に設定し、「適用」をクリックします。

    プロパティ 説明
    maxMessageRaiseSize 起動リカバリ試行ごとに送信するメッセージの最大数。サーバーに対するリカバリの影響を制限するには、このプロパティを使用します。この値は、アクティビティ、起動およびコールバックの問合せからフィルタするメッセージの最大数を指定するもので、つまり、アクティビティ表、呼出し表およびコールバック表のそれぞれからの50メッセージです。

    デフォルト値は50です。負の値の場合、データベースから選択されたすべてのメッセージがリカバリのために送信されます。ゼロの値の場合、データベースからメッセージが選択されません(実質的にリカバリが無効になります)。

    startupRecoveryDuration 起動リカバリ期間が継続する秒数を指定します。サーバーが開始した後、起動リカバリ期間に入ります。この期間中、保留中のアクティビティと未配信のコールバック・メッセージおよび起動メッセージは処理のため再発行されます。

    デフォルト値は600です(10分)。負またはゼロの値の場合は起動リカバリが無効になります。

    subsequentTriggerDelay サーバー起動リカバリ期間内でのリカバリ試行間の秒数。次のリカバリ・トリガーがサーバー起動期間の外になる場合、そのトリガーはスケジュールされず、サーバーは繰返しリカバリ期間に移行します。

    デフォルト値は300です(5分)。負の値の場合はデフォルトが選択されます。



注意:

クラスタ内では、別々のノードが同じ項目の自動リカバリを同時に試行する場合があります。最初のノードが項目をロックしてリカバリを試行し、別のノードは安全に無視できる例外を発生させることができます。

11.3 マスター・ノード・リカバリ・スケジューリングの構成

マスター・ノード・リカバリ・スケジューリングを使用するようにクラスタ環境を構成できます。この環境では、マスター・ノードは、クラスタ内のすべてのノードに対してリカバリを実行するための専用ノードです。


注意:

この機能は、Oracle Fusion Middlewareリリース1 (11.1.1.3)より前のデータベース・スキーマを使用している場合は動作しません。

マスター・ノード・リカバリ・スケジューリングを使用すると、次のタスクを実行できます。

マスター・ノード・リカバリ・スケジューリングを構成する手順は、次のとおりです。

  1. Oracle Enterprise Manager Fusion Middleware Controlにログインします。

  2. 「soa-infra」を右クリックします。

  3. 「SOA管理」「BPELプロパティ」の順に選択します。

  4. 「詳細BPEL構成プロパティ」をクリックします。

  5. 「名前」列で「RecoveryConfig」をクリックします。

  6. ClusterConfigを開きます。ClusterConfigプロパティは、RecurringScheduleConfigおよびStartupScheduleConfigにそれぞれ設定した繰り返しのリカバリ試行プロパティおよびサーバー起動リカバリ試行プロパティと関連して機能します。

  7. 次のプロパティを環境に適した値に設定し、「適用」をクリックします。


    注意:

    インスタンスまたはメッセージがリカバリ可能になると、リカバリが試行されます。ただし、試行回数は追跡されません。リカバリが失敗すると、同じレコードを取得して試行し、再度失敗することを続けます。

    プロパティ 説明
    clusterDbTimeRefresh データベース時間のローカル・コピーをリフレッシュする頻度を指定します。別のコンピュータでのクロック・ドリフトが考慮されます。クラスタ内のすべてのノードは、正確さに関係なく、データベース時間に依存しています。

    デフォルト値は12時間(43200秒と指定)です。

    heartBeatInterval クラスタ内の他のノードによって公開されたメッセージを確認するために、ノードがクラスタ・メッセージ表をポーリングする頻度を指定します。

    デフォルト値は5秒です。

    次のタスクが各間隔で実行されます。

    • cluster_node表のノードの最終更新時間を更新します。

    • マスター・ロールの所有権の要求を試行します。

    • マスター・ロールが要求された場合、リカバリ・マネージャは作業を再開します。

    • nodeReapThreshold値の間に更新時間が更新されていないすべてのノードを確認し、cluster_node表からそれらのノードを削除し、このノードのすべての期限切れ作業アイテムを再スケジュールします。

    masteAliveThreshold マスター・ノードが動作していると見なされる秒数を指定します。この秒数の間にクラスタにチェックインしていないマスター・ノードは、動作していないと見なされます。cluster_master表で排他ロックを取得するノードはどれでも、この時点からマスター・ロールを要求できます。

    デフォルト値は15分(900秒と指定)です。

    nodeReapInterval 古いクラスタ・ノードとマークするためにハートビート・スレッドを流用する頻度を指定します。マスター・ノードのみがこのジョブを実行します。

    デフォルト値は2時間(7200秒と指定)です。

    nodeReapThreshold ノードが動作していると見なされる秒数を指定します。この秒数の間にクラスタにチェックインしていないノードは、動作していないと見なされます。ハードビート・サイクル中に、マスター・ノードはcluster_node表をクリーン・アップしようとします。

    デフォルト値は15分(900秒と指定)です。


11.4 起動メッセージおよびコールバック・メッセージの自動リカバリ試行の構成

リカバリ可能な同じインスタンス内で発行する自動リカバリ試行の数を構成できます。入力した値によって、起動メッセージおよびコールバック・メッセージがリカバリされる最大回数が指定されます。値が0(デフォルト値)の場合、すべてのメッセージがリカバリされます。1つのメッセージに対するリカバリ試行の数が、指定された値を超過すると、そのメッセージにはリカバリ不能のマークが付けられます。

起動メッセージおよびコールバック・メッセージのリカバリ試行を自動的に構成するには、次の手順を実行します。

  1. ナビゲータで、「soa-infra」を右クリックし、「SOA管理」「BPELプロパティ」の順に選択します。

  2. 「詳細BPEL構成プロパティ」をクリックします。

  3. 「MaxRecoverAttempt」に移動します。

  4. 「値」フィールドに値を入力します。

  5. 「適用」をクリックします。

起動メッセージおよびコールバック・メッセージのリカバリの詳細は、第13.4項「BPELプロセス・サービス・エンジンのメッセージ・リカバリの実行」を参照してください。

11.5 BPELプロセス・サービス・コンポーネント・レベルでの監査レベルの設定

BPELプロセス・サービス・コンポーネントには監査レベルを設定できます。この設定は、SOAインフラストラクチャ、サービス・エンジン、SOAコンポジット・アプリケーションの各レベルの監査レベル設定より優先されます。サービス・コンポーネント・レベル設定はBPELプロセスについてのみ使用可能であり、メディエータ、ヒューマン・ワークフローおよびビジネス・ルール・サービス・コンポーネントについてはサポートされていません

BPELプロセス・サービス・コンポーネントの監査レベルを設定する方法は2つあります。サポートされる値は、「オフ」「最小」「継承」「開発」および「本番」です。

BPELプロセス・サービス・コンポーネントに監査レベルを設定する手順は、次のとおりです。

監査レベルの詳細は、第1.4.1.1項「監査レベル設定の優先順位の概要」を参照してください。