オブジェクト・リクエスト・ブローカー (ORB) プロパティーは、データ・グリッドのトランスポート動作を変更します。 これらのプロパティーは、orb.properties ファイルを使用して設定するか、WebSphere® Application Server 管理コンソールで設定として設定するか、または WebSphere Application Server 管理コンソールで ORB のカスタム・プロパティーとして設定することができます。
UNIX システムおよび Linux システムでは、プロセス当たりに許容されるオープン・ファイルの数に制限があります。 オペレーティング・システムが、許容されるオープン・ファイルの数を指定します。 この値が小さすぎる場合、AIX® ではメモリー割り振りエラーが 発生し、多すぎるオープン・ファイルはログに記録されます。
UNIX システム端末ウィンドウ で、この値をデフォルトのシステム値よりも大きく設定して ください。クローンを持つ大容量 SMP マシンの場合、無限に設定してください。
AIX 構成では、コマンド ulimit -n -1 を使用して、この値を -1 (無限) に設定してください。
Solaris 構成 の場合、コマンド ulimit -n 16384 を使用して、この値を 16384 に設定してください。
コマンド ulimit –a を使用すれば、現行値を表示できます。
com.ibm.CORBA.RequestTimeout=30
com.ibm.CORBA.ConnectTimeout=10
com.ibm.CORBA.FragmentTimeout=30
com.ibm.CORBA.LocateRequestTimeout=10
com.ibm.CORBA.ThreadPool.MinimumSize=256
com.ibm.CORBA.ThreadPool.MaximumSize=256
com.ibm.CORBA.ThreadPool.IsGrowable=false
com.ibm.CORBA.ConnectionMultiplicity=1
com.ibm.CORBA.MinOpenConnections=1024
com.ibm.CORBA.MaxOpenConnections=1024
com.ibm.CORBA.ServerSocketQueueDepth=1024
com.ibm.CORBA.FragmentSize=0
com.ibm.CORBA.iiop.NoLocalCopies=true
com.ibm.CORBA.NoLocalInterceptors=true
タイムアウト設定
以下の設定は、ORB が要求の操作に見切りをつけるまで待機する時間に関係しています。 これらの設定を使用して、異常な状況下で余分なスレッドが作られるのを防いでください。
プロパティー名: com.ibm.CORBA.RequestTimeout
有効な値: 秒数を表す整数値。
推奨値: 30
指定するところ: WebSphere Application Server 管理コンソール
説明: 要求 (任意) が応答を待機する秒数。その秒数を過ぎると待機を止めます。 このプロパティーは、ネットワーク停止の障害が発生した場合にクライアントがフェイルオーバーするまでに要する時間に影響します。 このプロパティーの値を極端に低く設定すると、要求が誤ってタイムアウトになる可能性があります。 不用意なタイムアウトを回避するためにこのプロパティーの値は慎重に考慮してください。
プロパティー名: com.ibm.CORBA.ConnectTimeout
有効な値: 秒数を表す整数値。
推奨値: 10
指定するところ: orb.properties ファイル
説明: ソケット接続試行で待機する秒数。その秒数を過ぎると待機を止めます。 このプロパティーは、要求タイムアウトと同様に、ネットワーク停止の障害が発生した場合にクライアントがフェイルオーバーするまでに要する時間に影響します。 一般に、このプロパティーは要求タイムアウト値よりも小さい値に設定します。接続の確立に要する時間は比較的一定であるためです。
プロパティー名: com.ibm.CORBA.FragmentTimeout
有効な値: 秒数を表す整数値。
推奨値: 30
指定するところ: orb.properties ファイル
説明: フラグメント要求が待機する秒数。その秒数を過ぎると待機を止めます。 このプロパティーは、要求タイムアウト・プロパティーと類似しています。
スレッド・プールの設定
このプロパティーは、スレッド・プール・サイズを 特定のスレッド数に制約します。サーバー要求がソケットで受信されると、そのサーバー要求をスピンオフさせるために、ORB によってスレッドが使用されます。 このプロパティー値を低い値に設定すると、ソケットのキュー項目数が増加して、タイムアウトになる可能性もあります。
プロパティー名: com.ibm.CORBA.ConnectionMultiplicity
有効な値: クライアントとサーバーの間の接続数を表す整数値。 デフォルト値は 1 です。これより大きい値に設定すると、複数接続にまたがる多重化の設定になります。
推奨値: 1
指定するところ: orb.properties ファイル
説明: ORB が任意のサーバーとの複数の接続を使用できるようにします。理論的に、この値の設定は、複数接続にまたがる並列性を促進します。 実際には、接続多重度の設定によるパフォーマンス上の利点はありません。 このパラメーターは設定しないでください。プロパティー名: com.ibm.CORBA.MinOpenConnections、com.ibm.CORBA.MaxOpenConnections
有効な値: 接続数を表す整数値。
推奨値: 1024
指定するところ: WebSphere Application Server 管理コンソール
説明: オープン接続の最小数と最大数。 ORB は、クライアントとの間に確立された接続のキャッシュを保持します。 この値を超えると、これらの接続は消去されます。 接続の消去は、データ・グリッド内の動作の低下の原因になる可能性があります。プロパティー名: com.ibm.CORBA.ThreadPool.IsGrowable
有効な値: ブール値。true または false に設定します。
推奨値: false
指定するところ: orb.properties ファイル
説明: true に設定すると、ORB が着信要求用に使用するスレッド・プールは、そのプールがサポートする以上に成長する可能性があります。 プール・サイズを上回ると、要求の処理のために新規スレッドが作成されますが、そのスレッドはプールされません。 値を false に設定することで、スレッド・プールの成長を防ぎます。プロパティー名: com.ibm.CORBA.ServerSocketQueueDepth
有効な値: 接続数を表す整数値。
推奨値: 1024
指定するところ: orb.properties ファイル
説明: クライアントからの着呼接続のキューの長さを指定します。 ORB は、クライアントからの着呼接続をキューに入れます。 キューがフルになると、接続は拒否されます。 接続の拒否は、データ・グリッド内の動作の低下の原因になる可能性があります。プロパティー名: com.ibm.CORBA.FragmentSize
有効な値: バイト数を指定する整数。 デフォルトは 1024 です。
推奨値: 0
指定するところ: orb.properties ファイル
説明: ORB が要求の送信時に使用する最大パケット・サイズを指定します。 要求がフラグメント・サイズ制限より大きい場合、その要求は要求フラグメントに分割されて、それぞれ別々に送信されて、サーバー上で再組み立てされます。 要求のフラグメント化は、パケットの再送が必要になる可能性のある不安定なネットワークで有効です。 ただし、ネットワークの信頼性が高い場合、要求をフラグメントに分割すると、不必要な処理の原因になる可能性があります。プロパティー名: com.ibm.CORBA.iiop.NoLocalCopies
有効な値: ブール値。true または false に設定します。
推奨値: true
指定するところ: WebSphere Application Server 管理コンソール、「参照による受け渡し」設定
説明: ORB が参照による受け渡しをするかどうかを指定します。 ORB は、デフォルトで、値の呼び出しによる受け渡しを使用します。 インターフェースがローカルで開始されるとき、値の呼び出しによる受け渡しは、パスに余分なガーベッジやシリアライゼーションのコストをもたらす原因になります。 この値を true に設定すると、ORB は、値の呼び出しによる受け渡しよりも効率的な参照による受け渡し方式を使用します。プロパティー名: com.ibm.CORBA.NoLocalInterceptors
有効な値: ブール値。true または false に設定します。
推奨値: true
指定するところ: orb.properties ファイル
説明: ローカル要求 (プロセス内) を行うときにも ORB が要求インターセプターを開始するかどうかを指定します。 WebSphere eXtreme Scale が使用するインターセプターは、セキュリティーと経路処理を目的とし、要求がプロセス内で処理される場合には必須ではありません。プロセス間を仲介するインターセプターは、リモート・プロシージャー・コール (RPC) 操作の場合にのみ必要です。 ローカル・インターセプターなしを設定すると、ローカル・インターセプターを使用することにより生じる余分な処理を回避できます。