この章では、Oracle SOA Suiteで大規模ドキュメントとメタデータを管理する場合、および多数のインスタンスがある環境を管理する場合のベスト・プラクティスについて説明します。
項目は次のとおりです。
Oracle SOA Suiteのチューニングおよびパフォーマンスの詳細は、『Oracle Fusion Middlewareパフォーマンスおよびチューニング・ガイド』を参照してください。
この項では、大規模ドキュメントを処理する次のシナリオについて説明し、各シナリオに対するベスト・プラクティスなアプローチを示します。大規模なペイロードを開発および実行する前に、これらのベスト・プラクティスに従うことをお薦めします。
この項では、大規模ドキュメントを処理する場合のユースケースについて説明します。
この項では、バイナリ・オブジェクトをBase64エンコード・テキストとしてXMLペイロードに渡す場合のユースケースについて説明します。
このユースケースでは、バイナリ・アタッチメント(画像など)がテキストとしてBase64でエンコードされ、インラインでXML文書に渡されます。表43-1に詳細を示します。
このユースケースでは、バイナリ・アタッチメント(画像など)がテキストとしてBase64でエンコードされ、MTOM(メッセージ転送最適化メカニズム)ドキュメントとして渡されます。表43-2に詳細を示します。
このユースケースでは、バイナリ・アタッチメント(画像など)がテキストとしてBase64でエンコードされ、インラインでXML文書に渡されます。表43-3に詳細を示します。
このユースケースでは、バイナリ・アタッチメント(画像など)がエンコード・テキストとしてBase64でエンコードされます。表43-4に詳細を示します。
この項では、アタッチメントをエンドツーエンドでストリーミングする場合のユースケースについて説明します。
このユースケースでは、バイナリ・アタッチメント(画像など)がストリームとしてエンドツーエンドで渡されます。表43-5に詳細を示します。
表43-5 機能
機能 | 説明 |
---|---|
セキュリティ |
サポート対象外。 |
フィルタ/トランスフォーメーション/割当て |
パス・スルー。Oracle BPEL Process ManagerでXPath拡張関数を使用する必要があります。 |
ファンアウト |
サポート対象外。 |
バインディング |
WSバインディングが、SOAPアタッチメントに対するストリーム・イテレータを作成します。 |
Oracle BPEL Process Manager/Oracle Mediator |
Oracle Mediatorは、アタッチメントをマテリアライズせずに同期のルーティング・ルールに対してパス・スルーを実行できます(非同期のルーティング・ルールはサポートされていません)。Oracle BPEL Process Managerはアタッチメントを保持します。 |
チューニング |
Oracle BPEL Process Managerで使用する場合は、データベース表領域を管理します。 |
アタッチメント付きSOAPの定義用のWSDLコード |
<mime:part> <mime:content part="bin" type=“image/jpeg"/> </mime:part> |
注意:
|
ストリーミング・アタッチメントの使用
Oracle Fusion MiddlewareのWebサービスでは、大規模アタッチメントをストリームとして渡すことができます。アタッチメント全体がメモリー内にある場合と同様にアタッチメントを処理するJAX-RPCのAPIとは異なり、ストリームではプログラミング・モデルをより効率的に使用します。また、ストリームを使用すると、サービスの実行前にアタッチメントをメモリーにロードする必要がないため、パフォーマンスおよびスケーラビリティが向上します。
ストリーム・アタッチメントは、埋込みアタッチメントと同様に、MIMEマルチパートのバイナリ形式に準拠しています。ワイヤ上では、ストリーム・アタッチメント付きのメッセージはアタッチメント付きの他のSOAPメッセージと同じです。
例43-1に、ストリーム・アタッチメント付きのサンプル・メッセージを示します。メッセージの最初のパートはSOAPエンベロープ(<SOAP-ENV:Envelope...
)です。2番目のパートがアタッチメント(この例ではmyImage.gif
)です。
例43-1 ストリーム・アタッチメント付きのサンプル・メッセージ
MIME-Version: 1.0 Content-Type: Multipart/Related; boundary=MIME_boundary; type=text/xml; Content-Description: This is the optional message description. --MIME_boundary Content-Type: text/xml; charset=UTF-8 Content-Transfer-Encoding: 8bit Content-ID: NotSure/DoesntMatter <?xml version='1.0' ?> <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"> <SOAP-ENV:Body> . . . <DocumentName>MyImage.gif</DocumentName> . . . </SOAP-ENV:Body> </SOAP-ENV:Envelope> --MIME_boundary Content-Type: image/gif Content-Transfer-Encoding: binary Content-ID: AnythingYoudLike ...binary GIF image... --MIME_boundary--
MIMEアタッチメントを使用するコンポジットの作成
次の手順を実行して、MIMEアタッチメントを使用するコンポジットを作成します。
ペイロード・スキーマを使用してコンポジット(たとえば、Oracle Mediatorを介してアウトバウンドWebサービスに接続するインバウンドWebサービス)を作成します。
Oracle MediatorのWSDLファイル内で、次の手順を実行します。
完了すると、例43-5に示すように、MIMEアタッチメントを参照するWSDLが表示されます。
例43-5 WSDLのサンプル
<wsdl:definitions name="PhotoCatalogService" targetNamespace="http://examples.com/PhotoCatalog" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:types="http://examples.com/PhotoCatalog/types" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:tns="http://examples.com/PhotoCatalog"> <wsdl:message name="addPhotoRequest"> <wsdl:part name="photo" type="xsd:hexBinary"/> </wsdl:message> <wsdl:message name="addPhotoResponse"> <wsdl:part name="status" type="xsd:string"/> </wsdl:message> <wsdl:message name="replacePhotoRequest"> <wsdl:part name="oldPhoto" type="xsd:string"/> <wsdl:part name="newPhoto" type="xsd:hexBinary"/> </wsdl:message> <wsdl:message name="replacePhotoResponse"> <wsdl:part name="status" type="xsd:string"/> </wsdl:message> <wsdl:portType name="PhotoCatalog"> <wsdl:operation name="addPhoto"> <wsdl:input message="tns:addPhotoRequest"/> <wsdl:output message="tns:addPhotoResponse"/> </wsdl:operation> <wsdl:operation name="replacePhoto"> <wsdl:input message="tns:replacePhotoRequest"/> <wsdl:output message="tns:replacePhotoResponse"/> </wsdl:operation> </wsdl:portType> <wsdl:binding name="PhotoCatalogBinding" type="tns:PhotoCatalog"> <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/> <wsdl:operation name="addPhoto"> <wsdl:input> <mime:multipartRelated> <mime:part> <soap:body use="literal"/> </mime:part> <mime:part> <mime:content part="photo" type="image/jpeg"/> </mime:part> </mime:multipartRelated> </wsdl:input> <wsdl:output> <mime:multipartRelated> <mime:part> <soap:body use="literal"/> </mime:part> <mime:part> <mime:content part="status" type="text/plain"/> <mime:content part="status" type="text/xml"/> </mime:part> </mime:multipartRelated> </wsdl:output> </wsdl:operation> <wsdl:operation name="replacePhoto"> <wsdl:input> <mime:multipartRelated> <mime:part> <soap:body parts="oldPhoto" use="literal"/> </mime:part> <mime:part> <mime:content part="newPhoto" type="image/jpeg"/> </mime:part> </mime:multipartRelated> </wsdl:input> <wsdl:output> <soap:body parts="status" use="literal"/> </wsdl:output> </wsdl:operation> </wsdl:binding> </wsdl:definitions>
パフォーマンス・オーバーヘッドとパス・スルー・アタッチメント
Oracle Mediatorはステートレスであるため、パス・スルー・アタッチメントに関するパフォーマンス・オーバーヘッドはありません。ただし、Oracle BPEL Process Managerでは、アタッチメントをデハイドレーション(圧縮して格納)するため、パス・スルー・アタッチメントの場合でもパフォーマンス・オーバーヘッドがあります。Oracle BPEL Process Managerでアタッチメントを一定の期間使用すると、SOAインフラストラクチャ・スキーマが最大サイズまで増加し、メモリーの問題が発生する可能性があります。大規模アタッチメントに対応するために、SOAインフラストラクチャ・スキーマに対するデータベース表領域を適切に拡張することをお薦めします。
同じコンポジット内の1番目のBPELプロセスが2番目のBPELプロセスをコールするシナリオでは、2番目のBPELプロセスは同じアタッチメントを再度デハイドレーションしません。
コンポジット1の1番目のBPELプロセスがコンポジット2の2番目のBPELプロセスを起動し、最適化が無効化されているシナリオでは、コンポジット1がコンポジット2へのSOAPコールを実行します。2番目のBPELプロセスがアタッチメントをデハイドレーションします。
アタッチメントをストリーミングするためのプロパティ
アタッチメントをストリームするには、composite.xml
ファイルに次のプロパティを追加します。最適化が有効化されている場合は、SOAPコールのかわりにネイティブ・コールが使用されます。例43-6に詳細を示します。
例43-6 アタッチメントをストリーミングするためのプロパティ
<binding.ws port="http://services.otn.com#wsdl.endpoint(MIMEService/MIMEService)" xmlns:ns="http://xmlns.oracle.com/sca/1.0" streamIncomingAttachments="true" streamOutgoingAttachments="true"> <!--Add this prop to reference bindings to make a SOAP call. --> <property name="oracle.webservices.local.optimization">false</property> </binding.ws>
oracle.webservices.local.optimization
プロパティの詳細は、『Oracle Fusion Middleware Oracle SOA SuiteおよびOracle Business Process Management Suite管理者ガイド』のSOAコンポジット・アプリケーション・ポリシーの管理に関する項を参照してください。
注意: Oracle Web Services Manager(OWSM)では、ストリームのアタッチメントに関するポリシーの確認や実施は行いません。OWSMの詳細は、『Oracle Fusion Middleware Web Servicesセキュリティおよび管理者ガイド』を参照してください。 |
SOAPアタッチメントのコンテンツの読取りおよびエンコード
BPELプロセスでは、ora:getAttachmentContent
関数がSOAPアタッチメントのコンテンツを読み取り、そのデータをBase64形式でエンコードします。そのためには、BPEL変数をSOAPアタッチメントのhref
を指定する引数として指定します。例43-7に、この関数の使用方法を示します。
例43-7 ora:getAttachmentContent関数
<copy> <from expression="ora:getAttachmentContent('input','bin')"/> <to variable="initiateTaskInput" part="payload" query="/taskservice:initiateTask/task:task/task:attachment/task:content"/> </copy>
例43-7では、href
が"input/bin"
変数に格納されているアタッチメントのコンテンツを、コンテンツ変数にBase64エンコード形式でコピーしています。
アタッチメント・ストリームの送信
Oracle Mediatorは、1つのターゲット・レシーバのみにアタッチメント・ストリームを渡すことができます。レシーバに指定できるのは、別のコンポーネントまたはWebサービス/アダプタです。2番目のターゲットはアタッチメントを受信できません。Oracle BPEL Process Managerでは、複数のレシーバへのアタッチメント・ストリームの送信がサポートされています。Oracle BPEL Process Managerで複数のレシーバにストリームを送信する場合は、readBinaryFromFile
XPath関数を使用してデータベースからアタッチメント・ストリームを読み取り、そのストリームを適切なターゲットに渡す必要があります。
同期フローを使用したアタッチメントの共有
Oracle BPEL Process Managerベースのコンポジットで同期フローを使用してアタッチメントを共有する場合は、同じエンドツーエンドのトランザクションを使用する必要があります。これは、コロケートされ、ローカル・コールまたは最適化されたコールを使用するコンポジットに適用できます。これを実行するには、コール・チェーンでコールされるすべてのBPELコンポーネント(コール先)に、例43-8に示すプロパティを設定します。
例43-8 bpel.config.transactionプロパティ
<property name="bpel.config.transaction" many="false" type="xs:string">required</property>
このようなコンポジットが同じトランザクション・コンテキストの一部として実行されない場合、コール・チェーンの最初のBPELコンポーネントで保存されたアタッチメント・データはコール・チェーンの他のBPELコンポーネントに表示されません。さらに、そのコンポジットではデータベースがロックされ、次のタイムアウト例外が発生します。
"ORA-02049: timeout: distributed transaction waiting for lock"
このユースケースでは、アダプタがバイナリ・データをデータ・ストアにストリームし、サービス・エンジン(Oracle BPEL Process ManagerまたはOracle Mediator)にhref
を公開します。表43-6に詳細を示します。
表43-6 機能
機能 | 説明 |
---|---|
セキュリティ |
なし。 |
フィルタ/トランスフォーメーション/割当て |
アタッチメントのフィルタおよびトランスフォーメーションはサポートされていません。 |
ファンアウト |
サポート対象。 |
バインディング |
アダプタが非XMLをデータベースにバイナリ・ラージ・オブジェクト(BLOB)としてストリームし、そのキーをサービス・エンジンに渡します。 |
Oracle BPEL Process Manager/Oracle Mediator |
サポート対象。 |
チューニング |
|
ドキュメント |
『Oracle Fusion Middlewareテクノロジ・アダプタ・ユーザーズ・ガイド』を参照してください。 |
アウトバウンド・ファイル・アダプタを使用したアタッチメントの書込み
例43-9に、ファイル・アダプタを使用してアタッチメントをディスクに書き込むことができるサンプル・スキーマを示します。
例43-9 アタッチメントをディスクに書き込むためのスキーマ
<?xml version="1.0" encoding="windows-1252" ?> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://xmlns.oracle.com/attachment" targetNamespace="http://xmlns.oracle.com/attachment" elementFormDefault="qualified"> <xsd:element name="attach"> <xsd:complexType> <xsd:attribute name="href" type="xsd:string"/> </xsd:complexType> </xsd:element> </xsd:schema>
フローでOracle Mediatorを使用する場合は、Oracle Mediatorのassignを使用して、ソース(Oracle Mediator)のアタッチメント・パートをターゲット(ファイル・アダプタ)にマップします。
Oracle BPEL Process Managerを使用すると、アタッチメントがデハイドレーション・ストアに書き込まれ、処理速度が低下します。
ora:doStreamingTranslate XPath関数を使用したアタッチメントの変換
ora:doStreamingTranslate
XPath関数の使用は、Oracle BPEL Process ManagerまたはOracle Mediatorのコンポジット内でアタッチメントを変換する場合にのみお薦めします。この関数は、アタッチメントの場所がサーバー上の相対パスで指定されることを想定しています。また、受信アタッチメント・ストリームを変換できません。
この関数の詳細は、B.2.6項「doStreamingTranslate」を参照してください。
このユースケースでは、Oracle B2Bがバイナリ・データをデータベースに格納し、Oracle B2B定義のXSDに基づいてサービス・エンジン(Oracle BPEL Process ManagerまたはOracle Mediator)にhref
を公開します。Oracle B2Bプロトコルがアタッチメントを定義します。表43-7に詳細を示します。
この項では、繰返しコンストラクトを使用して大規模XMLを処理する場合のユースケースについて説明します。
このユースケースでは、インバウンド・アダプタがソース・ドキュメントを複数のバッチのレコードに分割し、各バッチがコンポジット・インスタンスを起動します。表43-8に詳細を示します。
表43-8 機能
機能 | 説明 |
---|---|
セキュリティ |
なし。 |
フィルタ/トランスフォーメーション/割当て |
サポート対象。 |
ファンアウト |
サポート対象。 |
バインディング |
ファイル/FTPアダプタが、ソース・ドキュメントをネイティブのXSD(NXSD)定義に基づいて小さいチャンクにデバッチします。 |
Oracle BPEL Process Manager/Oracle Mediator |
サポート対象。 |
チューニング |
ペイロード全体のサイズと比較して繰返し構造の方が小さいペイロードであるシナリオの場合は、繰返し構造に対してXSLTがサポートされます。assignアクティビティではシャドウ・コピーが実行されるため、assignアクティビティでの置換をお薦めします。 |
ドキュメント |
『Oracle Fusion Middlewareテクノロジ・アダプタ・ユーザーズ・ガイド』を参照してください。 |
このユースケースでは、BPELプロセス内のループが一度に1チャンクのレコードとプロセス(つまりカーソル)を読み取ります。表43-9に詳細を示します。
この項では、複雑な構造の大規模XML文書を処理する場合のユースケースについて説明します。
このユースケースでは、大規模XMLファイルがSDOMとしてOracle B2BからOracle SOA Suiteに渡されます。これが実行されるのは、大規模ペイロード・サイズがOracle B2Bユーザー・インタフェースで定義されている場合のみです。表43-11に詳細を示します。
この項では、大規模ドキュメントの同時処理に関する制限について説明します。
大規模なペイロードを処理するために不透明(Opaque)スキーマを使用する場合は、制限があります。不透明(Opaque)トランスレータのデータ全体が、単一のBase64エンコード文字列に変換されます。不透明(Opaque)スキーマは通常、比較的小さいデータに使用されます。大規模なデータの場合は、不透明(Opaque)トランスレータのかわりにアタッチメント機能を使用してください。
これらの機能の使用方法については、『Oracle Fusion Middlewareテクノロジ・アダプタ・ユーザーズ・ガイド』を参照してください。
この項では、チューニングに関する一般的な推奨事項について説明します。
Oracle SOA Suiteのチューニングおよびパフォーマンスの詳細は、『Oracle Fusion Middlewareパフォーマンスおよびチューニング・ガイド』を参照してください。
この項では、チューニングに関する一般的な推奨事項について説明します。
Oracle WebLogic Server管理コンソールで、JTAトランザクションのタイムアウトを500
秒に増加します。手順については、『Oracle Fusion Middleware Oracle SOA SuiteおよびOracle Business Process Management Suite管理者ガイド』の接続タイムアウトの解決に関する項を参照してください。
Oracle Enterprise Manager Fusion Middleware Controlコンソールで、SOAコンポジット・アプリケーション・レベルの監査レベルを「オフ」または「本番」に設定します。詳細は、第43.1.3.2項「大規模ペイロード処理に対するOracle Enterprise Managerからの監査レベルの設定」を参照してください。
setDomainEnv.sh
のJAVA_OPTIONS
で次の行を非コメント化して、サーバーを再起動します。この行が存在しない場合は追加します。この設定を行わないと、大規模ペイロード・シナリオは、デハイドレーション・データ・ソースに対してResourceDisabledException
で失敗します。
-Dweblogic.resourcepool.max_test_wait_secs=30
次のように、setSOADomainEnv.sh
のヒープのサイズを更新します。
DEFAULT_MEM_ARGS="-Xms1024m -Xmx2048m"
最適化されたトランスレーション機能(ora:
doTranslateFromNative
、ora:
doTranslateToNative
、ora:
doStreamingTranslate
など)を使用します。この機能は大規模なペイロードのトランスフォーメーションおよびトランスレーション実行時に使用できます。
大規模アタッチメントを処理するためにデータ・ファイルを拡張します。詳細は、『Oracle Database管理者ガイド』を参照してください。
http://download-west.oracle.com/docs/cd/B28359_01/server.111/b28310/toc.htm
大規模ドキュメントの処理時にタイムアウト・エラーが発生した場合は、次のタスクを実行します。
タイムアウト・プロパティ値の増加
「スタック・スレッド最大時間」プロパティ値の増加
タイムアウト・プロパティ値は次のように増加します。
Oracle Web Services Manager管理コンソールにログインします。
「デプロイメント」→「soa-infra」→「EJB」の順に移動します。
次に示すBeanをそれぞれクリックし、「構成」を選択してタイムアウト値を増加します。
BpelEngineBean
BpelDeliveryBean
CompositeMetaDataServiceBean
「スタック・スレッド最大時間」プロパティ値は次のように増加します。
手順は、Oracle Fusion Middleware Oracle WebLogic Serverパフォーマンスおよびチューニングの「WebLogic 8.1のスレッド・プール・モデルの使用」の章を参照してください。
大規模なペイロードを処理する際は、特定のコンポジットに対する監査レベルのロギングをオフにしてください。Oracle Enterprise Manager Fusion Middleware Controlコンソールで、コンポジットの監査レベルのオプションを「オフ」または「本番」に設定できます。コンポジットの監査レベルのオプションを「開発」に設定した場合は、大規模なペイロード全体がメモリー内文字列にシリアライズされ、メモリー不足のエラーが発生する可能性があります。
監査レベルの設定に関する詳細は、『Oracle Fusion Middleware Oracle SOA SuiteおよびOracle Business Process Management Suite管理者ガイド』を参照してください。
Oracle BPEL Process ManagerまたはOracle Mediatorで、大規模なペイロードを操作するためにassignアクティビティを使用する場合は、メッセージ全体を割り当てないでください。かわりに、ペイロードの必要な部分のみを割り当ててください。
また、Oracle BPEL Process Managerでassignアクティビティを使用する場合は、可能なかぎりプロセス変数ではなくローカル変数を使用することをお薦めします。ローカル変数は、BPELプロセスのスコープ内に制限されます。これらの変数は、スコープを閉じた後はメモリーおよびデータベースから削除されます。ただし、グローバル変数のライフ・サイクルは、インスタンスのライフ・サイクルと関連付けられています。これらの変数は、インスタンスが完了するまで、メモリー内またはディスク内にとどまります。したがって、プロセス変数またはグローバル変数より、ローカル変数をお薦めします。
大規模なペイロードにXSLTトランスフォーメーションを適用しないことをお薦めします。XSLTでドキュメント全体を横断する必要がある場合は、メモリー不足のエラーが発生する可能性があるためです。
ペイロード全体と比較して繰返し構造の方がペイロードが小さい場合は、XSLTトランスフォーメーションの使用をお薦めします。これは、現在のXSLT実装ではDOM全体がメモリーにマテリアライズされるためです。たとえば、PurchaseOrder.LineItem.Supplier
(大規模ペイロードの一部分)を使用します。
また、assignアクティビティではシャドウ・コピーが実行されるため、assignアクティビティを使用して置換することもできます。シャドウ・コピーではDOMはマテリアライズされませんが、ソース文書を指し示すシャドウ・ノードが作成されます。
また、大規模なペイロードのトランスフォーメーション/トランスレーション実行時に、次に示す最適化されたトランスレーション機能を使用することもできます。
ora:doTranslateFromNative
ora:doTranslateToNative
ora:doStreamingTranslate
これらの関数の使用方法については、『Oracle Fusion Middlewareテクノロジ・アダプタ・ユーザーズ・ガイド』を参照してください。
Oracle B2Bで大規模ドキュメントを処理する場合は、次のパラメータをチューニングします。
MDSInstance
Cache
Size
Protocol
Message
Size
Number
of
threads
Stuck
Thread
Max
Time
Tablespace
次の各項では、Oracle B2Bで大規模ドキュメントを処理する場合に設定する必要があるパラメータについて説明します。
MDSインスタンス・キャッシュ・サイズを設定するには、例43-10に示すように、$DOMAIN_HOME/config/soa-infra/configuration/b2b-config.xml
ファイルにプロパティと値を追加する必要があります。
Oracle B2Bで10MBを超えるメッセージを送受信する場合、またはインポート/エクスポート構成が10MBを超える場合は、Oracle WebLogic Server管理コンソールで次の設定を適切に変更する必要があります。
「ドメイン構造」で、「環境」→「サーバー」の順に選択します。
表の「名前」列で、「soa_server」を選択します。
「プロトコル」タブを選択します。
「最大メッセージ・サイズ」の値を変更します。
この設定は、$DOMAIN_HOME/config/config.xml
ファイルで追加または変更することもできます。サーバー名構成の次で追加または変更します。例43-11に例を示します。
例43-11 max-message-sizeプロパティ
<name>soa_server1</name> <max-message-size>150000000</max-message-size>
注意: デフォルトで、max-message-size はconfig.xml ファイルで使用可能ではありません。 |
このパラメータは、Oracle B2Bのメッセージ処理機能の向上に役立ちます。$DOMAIN_HOME/config/soa-infra/configuration/b2b-config.xml
ファイルで設定する必要があります。例43-12に例を示します。
例43-12 スレッド数
<property> <name>b2b.inboundProcess.threadCount</name> <value>5</value> <comment></comment> </property> <property> <name>b2b.inboundProcess.sleepTime</name> <value>10</value> <comment></comment> </property> <property> <name>b2b.outboundProcess.threadCount</name> <value>5</value> <comment></comment> </property> <property> <name>b2b.outboundProcess.sleepTime</name> <value>10</value> <comment></comment> </property> <property> <name>b2b.defaultProcess.threadCount</name> <value>5</value> <comment></comment> </property> <property> <name>b2b.defaultProcess.sleepTime</name> <value>10</value> <comment></comment> </property>
「スタック・スレッド最大時間」パラメータは、サーバーがスレッドをスタック状態であると判断するまでに、スレッドが継続的に動作している必要のある秒数をチェックします。Oracle WebLogic Server管理コンソールで次の設定を変更する必要があります。
「ドメイン構造」で、「環境」→「サーバー」の順に選択します。
表の「名前」列で、「soa_server」を選択します。
「チューニング」タブを選択します。
「スタック・スレッド最大時間」の値を変更します。
150MBを超える構成をデータ・ファイルに格納する必要がある場合は、例43-13に示すように、データ・ファイルを拡張または追加して、表領域のサイズを増やす必要があります。
この項では、大規模メタデータの処理に関する推奨事項について説明します。
BPELプロセスで実行できるアクティビティ数には制限があります。この制限を超えると、システム・メモリーが一杯になり、タイムアウトが発生する可能性があります。たとえば、次のパラメータを使用すると、タイムアウトによって2つのフォルト・インスタンスが発生します。
スレッド数: 100
思考時間(秒数): 1
受信リクエスト・メッセージ数: 1000
システム・メモリーの安定性を確保するために、受信リクエスト・メッセージ数を適切なレベルに保つようにしてください。
多数のアクティビティ(例: 50,000)があるBPELプロセスをデプロイするには、次の設定が必要です。
MEM_ARGS: -Xms512m -Xmx1024m -XX:PermSize = 128m -XX:MaxPermSize = 256m
Number of Concurrent Threads = 20
Number of Loops = 5 Delay = 100 ms
この設定によって、flowNアクティビティを使用せずにwhileループのみを使用するBPELプロセスを、正常にデプロイおよび実行できるようになります。
多数のアクティビティ(例: 50,000)があるBPELプロセスをデプロイするには、次の設定が必要です。
USER_MEM_ARGS: -Xms2048m -Xmx2048m -XX:PermSize=128m -XX:MaxPermSize=256m
Number of Concurrent Threads = 10
Number of Loops = 5 Delay = 100 ms
Oracle Enterprise Manager Fusion Middleware ControlコンソールのシステムMBeanブラウザで、StatsLastNプロパティを-1
に設定します。
この設定によって、flowNアクティビティを使用するBPELプロセスを、正常にデプロイおよび実行できるようになります。
詳細は、第9章「BPELプロセスでのパラレル・フローの使用」を参照してください。
7000までのアクティビティがあるBPELプロセスを、次の設定で正常にデプロイおよび実行できます。
USER_MEM_ARGS: -Xms2048m -Xmx2048m -XX:PermSize=128m -XX:MaxPermSize=256m
注意: 8000を超えるアクティビティがあるBPELプロセスをデプロイすると、Oracle BPEL Process Managerのコンパイルでエラーがスローされます。 |
7000までのアクティビティがあるBPELプロセスを、次の設定で正常にデプロイおよび実行できます。
USER_MEM_ARGS: -Xms2048m -Xmx2048m -XX:PermSize=128m -XX:MaxPermSize=512m
注意: 10,000を超えるアクティビティがあるBPELプロセスをデプロイすると、Oracle BPEL Process Managerのコンパイルに失敗します。 |
多数のアクティビティ(例: 5000まで)があるBPELプロセスを、正常にデプロイおよび実行できます。
BPELのコンパイルは、6000アクティビティの場合は失敗する可能性があります。
単一のコンポジットに50を超えるOracle Mediatorを含めないことをお薦めします。環境にあわせて、JTAトランザクション・タイムアウトを高い値に増やします。
大規模なデータ・セットのインポートには、ブラウザは使用せずにコマンドライン・ユーティリティを使用することをお薦めします。大規模なデータの構成には、次のユーティリティ・コマンドを使用してください。
purge
: リポジトリ全体をパージする場合に使用します。
import
: 指定したZIPファイルをインポートする場合に使用します。
deploy
: 名前を指定してアグリーメントをデプロイする場合に使用します。名前を指定しない場合は、すべてのアグリーメントがデプロイされます。
ただし、purgeimportdeploy
オプションは、Oracle B2B構成の転送またはデプロイには使用しないことをお薦めします。
この項では、多数のインスタンスおよびフォルト・メトリックの処理に関する推奨事項について説明します。
Oracle Enterprise Manager Fusion Middleware Controlコンソールでの数千のインスタンスおよび拒否メッセージの削除は時間を要するため、トランザクション・タイムアウトが発生する可能性があります。このタスクを実行する必要がある場合は、purge_soainfra_oracle.sql
PL/SQLスクリプトを使用してインスタンスと拒否メッセージを削除します。
詳細は、『Oracle Fusion Middleware Oracle SOA SuiteおよびOracle Business Process Management Suite管理者ガイド』を参照してください。
Oracle Enterprise Manager Fusion Middleware Controlコンソールで、大量のインスタンスとフォルト・データを表示するページのロード時間を短縮するには、SOAインフラストラクチャの「共通プロパティ」ページの「データ数の表示」セクションで2つのプロパティを設定します。
この2つのプロパティによって、次の操作を実行できます。
インスタンス数とフォルト数のデータのフェッチを無効化して、次のページのロード時間を短縮できます。
SOAインフラストラクチャ、SOAコンポジット・アプリケーション、サービス・エンジンおよびサービス・コンポーネントのダッシュボード・ページ
「オプションを指定して削除: インスタンス」ダイアログ
この設定では、ページをロードする際にすべてのメトリック情報のロードが無効化されます。たとえば、SOAインフラストラクチャのダッシュボード・ページでは、「最新のコンポジット・インスタンス」セクションの「実行中」フィールドと「合計」フィールド、および「デプロイ済コンポジット」セクションの「インスタンス」列に通常表示される各値が、リンクに置き換えられます。これらの値が大量にある場合は、このページや類似情報が含まれた他のページのロードに時間を要する可能性があります。
検索基準の一部として使用するデフォルトの期間を指定して、次のページに表示される最新のインスタンスとフォルトを取得できます。
SOAインフラストラクチャ、SOAコンポジット・アプリケーション、サービス・エンジンおよびサービス・コンポーネントのダッシュボード・ページおよびインスタンス・ページ
サービスと参照のダッシュボード・ページ
SOAインフラストラクチャ、SOAコンポジット・アプリケーション、サービスおよび参照のフォルト・ページおよび拒否メッセージ・ページ
サービス・エンジンおよびサービス・コンポーネントのフォルト・ページ
これらのプロパティの設定に関する詳細は、『Oracle Fusion Middleware Oracle SOA SuiteおよびOracle Business Process Management Suite管理者ガイド』を参照してください。