ORBインスタンスは、標準OMG org.omg.CORBA.ORB.init() APIを使用して作成されます。ORB orb = ORB.init(String[] args, Properties props);次の方法で、ORB初期化プロパティを渡すことができます。
- JDK orb.properties ファイルにORBプロパティを設定する
ORBが初期化されると、<java.home>/libディレクトリの下のorb.propertiesファイルのプロパティが読み込まれます。ここで、<java.home>は、System.getProperty("java.home")により返される文字列です。 orb.propertiesファイルは、マシン全体のORBデフォルトを配置するのに適した場所です。これは、JDK 1.1でもJDK 1.2でも機能します。
初期化時に、ORBプロパティは次の順番で解析されます。
- JavaシステムプロパティのORBプロパティを設定する
java -DORBDefaultInitRef=iiopboot://godel myServer
- コマンド行パラメータをORB initに渡す
java myServer -ORBDefaultInitRef iiopboot://godel
注記:これは、サーバメインメソッドへの引数がORB.init()に渡されることを前提とします。ORBプロパティを指定するには、2つの引数が必要です。
- ORB.initに明示的なプロパティオブジェクトを渡す
Properties props = new Properties();
props.put("ORBDefaultInitRef", "iiopboot://godel");
ORB _orb = orb.init(args, props);プロパティ(ORBInitRef以外)が複数回、指定されている場合、前の値が後の値に書き換えられます。
- orb.propertiesファイル
- システムプロパティ
- 渡されたプロパティ
- 渡された引数
ORBプロパティ
次の表では、ORBで認識されるプロパティを要約します。 OMG標準ORBプロパティ、Java IDL指定プロパティ、ORBコアプロパティ、およびプラットフォーム固有プロパティが含まれます。
表1 OMG指定ORBプロパティ ORBプロパティ 説明 デフォルト値 org.omg.CORBA.
ORBClassORBクラスの名前。この名前は、静的なORB.init(..)メソッドにより返される作成済みのORBオブジェクトのインスタンスに使用されます。 com.sssw.jbroker.ORB org.omg.CORBA.
ORBSingletonClassシングルトンORBクラスの名前。この名前は、静的なORB.init(void)メソッドにより返されるシングルトンORBを作成するために使用されます。 com.sssw.jbroker.orb.
SingletonORBjavax.rmi.CORBA.
StubClassjavax.rmi.CORBA.Stubのメソッドが委任されるクラス。 com.sssw.jbroker.rmi.
StubDelegatejavax.rmi.CORBA.
UtilClassjavax.rmi.CORBA.Utilのメソッドが委任されるクラス。 com.sssw.jbroker.rmi.
UtilDelegatejavax.rmi.CORBA.
PortableRemoteObjectClassjavax.rmi.PortableRemoteObject のメソッドが委任されるクラス。 com.sssw.jbroker.rmi.
PortableRemoteObjectDelegateORBInitRef 初期サービスの任意のオブジェクト参照を指定できます。次の形式で指定します。 -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.
ORBInitialHostIIOPブートストラッププロトコルを使用して、「NameService」のような初期サービス参照を取得する初期化エージェントのホスト名。 注記:このプロパティは、Java IDLとの互換性のみがサポートされています。 iiopboot形式のURLではなく、ORB指定ORBDefaultInitRefプロパティを必ず使用するようにしてください。
localhost org.omg.CORBA.
ORBInitialPortIIOPブートストラッププロトコルを使用して、「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.