スタンドアロン クライアント プログラマーズ ガイド

     前  次    新しいウィンドウで目次を開く     
ここから内容の開始

T3 クライアントの開発

T3 クライアントは、BEA 独自の T3 プロトコルを使用して WebLogic サーバ インスタンスと通信する RMI クライアントです。

以下の節では、T3 クライアントの開発について説明します。

 


T3 クライアントの基礎

以下に、T3 クライアントの特徴を挙げます。

 


T3 クライアントの開発

基本的な T3 クライアントを作成する手順は次のとおりです。

  1. リモート オブジェクトへの参照を取得します。
    1. T3 URL を使用してサービスをホストするサーバの初期コンテキストを取得します。
    2. 初期コンテキストを使用してルックアップを実行することで、サービス オブジェクトのインスタンスを取得します。このインスタンスは、ローカル オブジェクト参照と同じように使用できます。
  2. リモート オブジェクト メソッドを呼び出します。

コード リスト 3-1 に、簡単な T3 クライアントのサンプル コードを示します。

コード リスト 3-1 簡単な T3 hello クライアント
package examples.rmi.hello;

import java.io.PrintStream;
import weblogic.utils.Debug;
import javax.naming.*;
import java.util.Hashtable;

/**
* このクライアントでは、リモート HelloServer メソッドを使用する。
*
* @author Copyright (c) 1999-2004 by BEA Systems, Inc. All Rights Reserved.
*/
public class HelloClient {

private final static boolean debug = true;

/**
* JNDI コンテキスト ファクトリを定義する。
*/
public final static String JNDI_FACTORY="weblogic.jndi.WLInitialContextFactory";

int port;
String host;

   private static void usage() {
   System.err.println("Usage: java examples.rmi.hello.HelloClient " +
      "<hostname> <port number>");
   System.exit(-1);
   }

   public HelloClient() {}

   public static void main(String[] argv) throws Exception {
      if (argv.length < 2) {
      usage();
     }
   String host = argv[0];
   int port = 0;
   try {
      port = Integer.parseInt(argv[1]);
      }
   catch (NumberFormatException nfe) {
      usage();
      }
   try {

      InitialContext ic = getInitialContext("t3://" + host + ":" + port);

      Hello obj =
         (Hello) ic.lookup("HelloServer");
      System.out.println("Successfully connected to HelloServer on " +
         host + " at port " +
         port + ": " + obj.sayHello() );
      }
   catch (Throwable t) {
      t.printStackTrace();
      System.exit(-1);
      }

  }

   private static InitialContext getInitialContext(String url)
      throws NamingException
   {
   Hashtable env = new Hashtable();
   env.put(Context.INITIAL_CONTEXT_FACTORY, JNDI_FACTORY);
   env.put(Context.PROVIDER_URL, url);
   return new InitialContext(env);
   }
}

 


WebLogic Server における RMI 通信

WebLogic Server の RMI 通信では、WebLogic Server と他の Java プログラム (クライアントおよび他の WebLogic Server インスタンスを含む) との間のデータを、T3 プロトコルを使用して転送します。サーバ インスタンスは、接続された個々の Java 仮想マシン (JVM) を追跡して、JVM に対するすべてのトラフィックを実行できる単一の T3 接続を作成します。Administration Console オンライン ヘルプの「T3 プロトコルのコンフィグレーション」を参照してください。

たとえば、Java クライアントが WebLogic Server 上のエンタープライズ Bean および JDBC 接続プールにアクセスすると、1 つのネットワーク接続が WebLogic Server の JVM とクライアントの JVM との間に確立されます。T3 プロトコルは 1 つの接続上のパケットを見えない形で多重化するため、EJB および JDBC のサービスでは、専用のネットワーク接続を単独で使用しているかのように記述することができます。

 


接続の可用性の判断

有効な T3 接続を備える任意の 2 つの Java プログラム (2 つのサーバ インスタンス、またはサーバ インスタンスと Java クライアントなど) では、定期的なポイントツーポイントの「ハートビート」を使って、継続的な可用性の通知と判断を行います。各エンド ポイントは、定期的にピアへのハートビートを発行し、また同様に、ピアから継続的にハートビートが受信されていることに基づき、ピアがまだ使用可能であることを判断します。

 


管理モードでのサーバとの通信

管理モードでサーバ インスタンスと通信するには、クライアントで以下のフラグを設定して通信チャネルをコンフィグレーションする必要があります。

   -Dweblogic.AdministrationProtocol=t3

  ページの先頭       前  次