ページの先頭行へ戻る
Interstage Application Server/Interstage Web Server Express 移行ガイド
FUJITSU Software

2.15 ORB_IIOP

EJBアプリケーション基盤のIIOP通信

J2EE機能では、IIOP通信は共通のサービスがリクエストを受信します。このため、サーバアプリケーションが複数動作している場合も、共通のポート番号(例:8002)がIIOP通信に使用されます。

一方、Java EE機能の場合は、クラスタのインスタンスごとにIIOP通信ポートを使用します。このため、複数のポート番号を使用します。Java EEでは、概念上のIIOP通信受信部を「IIOPリスナー」と呼んでいます。


J2EE機能の場合


Java EE機能の場合


CORBAアプリケーション実行基盤

Java EE機能では、CORBAクライアントアプリケーションの実行をサポートしています(CORBAサーバアプリケーションについてはサポートしていません)。

この機能を使用して、Java EE機能から、J2EE機能の既存のCORBAアプリケーションにアクセスすることが可能です。

CORBAでは、IDL定義から生成されるスタブ(クライアント用)、スケルトン(サーバ用)を使用し、通信処理を伴うメソッド呼出しを行います。

J2EE機能では、この生成にIDLcコマンドを使用しており、Java EEでも同様にIDLcコマンドを使用します。


J2EE機能の場合


Java EE機能の場合


■比較

J2EEの機能名/定義名

Java EEの機能名/定義名

ポート番号

IIOPリスナーポート

クライアントからの最大接続数

総接続数

クライアントからの最大リクエスト数

スレッドプール

クライアントタイムアウト時間

サーバメソッド復帰時間

IPバージョン

なし

サーバ側無通信監視時間

なし

クライアント側無通信監視時間

クライアント無通信監視時間

NamingServiceのリモート参照の獲得

NamingServiceのリモート参照の獲得

ORBベンダークラス名

ORBベンダークラス名

CORBAランタイム

CORBAランタイム

コード変換機能

コード変換機能


ポート番号

J2EE機能名/定義名

J2EE定義方法

Java EE機能名/定義名

Java EE定義方法

ポート番号

Interstage管理コンソール > Interstage Application Server > システム > 環境設定 > CORBAサービス詳細設定 > ポート番号

IIOPリスナーポート

[Interstage Java EE管理コンソール > 設定 > <クラスタ名>-config > ORB > IIOP リスナー > orb-listener-1 > リスナーポート]に表示される、IIOP_LISTENER_PORTシステムプロパティとして定義されています。

ただし、設定を行う際は、この項目は使用せず、asadminコマンドを使用します。


asadmin set <クラスタ名>-config.system-property.IIOP_LISTENER_PORT=<ポート番号>


asadmin set <サーバーインスタンス名>.system-property.IIOP_LISTENER_PORT=<ポート番号>


J2EE機能では、CORBAサービスが使用する共通のポート番号を指定します。

Java EE機能では、クラスタがIIOP接続に使用するポート番号を指定します。ただし、複数のインスタンスが存在する場合は、ポート番号はインスタンスごとに異なっている必要があります。


クライアントからの最大接続数

J2EE機能名/定義名

J2EE定義方法

Java EE機能名/定義名

Java EE定義方法

クライアントからの最大接続数

Interstage管理コンソール > Interstage Application Server > システム > 環境設定 > CORBAサービス詳細設定

総接続数

Interstage Java EE管理コンソール > 設定 > <クラスタ名>-config > ORB > 総接続数


クライアントからの最大接続数を指定します。


クライアントからの最大リクエスト数

J2EE機能名/定義名

J2EE定義方法

Java EE機能名/定義名

Java EE定義方法

クライアントからの最大リクエスト数

Interstage管理コンソール > Interstage Application Server > システム > 環境設定 > CORBAサービス詳細設定

スレッドプール

Interstage Java EE管理コンソール > 設定 > IJS01-config > スレッドプール > <スレッドプールID> > 最大スレッド数


J2EE機能では、CORBAサービスが受付可能なリクエストの最大数を指定します。

Java EE機能の最大スレッド数は、上記とは意味が異なりますが、処理可能なリクエスト数を決定するパラメタとなります。


クライアントタイムアウト時間

J2EE機能名/定義名

J2EE定義方法

Java EE機能名/定義名

Java EE定義方法

クライアントタイムアウト時間

Interstage管理コンソール > Interstage Application Server > システム > 環境設定 > CORBAサービス詳細設定

サーバメソッド復帰時間

Java VMオプションに設定します。

(アプリケーションクライアントコンテナの場合は、VMARGS環境変数に以下を設定します。)

-Dcom.sun.corba.ee.transport.ORBWaitForResponseTimeout=設定値


リクエスト送信から返信までの待機時間を指定します。


IPバージョン

J2EE機能名/定義名

J2EE定義方法

Java EE機能名/定義名

Java EE定義方法

IPバージョン

Interstage管理コンソール > Interstage Application Server > システム > 環境設定 > CORBAサービス詳細設定

なし

IPv6は未サポートです。


運用するIPバージョンを指定します。


サーバ側無通信監視時間

J2EE機能名/定義名

J2EE定義方法

Java EE機能名/定義名

Java EE定義方法

サーバ側無通信監視時間

Interstage管理コンソール > Interstage Application Server > システム > 環境設定 > CORBAサービス詳細設定

なし

未サポートです。


CORBAサービスが無通信状態を監視する時間を指定します。


クライアント側無通信監視時間

J2EE機能名/定義名

J2EE定義方法

Java EE機能名/定義名

Java EE定義方法

クライアント側無通信監視時間

Interstage管理コンソール > Interstage Application Server > システム > 環境設定 > CORBAサービス詳細設定

クライアント無通信監視時間

Java VMオプションに設定します(アプリケーションクライアントコンテナの場合は、VMARGS環境変数に以下を設定します)。

-Dcom.sun.corba.ee.transport.ORBClientIdleConnectTimeouts=設定値


CORBAクライアントが無通信状態であることを監視する時間を指定します。

J2EE機能のCORBAでは、無通信時間が指定時間に到達した時点でコネクションが切断され、次回リクエスト送信時に再接続されます。
一方、Java EE機能では、無通信時間が指定時間に到達した時点ではなく、次回リクエスト送信時に、切断および再接続されます。


NamingServiceのリモート参照の獲得

J2EE機能名/定義名

J2EE定義方法

Java EE機能名/定義名

Java EE定義方法

NamingServiceのリモート参照の獲得

アプリケーションにおいて、以下の方法で獲得します。

  1. ローカル環境から獲得

    ORB#resolve_initial_references(String id)に"NameService"を指定します。メソッドはネーミングサービスのリモート参照を返却します。

  2. ファイル指定の外部サーバから獲得

    inithost(Windows)/initial_hosts(Solaris/Linux)ファイルに、ホスト名,ポート番号が記載(複数可)されている場合、(1)のメソッドは記述されたサーバに順次問い合わせを行います。

  3. メソッドで指定したサーバから獲得

    ORB#resolve_initial_references_remote(String id, String[] m) のidに"NameService"を指定します。

    mには、"iiop://<address>[:<port>]" の形式でホスト名を指定します(複数可)。メソッドはネーミングサービスのリモート参照を返却します。

  4. ORBInitRefオプションにINS形式で指定

    アプリケーションのオプションとして-ORBInitRefに以下の例のようにINS形式の文字列を指定します。

    (例) -ORBInitRef NameService=corbaloc::<ホスト名>:<ポート番号>/NameService
    アプリケーションでは、受け取った"-ORBInitRef","NameService=..."の文字列をORB#init(String[] argv, java.util.Properties props)のargvに設定します。この結果(1)のメソッドは、ネーミングサービスのリモート参照を返却します。

  5. INS形式の文字列から、リモート参照を生成

    ORB#string_to_object(String s)のsに以下の例のようにINS形式の文字列を指定します。
    (例) "corbaloc::<ホスト名>:<ポート番号>/NameService"
    メソッドはネーミングサービスのリモート参照を返却します。

NamingServiceのリモート参照の獲得

NamingServiceのリモート参照はINSの形式で獲得します。

  1. ORBInitRefオプションにINS形式で指定

    アプリケーションのオプションとして-ORBInitRefに以下の例のようにINS形式の文字列を指定します。

    (例) -ORBInitRef NameService=corbaloc:iiop:1.0@<ホスト名>:<ポート番号>/NameService

    アプリケーションでは、受け取った"-ORBInitRef","NameService=..."の文字列をORB#init(String[] argv, java.util.Properties props)のargvに設定します。

    ORB#resolve_initial_references(String id)に"NameService"を指定します。この結果、INS形式で指定したネーミングサービスのリモート参照が返却されます。

  2. INS形式の文字列から、リモート参照を生成

    ORB#string_to_object(String s)のsに以下の例のようにINS形式の文字列を指定します。

    (例) "corbaloc:iiop:1.0@<ホスト名>:<ポート番号>/NameService"

    このメソッドはネーミングサービスのリモート参照を返却します。


アプリケーションでNamingServiceを使用する際は、NamingServiceのリモート参照を獲得する必要があります。

Java EE機能でCORBAクライアントアプリケーションを動作させる場合は、J2EE機能のNamingServiceにアクセスします。このときのNamingServiceのリモート参照は、INS形式で指定します。


ORBベンダークラス名

J2EE機能名/定義名

J2EE定義方法

Java EE機能名/定義名

Java EE定義方法

ORBベンダークラス名

[プロパティ名]
org.omg.CORBA.ORBClass

[値]
com.fujitsu.ObjectDirector.CORBA.ORB


[プロパティ名]
org.omg.CORBA.ORBSingletonClass

[値]
com.fujitsu.ObjectDirector.CORBA.SingletonORB

ORBベンダークラス名

[プロパティ名]
org.omg.CORBA.ORBClass
[値]
com.sun.corba.ee.impl.orb.ORBImpl


[プロパティ名]
org.omg.CORBA.ORBSingletonClass

[値]
com.sun.corba.ee.impl.orb.ORBSingleton


org.omg.CORBA.ORBクラスとして動作するベンダークラスは、VMオプション、ORB#init()の引数、orb.propertiesファイルのいずれかで指定します。

スタンドアロンクライアントなど、指定が必要な場合は、J2EE/Java EEそれぞれのベンダークラス名を指定します。


CORBAランタイム

J2EE機能名/定義名

J2EE定義方法

Java EE機能名/定義名

Java EE定義方法

CORBAランタイム

プレインストール型Javaライブラリの場合


<Interstageインストールフォルダ>\ODWIN\ETC\CLASS\ODjava4.jar



/opt/FSUNod/etc/class/ODjava4.jar



/opt/FJSVod/etc/class/ODjava4.jar

CORBAランタイム


<Interstageインストールフォルダ>\F3FMisjee\lib\appserv-rt-client.jar



/opt/FJSVisjee/lib/appserv-rt-client.jar


JavaCORBAアプリケーションは、実行時、ORBベンダー提供クラスを参照します。
スタンドアロンクライアントなど必要な場合は、CLASSPATH環境変数にベンダークラスを含むjarファイルを指定します。

Java EE機能を使用する場合、サーブレットやEJBアプリケーション内で、リクエストごとに引数付きのORB.init()メソッドを発行すると、リソースを大量に消費します。
このため、J2EEからJava EEに移行する際は、リソースが不足しないように、リクエストごとではなくアプリケーション内で1回だけ引数付きのORB.init()メソッドを発行するように変更してください。


コード変換機能

J2EE機能名/定義名

J2EE定義方法

Java EE機能名/定義名

Java EE定義方法

コード変換機能

自動的にコード系をUNICODEと判断します。

コード変換機能

自動的にコード系をUNICODEと判断します。


J2EE機能のCORBAでは、コード変換機能として、当社の標準コード変換機能であるiconvを使用します。
一方、Java EE機能のCORBAでは、Java VMのコード変換クラスを使用します。

この違いにより、Java EE機能のCORBAでは、EUC(U90)へのコード変換が利用できません。また、CORBAサーバアプリケーションのコード系(locale)が、EUCまたはSJISの場合に、コード変換結果に以下の非互換があります。