ヘッダーをスキップ
Oracle® Fusion Middleware Oracle WebLogic Serverスタンドアロン・クライアントのプログラミング
11g リリース1 (10.3.6)
B61622-04
  ドキュメント・ライブラリへ移動
ライブラリ
製品リストへ移動
製品
目次へ移動
目次

前
 
次
 

3 WebLogicシンT3クライアントの開発

この章では、WebLogicシンt3クライアントを開発および使用する方法について説明します。

WebLogicシンT3クライアントの概要

WebLogicシンT3クライアントのjar (wlthint3client.jar)は、wlfullclient.jarおよびwlclient.jar (IIOP)リモート・クライアントのjarの軽量かつ高パフォーマンス版です。シンT3クライアントは、サイズを最小限に抑えながら、クライアントでの使用に適した豊富なAPI群へのアクセスを実現します。その名前が示すように、WebLogic T3プロトコルを使用し、IIOPプロトコルを使用するwlclient.jarに勝る大幅なパフォーマンス向上をもたらします。

シンT3クライアントは、リモート・クライアントのほとんどのユース・ケースで推奨される方式です。シンT3クライアントには、次に示すような制限があります。これらの数少ないユース・ケースでは、フル・クライアントまたはIIOPシン・クライアントを使用する必要があります。

シンT3クライアントは、スタンドアロン・アプリケーションで使用でき、WebLogic以外の外部サーバーで実行するアプリケーションで使用できるように設計されています。一般的なユース・ケースの1つは、WebLogic JMS宛先との統合です。

機能

このリリースでは、次の機能をサポートしています。

  • RMI over HTTP(HTTPトンネリング)をはじめとする、Oracle WebLogicのRemote Method Invocation(RMI)用T3およびT3Sプロトコル。WebLogic T3通信の詳細は、『Oracle WebLogic Server RMIのプログラミング』のWebLogic RMIでのT3プロトコルの使用方法に関する項を参照してください。

  • WebLogic Serverで使用可能なJMS、JMX、JNDI、およびEJBの各リソースへのアクセス。

  • JTAを使用したトランザクションの開始と終了(ロールバックまたはコミット)。

  • WebLogicクライアントJMS機能。順序単位、作業ユニット、メッセージ圧縮、XMLメッセージ、JMS自動クライアント再接続、Destination Availability Helper APIなどがあります。

  • クライアント側のクラスタリングを使用すると、クライアント・アプリケーションはフェイルオーバーやWebLogic Serverインスタンスのロード・バランシングに関与できます。『Oracle WebLogic Server RMIのプログラミング』のクラスタリングRMIアプリケーションに関する項を参照してください。

  • JAAS認証とJSSE SSL。「セキュリティ」を参照してください。

制限

このリリースでは、次の機能はサポートしていません。

  • RMI over HTTPS (SSLを使用したHTTPトンネリング)。

  • JMS SAFクライアント、Mbeanベースのユーティリティ(JMSヘルパー、JMSモジュール・ヘルパーなど)、およびJMSマルチキャストはサポートされていません。MbeanベースのヘルパーのかわりにJMX呼出しを使用できます。

  • WebLogic JDBC拡張をはじめとするJDBCリソース。

  • クライアントでのWebLogic RMIサーバーの実行。

  • ネットワーク・クラスのロード。

相互運用性

このリリースのWebLogicシンT3クライアントは、相互運用性を次のようにサポートしています。

WebLogic Serverの旧リリース

WebLogicシンT3クライアントにおける旧WebLogicリリースとの通信のサポートについては、Oracle WebLogic Serverインフォメーション・ロードマップのプロトコルの互換性に関する項を参照してください。

外部アプリケーション・サーバー

WebLogicシンT3クライアントのjarは、次のアプリケーション・サーバーでサポートされています。

  • Oracle OC4J: バージョン10g以降

  • IBM WebSphere Application Server: バージョン6.xおよび7.x

  • Red Hat JBoss Application Server: バージョン5.xおよび6.x

セキュリティ

クライアントのセキュリティに関する一般情報は、次の項を参照してください。

  • 『Oracle WebLogic Serverセキュリティの理解』のJava Secure Socket Extension (JSSE)に関する項。

  • 『Oracle WebLogic Serverセキュリティの理解』のJava Authentication and Authorization Services (JAAS)に関する項。

  • 『Oracle WebLogic Serverセキュリティのプログラミング』のJavaクライアントでのSSL認証の使用に関する項。

  • 『Oracle WebLogic Serverセキュリティのプログラミング』のJavaクライアントでのJAAS認証の使用に関する項。

基本的なWebLogicシンT3クライアントの開発

基本的なWebLogicシンT3クライアントを作成するには、次の手順に従います。

  1. リモート・オブジェクトへの参照を取得します。

    1. t3://ip address:portまたはt3s://ip address:portという形式のT3 URLを使用して、サービスをホストするサーバーの初期コンテキストを取得します。

    2. 初期コンテキストを使用してルックアップを実行することで、サービス・オブジェクトのインスタンスを取得します。このインスタンスは、ローカル・オブジェクト参照と同じように使用できます。

  2. リモート・オブジェクト・メソッドを呼び出します。

  3. クライアントのクラスパスにwlthint3client.jarを追加します。このファイルは、WebLogic ServerがインストールされているWL_HOME\server\libディレクトリにあります。


    注意:

    複数のクライアントを組み合せて拡張機能セットを作成することはサポートされていません。wlfullclient.jarwlthint3client.jarまたはwlclient.jarを、WebLogic ServerのクラスパスやWebLogicフル・インストールのweblogic.jarファイルを参照するクラスパスに追加しないでください。追加した場合の動作は不明です。WebLogic Serverアプリケーションは、すでにWebLogicクライアントの機能をすべて利用できます。

例3-1に、基本的なWebLogicシンT3クライアントのサンプル・コードを示します。

例3-1 WebLogic初期コンテキストの作成および使用

Hashtable env = new Hashtable();
env.put("java.naming.factory.initial",
  "weblogic.jndi.WLInitialContextFactory");
env.put("java.naming.provider.url","t3://host:7001");
env.put("java.naming.security.principal","user");
env.put("java.naming.security.credentials","password");
Context ctx = new InitialContext(env);
try {
  Object homeObject =
    context.lookup("EmployeeBean");
//use the EmployeeBean
}
catch (NamingException e) {
// a failure occurred
}
finally {
  try {ctx.close();}
  catch (Exception e) {
// a failure occurred
}
}

外部サーバー・アプリケーション

外部サーバーにホストされているアプリケーションは、wlthint3client.jarを使用すると、WebLogic Serverインスタンスのリモート・クライアントとして機能できます。JMS、サーブレット、EJB、起動クラスなどのリモート・サービスへのアクセスを可能にするには、必要なアプリケーション・コードをwlthint3client.jarとともにアプリケーション・サーバーにデプロイします。

JNDIを使用して外部アプリケーション・サーバーからWebLogic Serverリソースに接続し、アクセスするには、ガイドラインとして次の手順に従ってください。

  1. クライアントのクラスパスにwlthint3client.jarを追加します。

  2. クライアント・アプリケーションで、WebLogic初期コンテキストを作成してから、そのコンテキストを使用してリソースをルックアップし、使用します。詳細は、例3-1「WebLogic初期コンテキストの作成および使用」を参照してください。

  3. 初期コンテキスト・ファクトリをクライアント・コードのシステム・プロパティとして次の値に明示的に設定することが必要な場合もあります。

    env.put("java.naming.factory.initial", "weblogic.jndi.WLInitialContextFactory");

  4. wlthint3client.jarファイルをサーブレットに埋め込んだり、共有ライブラリを使用したりするなど、標準Java EEメソッドを使用してwlthint3client.jarファイルと共に必要なアプリケーション・コードをアプリケーション・サーバーにデプロイします。「デプロイメントの考慮事項」を参照してください。

  5. クライアントを起動またはデプロイします。

次の項では、外部サーバーと相互運用する際に考慮すべき事項について概説します。

デプロイメントの考慮事項

wlthint3client.jarは、Java EEの標準的な方法でデプロイできます。ただし、使用するデプロイメント方法を決める際には、クライアントのサイズ、クラスのロード、パフォーマンス、およびコードの不整合が発生するリスクへの許容度を考慮する必要があります。例:

  • wlthint3client.jarをサーブレットなどのアプリケーションに埋め込んだ場合、アプリケーションのサイズはwlthint3client.jarのサイズだけ増えますが、コードの不整合が発生するリスクはアプリケーションの範囲に限定されます。

  • wlthint3client.jarをlibディレクトリにデプロイした場合、アプリケーションのサイズに影響はありませんが、コードの不整合が発生するリスクは外部サーバー・コンテナ全体に及びます。

OC4Jとの相互運用

OC4J内で実行されているアプリケーションのうち、WebLogic Serverリソースを必要とするもののクラスパスにwlthint3client.jarファイルを追加します。http://download.oracle.com/docs/cd/E14101_01/doc.1013/e13979/classload.htm#CIHDGJGDのOC4Jでの共有ライブラリのインストールと公開に関する項を参照してください。

次の項では、WebLogic Serverリソースのリモート・クライアントとして機能するOracle OC4Jアプリケーション・サーバーと相互運用する際の重要な考慮事項について概説します。

  • トランザクションの伝播: サーバー間でのトランザクション・コンテキスト・オブジェクトの伝播はサポートされていません。

  • セキュリティ・コンテキストの伝播: サーバー間でのセキュリティ/アイデンティティ情報の伝播はサポートされていません。

OC4Jの詳細は、『Java EEアップグレード・ガイド』OC4Jユーザー用Oracle WebLogic Serverの紹介に関する項を参照してください。

WebLogic Serverリソースへのアクセス

次の項では、JNDIを使用してOC4JからWebLogic Serverリソースに接続およびアクセスする方法について、例をあげて説明します。

  1. クライアント・アプリケーションで、WebLogic初期コンテキストを作成してから、そのコンテキストを使用してリソースをルックアップし、使用します。詳細は、例3-1「WebLogic初期コンテキストの作成および使用」を参照してください。

  2. OC4J URLコンテキスト・ファクトリ・プロパティを設定します。http://download.oracle.com/docs/cd/E14101_01/doc.1013/e13975/jndi.htmのサーバー側のURLコンテキスト・ファクトリの有効化に関する項、またはリモート・クライアントのURLコンテキスト・ファクトリの有効化に関する項を参照してください。

  3. クライアントのクラスパスにwlthint3client.jarを追加します。

  4. JARファイルをOC4J共有ライブラリとして追加します。http://download.oracle.com/docs/cd/E14101_01/doc.1013/e13980/ascontrol.htm#BABFDHGBの共有ライブラリの作成および管理に関する項を参照してください。

  5. クライアントを起動またはデプロイします。

JMSとWLSとの相互運用性

ContextScanningResourceProviderリソース・プロバイダを使用してWebLogicサーバーのJMS宛先にアクセスする際には、resource.namesプロパティを使用して、外部サーバーが要求するJMSリソースのJNDI名のカンマ区切りリストを明示的に設定する必要があります。ContextScanningResourceProviderリソース・プロバイダを使用してサード・パーティのJMS宛先にアクセスする方法の詳細は、http://download.oracle.com/docs/cd/E14101_01/doc.1013/e13975/jms.htmのOracle Enterprise Messaging Serviceの使用に関する項を参照してください。


注意:

resource.namesの構文では、JNDI名のカンマ区切りリストのカンマと次のJNDI名との間にスペースを入れることはできません。

次の例は、orion-application.xmlファイルにresource.namesプロパティを設定する方法を示しています。resource.namesプロパティは、TopicOne,QueueOne,TopicTwoに設定されます。この値は、ContextScanningResourceProviderリソース・プロバイダが外部WebLogicサーバーからルックアップしようとするJMS宛先のJNDI名のリストを表しています。

例3-2 resource.namesプロパティの設定

<resource-provider class="com.evermind.server.deployment.ContextScanningResourceProvider" name="WebLogicRP">
<property name="java.naming.factory.initial"    value="weblogic.jndi.WLInitialContextFactory"/>
<property name="java.naming.provider.url" value="t3://localhost:7001/"/>
<property name="java.naming.security.principal" value="user_name"/>
<property name="java.naming.security.credentials" value="user_password"/>
...
<!-- configure the set of known JMS destinations that are required for this application -->
<property name="resource.names" value="TopicOne,QueueOne,TopicTwo"/>
...
</resource-provider>