![]() ![]() ![]() ![]() |
以下の節では、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 フル クライアントを作成する手順は次のとおりです。
コード リスト 3-1 に、簡単な WebLogic フル クライアントのサンプル コードを示します。
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 と他の 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
![]() ![]() ![]() |