ORBの初期化

ORBインスタンスは、標準OMG org.omg.CORBA.ORB.init() APIを使用して作成されます。
ORB orb = ORB.init(String[] args, Properties props);
次の方法で、ORB初期化プロパティを渡すことができます。 初期化時に、ORBプロパティは次の順番で解析されます。
  1. orb.propertiesファイル
  2. システムプロパティ
  3. 渡されたプロパティ
  4. 渡された引数
プロパティ(ORBInitRef以外)が複数回、指定されている場合、前の値が後の値に書き換えられます。

ORBプロパティ

次の表では、ORBで認識されるプロパティを要約します。 OMG標準ORBプロパティ、Java IDL指定プロパティ、ORBコアプロパティ、およびプラットフォーム固有プロパティが含まれます。
 
表1 OMG指定ORBプロパティ
ORBプロパティ
説明
デフォルト値
org.omg.CORBA.
ORBClass
ORBクラスの名前。この名前は、静的なORB.init(..)メソッドにより返される作成済みのORBオブジェクトのインスタンスに使用されます。
com.sssw.jbroker.ORB
org.omg.CORBA.
ORBSingletonClass
シングルトンORBクラスの名前。この名前は、静的なORB.init(void)メソッドにより返されるシングルトンORBを作成するために使用されます。
com.sssw.jbroker.orb.
SingletonORB
javax.rmi.CORBA.
StubClass
javax.rmi.CORBA.Stubのメソッドが委任されるクラス。
com.sssw.jbroker.rmi.
StubDelegate
javax.rmi.CORBA.
UtilClass
javax.rmi.CORBA.Utilのメソッドが委任されるクラス。
com.sssw.jbroker.rmi.
UtilDelegate
javax.rmi.CORBA.
PortableRemoteObjectClass
javax.rmi.PortableRemoteObject のメソッドが委任されるクラス。
com.sssw.jbroker.rmi.
PortableRemoteObjectDelegate
ORBInitRef
初期サービスの任意のオブジェクト参照を指定できます。次の形式で指定します。

-ORBInitRef <ObjectId>=<ObjectURL>

ORBはiioploc、iiopname、iiopboot、file、http、およびftpを含むいくつかのURL形式 をサポートしています。複数の初期参照は、コマンド行でORBInitRefを複数回指定することにより指定できます。

<なし>
ORBDefaultInitRef
このORBプロパティは、ORBInitRefで明示的に指定されない初期参照の解読を支援します。スラッシュ「/」文字および文字列化されたオブジェクトキーを追加した後で、
初期オブジェクト参照を識別する新しい形式のURLが必要になります。
iiopboot://localhost:2506

 
表2:Java IDL特定プロパティ
ORBプロパティ
説明
デフォルト値
org.omg.CORBA.
ORBInitialHost
IIOPブートストラッププロトコルを使用して、「NameService」のような初期サービス参照を取得する初期化エージェントのホスト名。

注記:このプロパティは、Java IDLとの互換性のみがサポートされています。 iiopboot形式のURLではなく、ORB指定ORBDefaultInitRefプロパティを必ず使用するようにしてください。

localhost
org.omg.CORBA.
ORBInitialPort
IIOPブートストラッププロトコルを使用して、「NameService」のような初期サービス参照を取得する初期化エージェントのポート。

注記:このプロパティは、Java IDLとの互換性のみがサポートされています。 iiopboot形式のURLではなく、ORB指定ORBDefaultInitRefプロパティを必ず使用するようにしてください。

2506

注記: ORBの初期化エージェントがデフォルトポート2506のORBデーモンの中で実行されるため、Java IDLにより使用されるデフォルト値900とは異なります。

 
表3 コアORBプロパティ
ORBプロパティ
説明
デフォルト値
ORBInitialHost
Java IDLプロパティorg.omg.CORBA.ORBInitialHostと同じ
localhost
ORBInitialPort
Java IDLプロパティorg.omg.CORBA.ORBInitialPortと同じ
2506
ORBHost
接続をリッスンするホストの名前を指定します。 少なくとも次の2つの状況で有効です。 
  • マルチホームホストで、サーバに特定のネットワークインタフェースからの要求のみをリッスンさせる場合。

  •  
  • Java APIを使用してマシンのドメイン名を判別することは不可能な場合もあります。ローカルドメインの外部でオブジェクト参照を提出する場合、このプロパティを使用して、完全なホスト名を指定することをお勧めします。
デフォルトは、すべてのネットワークインタフェースを監視し、Java APIにより返されるホスト名を使用するように設定されています。
ORBPort
接続を監視するポート システムが選択した一時的ポート。
ORBServerAlias
登録済みサーバのエイリアス。手動で開始される持続的サーバにサーバのこのプロパティを指定することだけが必要です。 デフォルトはありません。このプロパティを指定せずにサーバを手動で開始した場合、そのサーバの持続的オブジェクトサポートが無効になります。
ORBDebug
これはブール値プロパティです。 trueの場合、サーバ側で、任意のCORBAシステム例外またはサーバ側のその他の予測しないJava例外が、クライアントにマーシャルバックされ、特定のデバッグ情報を失ってしまう前に、System.errにプリントアウトされます。 

クライアント側では、RMI-IIOPを使用する場合、CORBA例外はRMI例外に変換される前にプリントアウトされます。

false
ORBDump
これはブール値プロパティです。 trueの場合、クライアント側およびサーバ側は、プロセスから送られる要求およびプロセスに返される応答についての詳細なIIOP情報を出力します。
false
ORBUseGateway
これはブール値プロパティです。このプロパティは、クライアントプログラムでのみ使用されます。ORBに対してIIOP接続コンセントレータを探し、それをその他との通信に使用するように指示します。
false
ORBGatewayURL
このiiop URLはゲートウェアが実行されるホストおよびポートを指定します。 たとえば、iiop://godel:7777はORBに対してホストgodelおよびポート7777で実行されるゲートウェイを他との通信に使用するように指示します。 

複数のアドレスをURLで指定できます。ORBは接続できる最初のゲートウェイを使用します。たとえば、iiop://godel:7777,turing:7777です。

<なし>
ORBThreadPoolMax
スレッドプールのスレッドの最大数。この値が0未満である場合、制限は課せられません。
-1 (無限)
ORBThreadPoolTimeout
アイドルスレッドがスレッドプールにある秒数がタイムアウトした後、システムリソースに関連するスレッドが解放されて、向こうになります。
300
ORBNamesDBDirectory
ユーザがインプロセス持続NameServiceを作成したディレクトリがその状態を維持します。 ORBインストールディレクトリの下のdb/names
ORBSetContextClassLoader
(JDK 1.2のみ)
プロパティがtrueの場合、サーバントに要求を送信する前に、ORBは自動的にサーバントのClassLoaderにスレッドコンテキストクラスローダーを設定します。その要求の後で、コンテキストクラスローダは元の値にリセットされます。
true
ORBEnableNoProtection
SSLが保護したオブジェクトがSSLを使用しない通信もサポートしている場合、このプロパティを設定するとSSLのバイパスが有効になります。
false
ORBHttpTunnelURL
HTTPトンネルサーブレットのURL。 例、http://chandra/orb/tunnel。
<なし>
ORBSendBufferSize
クライアントおよびソケットに設定される送信バッファサイズ。 値は、Socket.setSendBufferSize()メソッドに渡されます。
JDKマニュアルを参照してください。
ORBReceiveBufferSize
クライアントおよびソケットに設定される受信バッファサイズ。 値は、Socket.setReceiveBufferSize()メソッドに渡されます。
JDKマニュアルを参照してください。
ORBTcpNoDelay
クライアントおよびサーバソケットに設定されるTCP「定刻どおり発着」。 trueに設定した場合は、Socket.setTcpNoDelay()メソッドをtrueで呼び出すことができます。
false
ORBSocketMax
クライアントおよびサーバのプロセス間で使用できるソケットの最大数。 クライアントプロセスが同じサーバ内でオブジェクトに対して同時に多数のスレッドを実行している場合は、この値を増やすと、パフォーマンスが向上します。
1
ORBRequestWriter
クライアントの要求を作成するのに異なるスレッドを使用するかどうかを指定します。 デフォルト設定では、呼び出しを行うクライアントスレッドがソケットに要求を作成します。 このプロパティをtrueに設定すると、スレッドの数が多くなってクライアントアプリケーションのコンテキストスイッチが減少する場合があります。
false

 
表4 DoorsトランスポートORBプロパティ
ORBプロパティ
説明
デフォルト値
ORBUseDoors
これはブール値プロパティです。trueに設定されると、Solaris Doorsを使用してGIOPメッセージのマシン間の最適化が有効になります。
false
ORBDoorsThreadPoolMax
Solaris Doors APIにより維持されるスレッドプールのスレッドの最大数。
25

Copyright © 1998-2003, Novell, Inc.All rights reserved.