|
|
WebOTX Manual V10.3 (第4版) 目次を表示 |
本章では、WebOTX ESBのチューニングの方法について説明します。チューニングは大きく分けて2種類あり、WebOTX ESB全体に関するチューニングと各コンポーネント毎のチューニングがあります。また、チューニングの他にも性能に影響する設定項目の説明もします。
WebOTX ESB全体に関するチューニングを説明します。
WebOTX ESBでは、DOM解析処理を行うDocumentBuilderオブジェクトをプールにより管理しており、ESB全体で共有しています。そのため、システムで想定される負荷に応じてDocumentBuildrのプールのサイズを調整することが可能です。このDocumentBuilderオブジェクトはSOAP BCのSUで「XML処理のタイプ」で指定した場合や、各種ハンドラでDOM操作を行う場合に利用されます。
[関連する設定項目]
|
otxadmin> set domain.applications.lifecycle-module.JBIFramework.property.woesb\\.DocumentBuilderPoolSize=200 |
メッセージログ機能を有効にすると、ESBはNMRを流れるメッセージを監視するため、若干性能が下がります。メッセージログ機能は初期状態では無効となっています。 メッセージログをファイルに出力する場合、非同期出力にすることで性能の劣化をある程度抑えることができます。ただし、非同期出力にした場合は、 高負荷時にログ出力が遅延し、キュー最大値を超えて要求されたメッセージログについてはロストするため注意が必要です。
[関連する設定項目]
WebOTX ESBはTPモニタで管理されるプロセスのプロセス中で動作します。その為、最適な性能を得るにはプロセスグループの「プロセス数」のチューニングを行う必要があります。
[関連する設定項目]
ここでは、バインディングコンポーネントで共通のチューニング項目について説明します。
ログ出力量に応じて性能値が変化します。CONFIGレベルでは起動・停止および設定関連のログのみ出力しますので、通常動作ではCONFIGレベル(既定値)の設定を推奨します。正常動作時では、CONFIG〜OFFの性能値は変化しません。DEBUGよりも詳細なログレベルでは正常動作時にもログを出力しますので、ログを詳細にする毎に性能値が低下します。
[関連する設定項目]
統計情報を採取するレベルに応じて性能値が変化します。既定値は"OFF"で、統計情報を採取しないため、最も高速です。"LOW"ではBC単位で統計情報を採取します。"HIGH"では、さらに配備されたエンドポイント毎の統計情報を採取します。
[関連する設定項目]
「最大スレッド数」は、該当BCのOutboundへ同時にアクセスされると予想する最大数に対して余裕を持って設定します。最大スレッド数を超えた数のアクセスを行うとErrorメッセージが返却されます。
「最小スレッド数」は、平常稼動時に該当BCのOutboundへ同時にアクセスすると予想される平均数の程度に設定します。「最小スレッド数」を越えた数のアクセスを行った場合、スレッドが新たに生成されます。その後、「最小スレッド数」を越えて生成されたスレッドが使用されなかった場合、「スレッド解放までの時間」で設定した時間後にスレッドが自動で解放されます。
[関連する設定項目]
NMR内を通るメッセージを、各コンポーネントのInbound/Outboundのスレッドに振り分けるEventManagerスレッドの数を設定します。 大量のメッセージがNMR内を通る時に、EventManagerによるメッセージの振り分けがボトルネックとなり、CPUリソースに空きがあるにも関わらず性能が頭打ちになるケースがあります。 各コンポーネントの統計情報として取得できる「DeliveryChannelQueueCountNow」の値が大きい場合(100以上など)に、 「EventManagerスレッド数」を調整することによって上記のようなケースにおける性能の頭打ちが解消される可能性があります。
[関連する設定項目]
エラーリトライを設定している場合、エラー発生時にInboundのコンポーネントからメッセージが再送されます。
セキュリティ機能が有効になっている場合、再送後のメッセージに対しても認証・認可が実施されますが、オプション一覧に名前:AUTHORIZE_SKIP、値:trueを設定することで認証・認可機能をスキップさせることができます。
認可の条件に時間を設定しているような場合、スキップを行うと予期せぬ時間にエンドポイントが実行される可能性があります。AUTHORIZE_SKIPの設定は十分検討してから設定を行うようにしてください。
[関連する設定項目]
以降では、各コンポーネント毎のチューニング方法をそれぞれ説明します。
SOAP BCを利用する場合の性能チューニングについて説明します。 各BCで共通のチューニングは[ 5.2. バインディングコンポーネント ] を参照してください。
Webサーバを使用する場合は、併せてWebサーバのチューニングが必要になります。Webサーバについては [ WebOTX Webサーバ ] を参照してください。
以下はSOAP BCのチューニングポイントを表した図とチューニングポイントの説明です。
【図5.2.2a】SOAP BCのチューニングポイントの全体図

| 番号 | 説明 | チューニング観点 | 設定場所 |
|---|---|---|---|
| 1 | Webサーバのスレッド数を設定します。 | クライアント数が増加し、接続できない場合 | ご利用のWebサーバのチューニング方法に従い、設定してください。 |
| 2-1 | AJPリスナを設定します。(Expressの場合のみ) | WebOTXマニュアルの[ チューニング ]をご確認ください。 | |
| 2-2 | IIPOリスナを設定します。(Standardの場合のみ) | WebOTXマニュアルの[ チューニング ]をご確認ください。 | |
| 3 | Inboundの受信用スレッド数を設定します。Webコンテナのスレッドを利用しており、リクエストを受けるたびに1つ消費します。 | Endpointの流量制御が必要な場合 | WebOTXマニュアルの[ チューニング ]をご確認ください。 |
| 4 | EventManagerのスレッド数を設定します。EventMangerはNMRのQueueからメッセージを取り出し、ワーカスレッドへ割り当てます。 | Queueにメッセージが滞留している場合 | コンポーネント:「EventManagerスレッド数」 |
| 5 | Outbound、およびInbound返信用のワーカスレッド数を設定します。 | 大量メッセージを受信する場合 | コンポーネント:「最大スレッド数」、「最小スレッド数」 |
| 6 | HTTPチューニングパラメータ | Keep-alive, Expect-contineなどが必要な場合 | ProviderのEndpointの各種設定項目 |
【表5.2.2a】SOAP BCのチューニングポイントの説明
SOAP BCでは、内部で用いるXML処理の方式をDOMとSAXから選択できます。 基本的にSAXは高速かつ低メモリで処理が可能ですが、接続するBC/SEに応じてDOMの方が高速になることがあります。 具体的には、CORBA BC、RMI BC、JDBC BCは内部でDOM処理を行いますので、SOAP BCからこれらのBCへ接続する場合はDOMとした方が高速となる可能性が高くなります。 また、SOAPメッセージのバージョンが1.2の場合、およびSOAP Header内に要素がある場合は、設定に関係なくDOMで処理を行います。
[関連する設定項目]
SOAP BCのInboundはWebコンテナ上のHTTPリスナのスレッドで動作します。 そのため、SOAP BCにアクセスするクライアントの予想される多重度に合わせて、WebコンテナのHTTP処理スレッド数を調節します。
[関連する設定項目]
JMS BCを利用する場合のチューニングについて説明します。 各BCで共通のチューニングは[ 5.2. バインディングコンポーネント > 5.2.1. 共通 ] を参照してください。
以下はJMS BCのチューニングポイントを表した図とチューニングポイントの説明です。
【図5.2.3a】JMS BCのチューニングポイントの全体図(リソースアダプタを利用する場合)

| 番号 | 説明 | チューニング観点 | 設定場所 |
|---|---|---|---|
| 1 | JCAコンテナ上で動作するMessageListenerの多重度を指定します。 | JMS送信先にメッセージが滞留する場合(多重度を上げる) ESBにメッセージが滞留してきた場合(多重度を下げる) | エンドポイント:「リソースアダプタ」-「ActivationSpec定義」 |
| 2 | EventManagerのスレッド数を設定します。EventMangerはNMRのQueueからメッセージを取り出し、ワーカスレッドへ割り当てます。 | Queueにメッセージが滞留している場合 | コンポーネント:「EventManagerスレッド数」 |
| 3 | Outbound、およびInbound返信用のワーカスレッド数を設定します。 | JMS BCにメッセージが滞留してきた場合 | コンポーネント:「最大スレッド数」、「最小スレッド数」 |
【表5.2.3a】JMS BCのチューニングポイントの説明
【図5.2.3b】JMS BCのチューニングポイントの全体図(リソースアダプタを利用しない場合)

| 番号 | 説明 | チューニング観点 | 設定場所 |
|---|---|---|---|
| 1 | EventManagerのスレッド数を設定します。EventMangerはNMRのQueueからメッセージを取り出し、ワーカスレッドへ割り当てます。 | Queueにメッセージが滞留している場合 | コンポーネント:「EventManagerスレッド数」 |
| 2 | Outbound、およびInbound返信用のワーカスレッド数を設定します。 | JMS BCにメッセージが滞留してきた場合 | コンポーネント:「最大スレッド数」、「最小スレッド数」 |
【表5.2.3b】JMS BCのチューニングポイントの説明
利用するJMSの設定を適切にする必要があります。
[関連する設定項目]
利用するJMSリソースアダプタに関する設定(ActivationSpecやコネクタコネクションプールのプロパティ)を適切にする必要があります。
例えば、Inbound多重度を増やすことで同時に処理するメッセージ数を増やしたり、JMSサーバへの接続リトライ数や間隔を設定することにより再起動時に自動的に再接続させることも可能です。
[関連する設定項目]
JCA BCを利用する場合のチューニングについて説明します。 各BCで共通のチューニングは[ 5.2. バインディングコンポーネント ] を参照してください。
以下はJCA BCのチューニングポイントを表した図とチューニングポイントの説明です。
【図5.2.4a】JCA BCのチューニングポイントの全体図

| 番号 | 説明 | チューニング観点 | 設定場所 |
|---|---|---|---|
| 1 | EventManagerのスレッド数を設定します。EventMangerはNMRのQueueからメッセージを取り出し、ワーカスレッドへ割り当てます。 | Queueにメッセージが滞留している場合 | コンポーネント:「EventManagerスレッド数」 |
| 2 | Outbound、およびInbound返信用のワーカスレッド数を設定します。 | 大量メッセージを受信する場合 | コンポーネント:「最大スレッド数」、「最小スレッド数」 |
【表5.2.4a】JCA BCのチューニングポイントの説明
Inboundでは、プロバイダ側の処理能力により、リソースアダプタへの応答が遅延することが考えられます。この応答が遅延すると、EISでトランザクションのタイムアウトが発生する原因になります。
JCA BCでは、プロバイダ側からの応答を待たずに即座にリソースアダプタに応答を返す設定や指定時間だけ待ち合わせる設定を提供しています。必要に合わせて、設定を調整してください。
[関連する設定項目]
RMI BCを利用する場合のチューニングについて説明します。 各BCで共通のチューニングは[ 5.2. バインディングコンポーネント > 5.2.1. 共通 ] を参照してください。
以下はRMI BCのチューニングポイントを表した図とチューニングポイントの説明です。
【図5.2.5a】RMI BCのチューニングポイントの全体図

| 番号 | 説明 | チューニング観点 | 設定場所 |
|---|---|---|---|
| 1 | EventManagerのスレッド数を設定します。EventMangerはNMRのQueueからメッセージを取り出し、ワーカスレッドへ割り当てます。 | Queueにメッセージが滞留している場合 | コンポーネント:「EventManagerスレッド数」 |
| 2 | Outbound、およびInbound返信用のワーカスレッド数を設定します。 | RMI BCにメッセージが滞留してきた場合 | コンポーネント:「最大スレッド数」、「最小スレッド数」 |
【表5.2.5a】RMI BCのチューニングポイントの説明
OutboundでのEJB呼び出しに遅延が生じると、InboundからのリクエストがESB内に滞留することになり、処理遅延やメモリ不足などの問題を引き起こすことも考えられます。これを回避するためには、EJB呼び出しをタイムアウトさせることが有効となります。
EJBの呼び出しは、Object Broker Javaが提供するRMI-IIOP通信基盤を通して行われます。Objetct
Broker
Javaでは、クライアントからのサーバ呼び出しで想定以上の遅延を生じさせないためにリクエストタイムアウトの仕組みが提供されています。
[関連する設定項目]
File BCを利用する場合のチューニングについて説明します。 File BCに特有な性能チューニングはありません。 各BCで共通のチューニングは[ 5.2. バインディングコンポーネント > 5.2.1. 共通 ] を参照してください。
以下はFile BCのチューニングポイントを表した図とチューニングポイントの説明です。
【図5.2.6a】File BCのチューニングポイントの全体図

| 番号 | 説明 | チューニング観点 | 設定場所 |
|---|---|---|---|
| 1.1 | Endpointの流量制御 | エンドポイント:「エンドポイント単位の同時処理最大リクエスト数」 | |
| 1.2 | 1プロセスのInboundスレッドで同時処理最大ファイル数 | コンポーネント:1プロセスのInboundスレッドで同時処理最大ファイル数 | |
| 1.3 | マルチプロセスのInboundで同時処理最大ファイル数 | コンポーネント:マルチプロセスのInboundで同時処理最大ファイル数 | |
| 2 | EventManagerのスレッド数を設定します。EventMangerはNMRのQueueからメッセージを取り出し、ワーカスレッドへ割り当てます。 | Queueにメッセージが滞留している場合 | コンポーネント:「EventManagerスレッド数」 |
| 3 | 書き込み制御世代数 | エンドポイント:出力ファイルの世代数 | |
| 4 | Outbound、およびInbound返信用のワーカスレッド数を設定します。 | 大量メッセージを受信する場合 | コンポーネント:「最大スレッド数」、「最小スレッド数」 |
【表5.2.6a】File BCのチューニングポイントの説明
CORBA BCを利用する場合のチューニングについて説明します。 各BCで共通のチューニングは[ 5.2. バインディングコンポーネント > 5.2.1. 共通 ] を参照してください。
【図5.2.7a】CORBA BCのチューニングポイントの全体図

| 番号 | 説明 | チューニング観点 | 設定場所 |
|---|---|---|---|
| 1 | EventManagerのスレッド数を設定します。EventMangerはNMRのQueueからメッセージを取り出し、ワーカスレッドへ割り当てます。 | Queueにメッセージが滞留している場合 | コンポーネント:「EventManagerスレッド数」 |
| 2 | Outbound、およびInbound返信用のワーカスレッド数を設定します。 | CORBA BCにメッセージが滞留してきた場合 | コンポーネント:「最大スレッド数」、「最小スレッド数」 |
【表5.2.7a】CORBA BCのチューニングポイントの説明
OutboundでのCORBAアプリケーションの呼び出しに遅延が生じると、InboundからのリクエストがESB内に滞留することになり、処理遅延やメモリ不足などの問題を引き起こすことも考えられます。これを回避するためには、CORBAアプリケーション呼び出しをタイムアウトさせることが有効となります。
CORBAアプリケーションの呼び出しは、Object Broker
Javaが提供するIIOP通信基盤を通して行われます。Objetct Broker
Javaでは、クライアントからのサーバ呼び出しで想定以上の遅延を生じさせないためにリクエストタイムアウトの仕組みが提供されています。
[関連する設定項目]
JDBC BCを利用する場合のチューニングについて説明します。 各BCで共通のチューニングは[ 5.2. バインディングコンポーネント > 5.2.1. 共通 ] を参照してください。
【図5.2.8a】JDBC BCのチューニングポイントの全体図

| 番号 | 説明 | チューニング観点 | 設定場所 |
|---|---|---|---|
| 1 | データ有無の監視間隔を設定します。 | メッセージの入力頻度の調整 | エンドポイント:オペレーションの設定「データ有無の監視間隔」 コンポーネント:「データ有無の監視間隔」 |
| 2 | select実行時のレコードの取得上限値を設定します。 | メッセージの同時処理数の調整 | エンドポイント:オペレーションの設定「クエリのレコード数上限値」 コンポーネント:「クエリのレコード数上限値」 |
| 3 | EventManagerのスレッド数を設定します。EventMangerはNMRのQueueからメッセージを取り出し、ワーカスレッドへ割り当てます。 | Queueにメッセージが滞留している場合 | コンポーネント:「EventManagerスレッド数」 |
| 4 | Outbound、およびInbound返信用のワーカスレッド数を設定します。 | JDBC BCにメッセージが滞留してきた場合 | コンポーネント:「最大スレッド数」、「最小スレッド数」 |
【表5.2.8a】JDBC BCのチューニングポイントの説明
Outboundでのデータベースアクセスに遅延が生じると、InboundからのリクエストがESB内に滞留することになり、処理遅延やメモリ不足などの問題を引き起こすことも考えられます。これを回避するためには、SQL命令の実行をタイムアウトさせることが有効となります。
JDBCデータソースでは、使用するjava.sql.Statementのタイムアウトを利用するための設定が提供されています。
[関連する設定項目]
Inboundでのデータベースに対するクエリは、専用の受信スレッドが一定間隔でSQLを発行し、1度に取得したレコード群を1つのメッセージに対応付けてOutboundに送信しています。
データベースへの入力頻度とOutboundエンドポイントの処理能力に合わせて、単位時間あたりのリクエスト受付数が多くなりすぎないようにチューニングすることが必要です。
[関連する設定項目]
クエリで処理対象となったレコードは、応答メッセージが戻るまで更新されません。そのため、Outbound処理が遅延した場合、次のクエリで再度対象となり、二重にリクエストメッセージを生成する可能性があります。
この問題を回避するには、次のような方法が考えられます。
1つは、Outbound処理で遅延を発生させない設定(例えばRMI
BCのリクエストタイムアウト等)をし、「データ有無の監視間隔」を想定される遅延時間以上に設定しておくことが考えられます。
もう1つは、データベースプロバイダの実装に依存した方法です。例えば、Oracleでは"SELECT 〜 FOR UPDATE
[WAIT |
NOWAIT]"という明示的な行ロックを行えるSQLを提供しています。これを応答メッセージを受け付けるまでの間、XAトランザクションに連携させることで二重処理を回避します。
[関連する設定項目]
利用するJDBCデータソースの設定を適切にする必要があります。
[関連する設定項目]
FTP BCを利用する場合の性能チューニングについて説明します。 各BCで共通のチューニングは[ 5.2. バインディングコンポーネント > 5.2.1. 共通 ] を参照してください。
以下はFTP BCのチューニングポイントを表した図とチューニングポイントの説明です。
【図5.2.9a】FTP BCのチューニングポイントの全体図

| 番号 | 説明 | チューニング観点 | 設定場所 |
|---|---|---|---|
| 1.1 | Endpointの流量制御 | エンドポイント:「エンドポイント単位の同時処理最大リクエスト数」 | |
| 1.2 | 1プロセスのInboundスレッドで同時処理最大ファイル数 | コンポーネント:「1プロセスのInboundスレッドで同時処理最大ファイル数」 | |
| 1.3 | マルチプロセスのInboundで同時処理最大ファイル数 | コンポーネント:「マルチプロセスのInboundで同時処理最大ファイル数」 | |
| 2 | Outboundのスレッド数を設定します。 | Queueにメッセージが滞留している場合 | コンポーネント:「アウトバウンドのスレッド数」 |
| 3 | 書き込み制御世代数 | エンドポイント:出力ファイルの世代数 | |
| 4 | Outbound返信用のワーカスレッド数を設定します。 | 大量メッセージを受信する場合 | コンポーネント:「最大スレッド数」、「最小スレッド数」 |
【表5.2.9a】FTP BCのチューニングポイントの説明
ESBを経由せず、メッセージをFTPサーバ間で直接転送するかを指定する項目です。
true(直接転送する)の方が性能面で有利ですが、ESB内でファイル内の情報を扱えなくなります。例えば、ファイル内容に基づいたルーティングなどは行えません。既定値は
false です。
[関連する設定項目]
FTPサーバのディレクトリをポーリングする間隔です。短く設定することでリアルタイム性が向上しますが、FTPサーバからファイルを取得した後の処理が過負荷になることが考えられます。
[関連する設定項目]
アウトバウンドで起動させるスレッド数を指定する項目です。1に設定することでメッセージ処理の順序保証が可能ですが、性能面で問題となる場合があります。順序性が求められない場合は、多重度をあげることで性能向上が期待できます。
[関連する設定項目]
HTTP BCを利用する場合の性能チューニングについて説明します。 各BCで共通のチューニングは[ 5.2. バインディングコンポーネント > 5.2.1. 共通 ] を参照してください。
Webサーバを使用する場合は、併せてWebサーバのチューニングが必要になります。Webサーバについては [ WebOTX Webサーバ ] を参照してください。
以下はHTTP BCのチューニングポイントを表した図とチューニングポイントの説明です。
【図5.2.10a】HTTP BCのチューニングポイントの全体図

| 番号 | 説明 | チューニング観点 | 設定場所 |
|---|---|---|---|
| 1 | Webサーバのスレッド数を設定します。 | クライアント数が増加し、接続できない場合 | ご利用のWebサーバのチューニング方法に従い、設定してください。 |
| 2-1 | AJPリスナを設定します。(Expressの場合のみ) | WebOTXマニュアルの[ チューニング ]をご確認ください。 | |
| 2-2 | IIPOリスナを設定します。(Standardの場合のみ) | WebOTXマニュアルの[ チューニング ]をご確認ください。 | |
| 3 | Inboundの受信用スレッド数を設定します。Webコンテナのスレッドを利用しており、リクエストを受けるたびに1つ消費します。 | Endpointの流量制御が必要な場合 | WebOTXマニュアルの[ チューニング ]をご確認ください。 |
| 4 | EventManagerのスレッド数を設定します。EventMangerはNMRのQueueからメッセージを取り出し、ワーカスレッドへ割り当てます。 | Queueにメッセージが滞留している場合 | コンポーネント:「EventManagerスレッド数」 |
| 5 | Outbound、およびInbound返信用のワーカスレッド数を設定します。 | 大量メッセージを受信する場合 | コンポーネント:「最大スレッド数」、「最小スレッド数」 |
| 6 | HTTPチューニングパラメータ | Keep-alive, Expect-contineなどが必要な場合 | ProviderのEndpointの各種設定項目 |
【表5.2.10a】HTTP BCのチューニングポイントの説明
HTTP BCのInboundはWebコンテナ上のHTTPリスナのスレッドで動作します。 そのため、HTTP BCにアクセスするクライアントの予想される多重度に合わせて、WebコンテナのHTTP処理スレッド数を調節します。
[関連する設定項目]
Proxy BCに特有な性能チューニングはありません。 各BCで共通のチューニングは[ 5.2. バインディングコンポーネント > 5.2.1. 共通 ] を参照してください。
TCP/IP BCを利用する場合の性能チューニングについて説明します。 各BCで共通のチューニングは[ 5.2. バインディングコンポーネント > 5.2.1. 共通 ] を参照してください。
以下はTCP/IP BCのチューニングポイントを表した図とチューニングポイントの説明です。
【図5.2.12a】TCP/IP BCのチューニングポイントの全体図

| 番号 | 説明 | チューニング観点 | 設定場所 |
|---|---|---|---|
| 1 | Endpoint流量制御 | Endpointの流量制御が必要な場合 | エンドポイント:「エンドポイント単位の同時処理最大リクエスト数」 |
| 2 | クライアントアプリケーションとInbound間コネクション数。コネクションとスレッドプール内のスレッドが一対一で対応します。 | 同時接続コネクション数を制限したいとき | エンドポイント:「最大コネクション数」 |
| 3 | EventManagerのスレッド数を設定します。EventMangerはNMRのQueueからメッセージを取り出し、ワーカスレッドへ割り当てます。 | Queueにメッセージが滞留している場合 | コンポーネント:「EventManagerスレッド数」 |
| 4 | Outboundのワーカスレッド数を設定します。 | 大量メッセージを受信する場合 | コンポーネント:「最大スレッド数」、「最小スレッド数」 |
| 5 | コネクションプールサイズ | エンドポイント:「最大プールサイズ」、「最小プールサイズ」、「初期プールサイズ」 |
【表5.2.12a】TCP/IP BCのチューニングポイントの説明
TCP/IP BCのInboundは接続するコネクションの最大数を設定可能です。 TCP/IP BCのInboundにアクセスするクライアントの予想される多重度に合わせて、最大コネクション数を調節します。
[関連する設定項目]
TCP/IP BCのOutboundはサーバアプリケーションとの接続をキープするコネクション数を設定可能です。 最小プールサイズを値を十分大きくするとコネクションを再利用することができコネクション確立のコストを 抑えることができますが、プールサイズを大きくしすぎると大量のコネクションをキープするのでリソースを消費してしまいます。 また最大プールサイズを超えてコネクションの確立は行いません。 TCP/IP BCのOutboundが同時アクセスする予想される多重度に合わせて、最大コネクション数、最小コネクション数を調節します。
[関連する設定項目]
Salesforce BCを利用する場合の性能チューニングについて説明します。 各BCで共通のチューニングは[ 5.2. バインディングコンポーネント ] を参照してください。
Webサーバを使用する場合は、併せてWebサーバのチューニングが必要になります。Webサーバについては [ WebOTX Webサーバ ] を参照してください。
以下はSalesforce BCのチューニングポイントを表した図とチューニングポイントの説明です。
【図5.2.13a】Salesforce BCのチューニングポイントの全体図

| 番号 | 説明 | チューニング観点 | 設定場所 |
|---|---|---|---|
| 1 | Webサーバのスレッド数を設定します。 | クライアント数が増加し、接続できない場合 | ご利用のWebサーバのチューニング方法に従い、設定してください。 |
| 2-1 | AJPリスナを設定します。(Expressの場合のみ) | WebOTXマニュアルの[ チューニング ]をご確認ください。 | |
| 2-2 | IIPOリスナを設定します。(Standardの場合のみ) | WebOTXマニュアルの[ チューニング ]をご確認ください。 | |
| 3 | Inboundの受信用スレッド数を設定します。Webコンテナのスレッドを利用しており、リクエストを受けるたびに1つ消費します。 | Endpointの流量制御が必要な場合 | WebOTXマニュアルの[ チューニング ]をご確認ください。 |
| 4 | EventManagerのスレッド数を設定します。EventMangerはNMRのQueueからメッセージを取り出し、ワーカスレッドへ割り当てます。 | Queueにメッセージが滞留している場合 | コンポーネント:「EventManagerスレッド数」 |
| 5 | Outbound、およびInbound返信用のワーカスレッド数を設定します。 | 大量メッセージを受信する場合 | コンポーネント:「最大スレッド数」、「最小スレッド数」 |
| 6 | HTTPチューニングパラメータ | Keep-alive, Expect-contineなどが必要な場合 | ProviderのEndpointの各種設定項目 |
【表5.2.13a】Salesforce BCのチューニングポイントの説明
Salesforce BCでは、内部で用いるXML処理の方式をDOMとSAXから選択できます。 基本的にSAXは高速かつ低メモリで処理が可能ですが、接続するBC/SEに応じてDOMの方が高速になることがあります。 具体的には、CORBA BC、RMI BC、JDBC BCは内部でDOM処理を行いますので、Salesforce BCからこれらのBCへ接続する場合はDOMとした方が高速となる可能性が高くなります。 また、Salesforceメッセージのバージョンが1.2の場合、およびSOAP Header内に要素がある場合は、設定に関係なくDOMで処理を行います。
[関連する設定項目]
Salesforce BCのInboundはWebコンテナ上のHTTPリスナのスレッドで動作します。 そのため、Salesforce BCにアクセスするクライアントの予想される多重度に合わせて、WebコンテナのHTTP処理スレッド数を調節します。
[関連する設定項目]
HL7 BCを利用する場合の性能チューニングについて説明します。 各BCで共通のチューニングは[ 5.2. バインディングコンポーネント > 5.2.1. 共通 ] を参照してください。
以下はHL7 BCのチューニングポイントを表した図とチューニングポイントの説明です。
【図5.2.14a】HL7 BCのチューニングポイントの全体図

| 番号 | 説明 | チューニング観点 | 設定場所 |
|---|---|---|---|
| 1 | Endpoint流量制御 | Endpointの流量制御が必要な場合 | エンドポイント:「エンドポイント単位の同時処理最大リクエスト数」 |
| 2 | クライアントアプリケーションとInbound間コネクション数。コネクションとスレッドプール内のスレッドが一対一で対応します。 | 同時接続コネクション数を制限したいとき | エンドポイント:「最大コネクション数」 |
| 3 | EventManagerのスレッド数を設定します。EventMangerはNMRのQueueからメッセージを取り出し、ワーカスレッドへ割り当てます。 | Queueにメッセージが滞留している場合 | コンポーネント:「EventManagerスレッド数」 |
| 4 | Outboundのワーカスレッド数を設定します。 | 大量メッセージを受信する場合 | コンポーネント:「最大スレッド数」、「最小スレッド数」 |
| 5 | コネクションプールサイズ | エンドポイント:「最大プールサイズ」、「最小プールサイズ」、「初期プールサイズ」 |
【表5.2.14a】HL7 BCのチューニングポイントの説明
HL7 BCのInboundは接続するコネクションの最大数を設定可能です。 HL7 BCのInboundにアクセスするクライアントの予想される多重度に合わせて、最大コネクション数を調節します。
[関連する設定項目]
HL7 BCのOutboundはサーバアプリケーションとの接続をキープするコネクション数を設定可能です。 最小プールサイズを値を十分大きくするとコネクションを再利用することができコネクション確立のコストを 抑えることができますが、プールサイズを大きくしすぎると大量のコネクションをキープするのでリソースを消費してしまいます。 また最大プールサイズを超えてコネクションの確立は行いません。 HL7 BCのOutboundが同時アクセスする予想される多重度に合わせて、最大コネクション数、最小コネクション数を調節します。
[関連する設定項目]
Transport BCを利用する場合の性能チューニングについて説明します。 各BCで共通のチューニングは[ 5.2. バインディングコンポーネント > 5.2.1. 共通 ] を参照してください。
以下はTransport BCのチューニングポイントを表した図とチューニングポイントの説明です。
【図5.2.15a】Transport BCのチューニングポイントの全体図

| 番号 | 説明 | チューニング観点 | 設定場所 |
|---|---|---|---|
| 1 | Endpoint流量制御によりInboundで起動するスレッド数の上限が決まります。 | Inboundでの流量制御が必要な場合 | エンドポイント:「エンドポイント単位の同時処理最大リクエスト数」 |
| 2 | EventManagerのスレッド数を設定します。EventMangerはNMRのQueueからメッセージを取り出し、ワーカスレッドへ割り当てます。 | Queueにメッセージが滞留している場合 | コンポーネント:「EventManagerスレッド数」 |
| 3 | Outboundのワーカスレッド数を設定します。 | 大量メッセージを受信する場合 | コンポーネント:「最大スレッド数」、「最小スレッド数」 |
【表5.2.15a】Transport BCのチューニングポイントの説明
SAP BCを利用する場合の性能チューニングについて説明します。 各BCで共通のチューニングは[ 5.2. バインディングコンポーネント > 5.2.1. 共通 ] を参照してください。
以下はSAP BCのチューニングポイントを表した図とチューニングポイントの説明です。
【図5.2.16a】SAP BCのチューニングポイントの全体図

| 番号 | 説明 | チューニング観点 | 設定場所 |
|---|---|---|---|
| 1 | EventManagerのスレッド数を設定します。EventMangerはNMRのQueueからメッセージを取り出し、ワーカスレッドへ割り当てます。 | Queueにメッセージが滞留している場合 | コンポーネント:「EventManagerスレッド数」 |
| 2 | Outboundのワーカスレッド数を設定します。 | 大量メッセージを受信する場合 | コンポーネント:「最大スレッド数」、「最小スレッド数」 |
| 3 | コネクションプールサイズ | SAPとのコネクション数を制限したい場合 | 「SAPシステム登録」操作における「コネクションプールの最大接続数」、「接続可能なコネクションの最大数」 |
【表5.2.16a】SAP BCのチューニングポイントの説明
SAP BCのOutboundはサーバアプリケーションとの接続をキープするコネクション数を設定可能です。 コネクションプールの最大接続数を値を十分大きくするとコネクションを再利用することができコネクション確立のコストを 抑えることができますが、プールサイズを大きくしすぎると大量のコネクションをキープするのでリソースを消費してしまいます。 SAP BCのOutboundが同時アクセスする予想される多重度に合わせて数を調節します。
[関連する設定項目]
サービスエンジンにおいても、チューニング項目はバインディングコンポーネントと共通です。 [ 5.2. バインディングコンポーネント > 5.2.1. 共通 ] を参照してください。
以下はXSLT/Sequencing/CBR/UserProcessor SEのチューニングポイントを表した図とチューニングポイントの説明です。
【図5.3.1a】Service Engineのチューニングポイントの全体図

| 番号 | 説明 | チューニング観点 | 設定場所 |
|---|---|---|---|
| 1 | EventManagerのスレッド数を設定します。EventMangerはNMRのQueueからメッセージを取り出し、ワーカスレッドへ割り当てます。 | Queueにメッセージが滞留している場合 | コンポーネント:「EventManagerスレッド数」 |
| 2 | ワーカスレッド数を設定します。 | 大量メッセージを受信する場合 | コンポーネント:「最大スレッド数」、「最小スレッド数」 |
【表5.3.1a】Service Engineのチューニングポイントの説明
XSLT SEを利用する場合の性能チューニングについて説明します。
XSLT変換をメモリ上で実行するかどうか選択します。
trueの方が性能面で有利ですが、大容量のファイルを扱うときにメモリ不足などの問題が発生する可能性があります。既定値は trueです。
[関連する設定項目]
Sequencing SEに特有な性能チューニングはありません。
CBR SEに特有な性能チューニングはありません。
UserProcessor SEに特有な性能チューニングはありません。