このページを使用して、Java オブジェクト・リクエスト・ブローカー (ORB) サービスを構成します。
この管理コンソール・ページを表示するには、 「サーバー」>「アプリケーション・サーバー」>「server_name」> 「コンテナー・サービス」>「ORB サービス」とクリックします。
内部オブジェクト・リクエスト・ブローカー (ORB) 処理を制御するために、いくつかの設定値が使用可能です。 エンタープライズ Bean を含むアプリケーションの場合、 これらの設定値を使用してアプリケーション・パフォーマンスを向上させます。 デフォルト・サーバーまたは管理可能ドメイン内に構成されている任意のアプリケーション・サーバーについて、 これらの設定値を変更することができます。
要求メッセージについてタイムアウトとなるまでに待機する秒数を指定します。
コマンド行スクリプトを使用する場合、 このシステム・プロパティーのフルネームは com.ibm.CORBA.RequestTimeout です。
データ型 | int |
単位 | 秒 |
デフォルト | 180 |
範囲 | 0 - Java で認識される最大の整数 |
ORB General Inter-ORB Protocol (GIOP) メッセージのトレースを使用可能にします。
この設定は、2 つのシステム・プロパティー (com.ibm.CORBA.Debug と com.ibm.CORBA.CommTrace) に影響を与えます。 コマンド行スクリプトを使用してこれらのプロパティーを設定する場合は、 どちらも true に設定して、GIOP メッセージのトレースを使用可能にしなければなりません。
データ型 | ブール |
デフォルト | 使用不可 (false) |
ORB がパラメーターを渡す方法を指定します。これが使用可能になっていると、 ORB は、値によるパラメーターの代わりに参照によるパラメーターを渡して、オブジェクト・コピーが行われないようにします。 参照による受け渡しオプションが有効になっていない場合は、 パラメーター・オブジェクトそのものではなく、パラメーターのコピーが渡されます。 この場合、ORB が最初に各パラメーター・オブジェクトのコピーを作成する必要があるため、 コストがかかる可能性があります。
このオプションは、Enterprise JavaBeans (EJB) クライアントと EJB が同一のクラス・ローダーにある場合にのみ使用することができます。 つまり、EJB クライアントと EJB が同一の EAR ファイル内にデプロイされる必要があります。
Enterprise JavaBeans (EJB) クライアントとサーバーが同じ WebSphere Application Server インスタンスにインストールされていて、 かつ、クライアントとサーバーがリモート・インターフェースを使用している場合は、 参照による受け渡しオプションを使用可能にすることで、パフォーマンスを最高 50% 向上させることができます。 参照による受け渡しオプションによってパフォーマンスが改善されるのは、非プリミティブ・オブジェクト・タイプが パラメーターとして渡される場合だけです。 したがって、int および float は、呼び出しモデルに関係なく常にコピーされます。
コマンド行スクリプトを使用する場合、このシステム・プロパティーのフルネームは 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 値で WebSphere Application Server に渡されます。 「参照による受け渡し」を使用可能にしてこのコードを実行すると 、アプリケーション・サーバー内に問題が生じます。これは、複数のエンタープライズ Bean が同じ MyPrimaryKey オブジェクトを参照するためです。 この問題を回避するには、「参照による受け渡し」オプションを使用可能にするときに、 com.ibm.websphere.ejbcontainer.allowPrimaryKeyMutation システム・プロパティーを true に設定します。 「参照による受け渡し」オプションを true に設定すると、EJB コンテナーが PrimaryKey オブジェクトのローカル・コピーを作成します。 ただし、その結果、「参照による受け渡し」オプションを設定することによるパフォーマンス上の利点が少し失われます。
一般に、オブジェクト参照をパラメーターとしてエンタープライズ Bean メソッドまたは EJB ホーム・メソッドに渡すアプリケーション・コードは、念入りに調べて、 そのオブジェクト参照を渡すことにより、データの保全性が失われるなどの問題が生じないかどうかを確認する必要があります。
ご使用のコードを確認後、com.ibm.CORBA.iiop.noLocalCopies システム・プロパティーを true に設定して、 「参照による受け渡し」オプションを使用可能にすることができます。 また、管理コンソールでも「参照による受け渡し」オプションを使用可能にすることができます。 「サーバー」>「アプリケーション・サーバー」>「server_name」>「コンテナー・サービス 」>「ORB サービス」とクリックし、「参照による受け渡し」を選択します。