JRun ポートについて

JRun サーバで使用される既定のポートは 4 つあり、JRun を管理する際に認識する必要があります。新しい JRun サーバを追加するときは、これらのポートの認識が特に重要です。"JRun サーバの追加と削除"を参照してください。

各ポートは JRun サーバごとに固有でなければなりません。これらのポートは次のとおりです。

次の図は、関連する既定のポート間の対話を示します。この図は既定の JRun セットアップを想定しています。

コネクタ ウィザードを実行して JRun を外部 Web サーバに接続する場合、認識する必要があるもう 1 つのポートは、JRun コネクタ プロキシ (JCP) ポートです。JCP は、Web サーバから渡される JRun への要求を処理するモジュールです。このモジュールは JRun 接続モジュール (JCM) とも呼ばれます。JCP ポートによって、JRun 接続モジュール (JCM) と Web サーバ コネクタとの接続が容易になります。接続された JRun サーバごとに 1 つの JCP ポートを使用します。

default JRun サーバおよび admin JRun サーバのほかに JRun サーバを追加する場合は、その制御ポートおよび JWS ポートを認識する必要があります。コネクタ ウィザードを実行して新しい JRun サーバを接続した場合、その JCP ポートも認識する必要があります。

次の図は、これらのポート間の対話を示します。

次の表は、前に説明した各ポートと、EJB サーバに使用されるその他のポートを示します。また、JRun サーバを追加する際に各ポートに使用する推奨範囲も示します。
ポート名
(local.properties 内)
説明
既定値
(JRun サーバごと)
推奨範囲
 
web.endpoint.main.port
JWS で使用されるポート。既定で、各 JRun サーバに関連付けられた JWS があります。これはその JWS の HTTP ポートです。
admin: 8000
default: 8100
8101 - 8199
jcp.endpoint.main.port
JRun 接続モジュール (JCM) とも呼ばれる JRun コネクタ プロキシ (JCP) に使用されるポート。このポートによって、JRun は外部 Web サーバの JRun コネクタと通信することができます。
コネクタ ウィザードを使用して JRun サーバを外部 Web サーバに接続しない場合、既定値は空白になります。
既定値は 51000 です。
51001 - 51999
control.endpoint.
main.port
JRun サーバがほかの JRun サーバに制御メッセージを送信するために使用するポート
admin: 52000
default: 53000
53001 - 53999
ejipt.classServer.port
EJB エンジンがクライアントにクラスを配布するために使用するポート
admin: 2423
default: 2323
2300 - 2399
ejipt.homePort
EJB ホーム オブジェクト用の
ポート
admin: 2433
default: 2333
2400 - 2499

空きポートの検出

JRun インストール中に空きポートが検出されます。ただし、コンピュータに JRun サーバを新たに追加する場合は、プログラミングによって空きポートをスキャンできます。このセクションでは、単純な Java ユーティリティを使用してこの作業を実行する方法を説明します。

JRun には、一定範囲のポートをスキャンして使用可能なポートを返す GetControlPort ユーティリティが用意されています。GetControlPort は allaire.jrun.install パッケージに含まれています。GetControlPort を呼び出すには、クラスパスに JRun のルート ディレクトリ/lib/install.jar を含める必要があります。

GetControlPort は、コマンド ラインまたは Java アプリケーションから呼び出すことができます。

コマンド ラインからの GetControlPort の使用

次に、コマンド ラインから GetControlPort を呼び出す場合の使用方法を示します。

% java [-classpath classpath] allaire.jrun.install.GetControlPort min 
max [output_file]

たとえば、51000 〜 51999 の範囲で最初の空きポートを探すには、次のようにします。

% java allaire.jrun.install.GetControlPort 51000 51999

Java アプリケーションからの GetControlPort の使用

GetControlPort は 1 つのパブリック メソッドである scan() を持ちます。このメソッドは、範囲の上限と下限の 2 つの引数を取ります。これらの引数のデータ タイプは String です。String の配列で渡すこともできます (以下を参照)。GetControlPort は、該当範囲内の最初の空きポートを返します。エラーになった場合、GetControlPort から -1 が返されます。

例 :

String[] portrange = new String[2];
String openport = new String;
portrange[0] = "51000";
portrange[1] = "51999";
GetControlPort gcp = new GetControlPort();
openport = gcp.scan(portrange);
out.println("The first open port between " + portrange[0] + " and " +
  portrange[1] + " is " + openport);