オブジェクト・リクエスト・ブローカー・サービス設定

このページを使用して、Java™ オブジェクト・リクエスト・ブローカー (ORB) サービスを構成します。

この管理コンソール・ページを表示するには、以下のようにします。

内部オブジェクト・リクエスト・ブローカー (ORB) 処理を制御するために、いくつかの設定値が使用可能です。 エンタープライズ Bean を含むアプリケーションの場合、 これらの設定値を使用してアプリケーション・パフォーマンスを向上させます。 デフォルト・サーバーまたは管理可能ドメイン内に構成されている任意のアプリケーション・サーバーについて、 これらの設定値を変更することができます。

要求タイムアウト

要求メッセージについてタイムアウトとなるまでに待機する秒数を指定します。

コマンド行スクリプトを使用する場合、 このシステム・プロパティーのフルネームは com.ibm.CORBA.RequestTimeout です。

データ型 int
単位
デフォルト 180
範囲 0 から Java で認識される最大の整数
要求再試行カウント [AIX Solaris HP-UX Linux Windows] [iSeries]

サーバーに障害が起こった場合、ORB が要求の送信を試みる回数を指定します。 再試行によって、一時的なネットワーク障害からリカバリーできることもあります。 このフィールドは、z/OS® では無視されます。

コマンド行スクリプトを使用する場合、 このシステム・プロパティーのフルネームは com.ibm.CORBA.requestRetriesCount です。

データ型 int
デフォルト 1
範囲 1 から 10
要求再試行の遅延 [AIX Solaris HP-UX Linux Windows] [iSeries]

要求を再試行してから、次に再試行するまでの間隔をミリ秒単位で指定します。 このフィールドは、z/OS では無視されます。

コマンド行スクリプトを使用する場合、 このシステム・プロパティーのフルネームは com.ibm.CORBA.requestRetriesDelay です。

データ型 int
単位 ミリ秒
デフォルト 0
範囲 0 から 60,000
最大接続キャッシュ [AIX Solaris HP-UX Linux Windows] [iSeries]

ORB がキャッシュからの活動停止接続の除去を開始するまでに、ORB 接続キャッシュを 占有できるエントリーの最大数を指定します。 このフィールドは、z/OS では無視されます。

キャッシュ内の活動接続の数が一時的にこのしきい値を超える可能性があります。 必要な場合、ORB は、使用可能なリソースがある限り、接続を追加し続けます。

コマンド行スクリプトで使用する場合、 このシステム・プロパティーのフルネームは com.ibm.CORBA.MaxOpenConnections です。

データ型 整数
単位 接続数
デフォルト 240
範囲 10 - Java で認識される最大の整数
最小接続キャッシュ [AIX Solaris HP-UX Linux Windows] [iSeries]

ORB 接続キャッシュ内のエントリーの最小数を指定します。 このフィールドは、z/OS では無視されます。

ORB は、エントリー数がこの値より小さくなると、非アクティブの接続を除去しなくなります。

コマンド行スクリプトで使用する場合、 このシステム・プロパティーのフルネームは com.ibm.CORBA.MinOpenConnections です。

データ型 整数
単位 接続数
デフォルト 100
範囲 接続キャッシュ最大プロパティーに指定された値よりも少なくとも 5 小さい任意の整数。
ORB トレース

ORB General Inter-ORB Protocol (GIOP) メッセージのトレースを使用可能にします。

この設定は、2 つのシステム・プロパティー (com.ibm.CORBA.Debug と com.ibm.CORBA.CommTrace) に影響を与えます。 コマンド行スクリプトを使用してこれらのプロパティーを設定する場合は、 どちらも true に設定して、GIOP メッセージのトレースを使用可能にしなければなりません。

データ型 ブール値
デフォルト 使用不可 (false)
要求タイムアウトの指定 [AIX Solaris HP-UX Linux Windows] [iSeries]

LocateRequest メッセージでタイムアウトになるまで待機する秒数を指定します。このフィールドは、z/OS では無視されます。

コマンド行スクリプトを使用する場合、 このシステム・プロパティーのフルネームは com.ibm.CORBA.LocateRequestTimeout です。

データ型 int
単位
デフォルト 180
範囲 0 から 300
トンネルの強制 [AIX Solaris HP-UX Linux Windows] [iSeries]

クライアント ORB が HTTP トンネリングの使用を試行する方法を制御します。このフィールドは、z/OS では無視されます。

コマンド行スクリプトを使用する場合、 このシステム・プロパティーのフルネームは com.ibm.CORBA.ForceTunnel です。

データ型 ストリング
デフォルト 常になし
範囲 有効な値は「常に行う」、「常になし」、または「要求時」です。
有効な値を選択する際には、次の情報を参考にしてください。
常に行う
即時に HTTP トンネリングを使用します。 TCP 接続を最初に試行することはありません。
常になし
HTTP トンネリングを使用不可にします。TCP 接続が失敗した場合、 CORBA システム例外 (COMM_FAILURE) が発生します。
要求時
TCP 接続が失敗した場合に、HTTP トンネリングを使用します。
トンネル・エージェント URL [AIX Solaris HP-UX Linux Windows] [iSeries]

HTTP トンネリングのサポートで使用するサーブレットの Web アドレスを指定します。 このフィールドは、z/OS プラットフォームでは無視されます。

この Web アドレスは、次のような正しいフォーマットでなければなりません。

http://w3.mycorp.com:81/servlet/com.ibm.CORBA.services.IIOPTunnelServlet

アプレットの場合は、http://applethost:port/servlet/com.ibm.CORBA.services.IIOPTunnelServlet となります。

HTTP トンネリングが設定されている場合、このフィールドは必須です。 コマンド行スクリプトを使用する場合、 このシステム・プロパティーのフルネームは com.ibm.CORBA.TunnelAgentURL です。

参照による受け渡し

ORB がパラメーターを渡す方法を指定します。これが使用可能になっていると、 ORB は、値によるパラメーターの代わりに参照によるパラメーターを渡して、オブジェクト・コピーが行われないようにします。 参照による受け渡しオプションが有効になっていない場合は、 パラメーター・オブジェクトそのものではなく、パラメーターのコピーが渡されます。 この場合、ORB が最初に各パラメーター・オブジェクトのコピーを作成する必要があるため、 コストがかかる可能性があります。

このオプションは、Enterprise JavaBeans™ (EJB) クライアントと EJB が同一のクラス・ローダーにある場合にのみ使用することができます。 つまり、EJB クライアントと EJB が同一の EAR ファイル内にデプロイされる必要があります。

Enterprise JavaBeans (EJB) クライアントおよびサーバーが、同じ インスタンスまたは製品にインストールされていて、 かつ、クライアントとサーバーがリモート・インターフェースを使用している場合は、 参照による受け渡しオプションを使用可能にすることで、パフォーマンスを最高 50% 向上させることができます。 参照による受け渡しオプションによってパフォーマンスが改善されるのは、非プリミティブ・オブジェクト・タイプが パラメーターとして渡される場合だけです。 したがって、int および float は、呼び出しモデルに関係なく常にコピーされます。

トラブルの回避 (Avoid trouble): このプロパティーを使用可能にすると、予期しない振る舞いをする場合があるため、注意してください。 呼び出し先によってオブジェクト参照が変更されると、 呼び出し元のオブジェクトも同じオブジェクトであるため変更されます。gotcha

コマンド行スクリプトを使用する場合、このシステム・プロパティーのフルネームは com.ibm.CORBA.iiop.noLocalCopies です。

データ型 ブール値
デフォルト 使用不可 (false)

リモート・インターフェースでエンタープライズ Bean にこのオプションを使用すると、Enterprise JavaBeans (EJB) 仕様バージョン 2.0 に違反することになります (セクション 5.4 を参照)。Enterprise JavaBeans (EJB) メソッドまたは EJB ホーム・メソッドへ渡されるオブジェクト参照はコピーされず、破壊を受けやすくなる可能性があります。

次の例を検討してみましょう。
Iterator iterator = collection.iterator();
MyPrimaryKey pk = new MyPrimaryKey();
while (iterator.hasNext()) {
   pk.id = (String) iterator.next();
   MyEJB myEJB = myEJBHome.findByPrimaryKey(pk);
}

この例では、同じ MyPrimaryKey オブジェクトへの参照が、毎回異なる ID 値で製品に渡されます。 「参照による受け渡し」を使用可能にしてこのコードを実行すると 、アプリケーション・サーバー内に問題が生じます。これは、複数のエンタープライズ Bean が同じ MyPrimaryKey オブジェクトを参照するためです。 この問題を回避するには、「参照による受け渡し」オプションを使用可能にするときに、 com.ibm.websphere.ejbcontainer.allowPrimaryKeyMutation システム・プロパティーを true に設定します。 「参照による受け渡し」オプションを true に設定すると、EJB コンテナーが PrimaryKey オブジェクトのローカル・コピーを作成します。 ただし、その結果として、「参照による受け渡し」オプションを設定することによるパフォーマンス上の利点が少し失われます。

一般に、オブジェクト参照をパラメーターとしてエンタープライズ Bean メソッドまたは EJB ホーム・メソッドに渡すアプリケーション・コードは、念入りに調べて、 そのオブジェクト参照を渡すことにより、データの保全性が失われるなどの問題が生じないかどうかを確認する必要があります。

ご使用のコードを確認後、com.ibm.CORBA.iiop.noLocalCopies システム・プロパティーを true に設定して、 「参照による受け渡し」オプションを使用可能にすることができます。 また、管理コンソールでも「参照による受け渡し」オプションを使用可能にすることができます。 「サーバー」>「サーバー・タイプ」>「アプリケーション・サーバー」> server_name > 「コンテナー・サービス」>「ORB サービス」とクリックし、 「参照による受け渡し」を選択します。




マーク付きのリンク (オンライン) では、インターネットにアクセスする必要があります。

関連タスク
関連資料
[AIX Solaris HP-UX Linux Windows] [iSeries] スレッド・プール設定
[AIX Solaris HP-UX Linux Windows] [iSeries]
[AIX Solaris HP-UX Linux Windows] [iSeries]


ファイル名: uorb_rsetg.html