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

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

WebLogic フル クライアントの開発

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

 


WebLogic フル クライアントの概要

WebLogic Server 10.0 以降のリリースでは、クライアント アプリケーションは weblogic.jar の代わりに wlfullclient.jar ファイルを使用する必要があります。WebLogic フル クライアントは、Oracle 独自の T3 プロトコルを使用して WebLogic Server と通信する Java RMI クライアントであり、分散コンピューティングの Java-to-Java モデルを使用します。RMI アプリケーションの開発については、「WebLogic RMI について」を参照してください。Java 以外の言語で記述されたクライアントと統合することはできません。

ヒント : WebLogic フル クライアントは、各種クライアントの中で最大サイズの JAR ファイルを必要としますが、最も多くの機能を使用でき、総合的なパフォーマンスに優れています。T3 プロトコルを提供する同じ JAR では、IIOP サポートも提供します。

WebLogic フル クライアントの特徴は以下のとおりです。

警告 : weblogic.jar で利用できた機能が wlfullclient.jar では利用できない場合があります。たとえば、wlfullclient.jar では Web サービスはサポートされません。Web サービスには wseeclient.jar が必要になります。また、wlfullclient.jar では、ejbc などの開発用に必要なオペレーションや、デプロイメントなどの管理オペレーションもサポートされません。これらのオペレーションには、依然として weblogic.jar の使用が必要です。

 


WebLogic フル クライアントの開発

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

  1. JarBuilder ツールを使用して、クライアント アプリケーションの wlfullclient.jar ファイルを生成します。「JDK 1.6 クライアント アプリケーション用の wlfullclient.jar を作成する」を参照してください。
  2. リモート オブジェクトへの参照を取得します。
    1. T3 URL を使用してサービスをホストするサーバの初期コンテキストを取得します。
    2. 初期コンテキストを使用してルックアップを実行することで、サービス オブジェクトのインスタンスを取得します。このインスタンスは、ローカル オブジェクト参照と同じように使用できます。
  3. リモート オブジェクト メソッドを呼び出します。

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

コード リスト 3-1 簡単な WebLogic フル 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

ページの先頭       前  次