サーバー: プロトコル: jCOM
このページでは、このサーバーのJava to COM (jCOM)プロトコル設定を定義します。jCOMを使用すると、Javaで記述されたアプリケーションでCOM (コンポーネント・オブジェクト・モデル)オブジェクトを使用できるようになります。
また、このタブでは、次の機能を有効化または無効化できます。
- NT認証ホスト・アドレス
- ネイティブ・モードで実行するか、非ネイティブ・モードで実行するか
- サーバーでメモリー使用量をロギングするかどうか
- 列挙値のプリフェッチが有効かどうか
- jCOMがネイティブ・モードで初期化されるかどうか
ノート: ナビゲーション・ツリーのセキュリティおよびサービス→「JCOM」ノードを使用可能にするには、現在のユーザーが
Admin
セキュリティ・ロールに含まれている必要があります。構成オプション
名前 説明 COMの有効化 通常(非SSL)ポートでCOMサポートを有効化するかどうかを指定します。COMはSSLポートではサポートされていません。(このページのその他のフィールドは、このチェック・ボックスをオンにした場合のみ関連します。)
MBean属性:
ServerMBean.COMEnabled
NT認証ホスト このサーバーがクライアントの認証に使用するプライマリ・ドメイン・コントローラのアドレス。(指定されていない場合、COMクライアントは認証されません。)
MBean属性:
COMMBean.NTAuthHost
ネイティブ・モードの有効化 JavaオブジェクトとCOMオブジェクトとの相互作用を可能にするために、サーバーでネイティブDLLを使用するかどうかを指定します。(Windowsのみでサポートされます。)
MBean属性:
COMMBean.NativeModeEnabled
冗長ロギングの有効化 冗長なロギングを有効にするかどうかを指定します。
MBean属性:
COMMBean.VerboseLoggingEnabled
メモリー・ロギングの有効化 このサーバーでメモリー使用量をログに記録するかどうかを指定します。
MBean属性:
COMMBean.MemoryLoggingEnabled
列挙値のプリフェッチ サーバーが
java.lang.Enumeration
内の次の要素をプリフェッチするかどうかを指定します。java.lang.EnumerationはCOMVariantEnumeration
型から不完全な形で変換されたものです。正しい値はhasMoreElements()
メソッドが呼び出されたときに戻されます。一部のCOMメソッドは、COM VariantEnumeration型を返します。java2comツールは、返された型をjava.lang.Enumerationに自動的に変換します。しかし、これは完全な一致にはなりません。COM Enumerationには
hasMoreElements()
呼出しに相当するものがないためです。クライアントは、NoSuchElementException
が発生するまでnextElement
を呼出し続ける必要があります。このプロパティを設定すると、jCOMはバックグラウンドで次の要素をプリフェッチして、hasMoreElementsが呼び出されたときに正しい値を返します。MBean属性:
COMMBean.PrefetchEnums
アパートメント・スレッド ネイティブ・モードでCOMを初期化するために使用されるフラグを制御します。
デフォルトでは、jCOMによりネイティブ・モードでCOMが初期化される場合、COMは
COINIT_MULTITHREADED
を使用して起動されます。そのため、COMではマルチスレッド・アパートメント(Multi-Threaded Apartment : MTA)スレッド・モデルを使用することになります。MTAモデルでは、オブジェクトの呼出しがCOMによって同期化されません。このモデルをサポートするオブジェクトを別のスレッドで複数のクライアントから同時に呼び出すことが可能で、オブジェクトはそのインタフェースとメソッドの実装においてイベント、ミューテックス、セマフォなどの同期オブジェクトを使用して同期を提供する必要があります。MTAオブジェクトは、オブジェクトのプロセスに属するCOMで作成されたスレッドのプールを介して、複数のプロセス外のクライアントから同時に呼び出されることが可能です。COMがネイティブ・モードで起動しているときにサーバーが「Class Not Registered Message」というログを記録する場合、このプロパティを設定します。それによってjCOMがCOMをネイティブ・モードで起動する際に
COINIT_MULTITHREADED
オプションではなくCOINIT_APARTMENTTHREADED
オプションを使用するようになります。コンポーネント内ではこれはアパートメント・スレッドとしてマークされ、コンポーネントの各メソッドは、コンポーネントが関連付けられている1つのスレッドで実行されるようになります。これによって1つの「アパートメント」に対応するコンポーネントの各インスタンスとともに、メソッドも各自のアパートメントに区分けされます。コンポーネント内に存在するスレッドは1つのみですが、そのコンポーネントの各インスタンスには独自のスレッド・アパートメントがあることになります。MBean属性:
COMMBean.ApartmentThreaded