ヘッダーをスキップ
Oracle Application Serverリリース・ノートおよび新機能
10gリリース3(10.1.3.5.1)
B57229-01
  目次
目次

戻る
戻る
 
次へ
次へ
 

12 Oracle Containers for J2EE

この章では、Oracle Containers for J2EEに関連する問題と新機能について説明します。内容は次のとおりです。

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

OC4Jサーバー・クライアントまたはリモート・クライアントは、WebLogic Serverに接続してEJBなどのリソースにアクセスできます。このようなタイプのシナリオにはwlthint3client.jarライブラリが必要です。JARはhttps://metalink.oracle.com(My Oracle Support)からダウンロードできます。JARはクライアントのクラスパスに含める必要があります。WebLogic Serverリソースへのアクセス方法の詳細手順は、『Oracle Containers for J2EEサービス・ガイド』のWebLogic Serverリソースへのアクセスに関する項を参照してください。

12.2 WLSとのJMSの相互運用性

OC4Jサーバー・クライアントがContextScanningResourceProviderリソース・プロバイダを使用して、WebLogicサーバーのJMS宛先にアクセスするとき、パフォーマンスまたはクラスパス(あるいは両方)の問題が発生することがあります。この問題を回避するには、resource.namesプロパティを使用して、外部サーバーに求められるJMSリソースのためのJNDI名のカンマ区切りリスト(空白)を明示的に設定します。このプロパティを設定しないと、ContextScanningResourceProviderリソース・プロバイダのデフォルトの動作により、OC4JインスタンスにマップできるすべてのJava EEリソースを検出するために所定の外部サーバーのJNDIツリー全体がスキャンされます。

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


注意:

JNDI名の間に空白があると、Nullポインタ例外が発生します。

<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>

サードパーティのJMS宛先にアクセスする場合のContextScanningResourceProviderリソース・プロバイダの使用方法の詳細は、『Oracle Containers for J2EEサービス・ガイド』を参照してください。

12.3 複数のJVMが存在するときのカスタム・ログイン・モジュールのデプロイ

カスタム・ログイン・モジュールをデプロイするときに複数のJVMが構成されていると、デプロイ時に1つのJVMのみに対してのみログイン・モジュールが構成および認識されます。このため、他のJVMにルーティングされるリクエストで認証エラーが発生します。この問題を回避するには、JVMが正しい構成を取得できるようにデプロイの後でOC4Jインスタンスを再起動します。

12.4 アプリケーションにより共有されるHTTPクライアントの静的メモリー

HTTPクライアント・ライブラリは、OC4Jシステム・クラス・ローダーによってロードされるため、OC4Jインスタンスにデプロイされているすべてのアプリケーションによって継承されます。その結果、HTTPクライアントの静的メモリーは、すべてのアプリケーションで共有されます。HTTPクライアントの静的メモリーに格納されているデフォルト値をアプリケーションが変更すると、同じHTTPクライアント・ライブラリに依存する他のアプリケーションに影響を与える可能性があります。この問題の回避方法は、各アプリケーションでHTTPクライアント・ライブラリのローカル・コピーをインポートすることです。その結果、HTTPクライアントの静的メモリーは、そのアプリケーション専用となり、別のアプリケーションによって変更できません。

次の例では、HTTPクライアント・ライブラリのローカル・コピーをインポートし、OC4Jシステム・クラス・ローダーによってロードされたHTTPクライアント・ライブラリを継承しないように、アプリケーションを構成する方法を示しています。変更は、アプリケーションのorion-application.xmlファイルで行う必要があります。

<orion-application>
   ...
   <imported-shared-libraries>
      <remove-inherited name="oracle.http.client">
   </imported-shared-libraries>
   ...
   <library path="ORACLE_HOME/j2ee/home/lib/http_client.jar"/>
   ...
</orion-application>

12.5 データベース内コーディネータ使用時の例外

リソースがトランザクションにリストされていて、トランザクション・マネージャがデータベース内コーディネータを使用するように構成されている場合は、nullポインタ例外が発生します。


注意:

データベース内2フェーズ・コミット・コーディネータの使用は、OC4Jでは非推奨です。今後は、中間層コーディネータを使用することをお薦めします。

12.6 JAZN移行ツールでADFPrincipalタイプが正しく移行されない

OracleAS JAAS Provider移行ツールを使用して、ファイルベースのプロバイダからOracle Identity Management(基本的にはOracle Internet Directory)セキュリティ・プロバイダに、policyモードまたはallモードのいずれかでポリシーを移行するときには、次の問題に注意してください。移行ツールは、ポリシー構成において、Oracle Internet Directoryレルム名を、権限受領者エントリのカスタムまたは非レルムのプリンシパル名の先頭に追加します。(カスタム・プリンシパルは、たとえば、カスタム・ログイン・モジュールを使用した認証時に、作用する可能性があります。)

移行された構成では、権限受領者エントリのカスタム・プリンシパル名は、たとえば、単なるanyoneではなく、us/anyoneになります(usはレルム名)。その結果、権限の問題が生じます。たとえば、ADFアプリケーションの場合、セキュリティ・プロバイダとしてのOracle Internet Directoryへの移行後に公開ページが機能しなくなります。

この問題には、次の回避方法があります。

12.7 外部LDAPプロバイダ使用時の構成の問題

アプリケーション用に外部LDAPプロバイダを使用する予定の場合、デフォルトのXMLセキュリティ・プロバイダで構成される中間層インストールの使用をお薦めします。

インフラストラクチャ・インストール(OIDなど)と関連する中間層インストールがあり、外部LDAPプロバイダを使用する場合、手動でjazn.xmlファイルを編集する必要があります。<jazn>要素のprovider属性とlocation属性を次のように変更します。

<jazn provider="XML" location="./system-jazn-data.xml" ... >

12.8 AIXおよびLinux on POWER: JDK 1.4.2でプロセスが起動しない

JDK 1.5をJDK 1.4.2に置き換えると、OC4Jが起動せず、OPMNログ(ORACLE_HOME/opmn/logs//default_group~home~default_group~1.log)には次のようなエラーが記録されます。

--------
Start process
--------
**************************** WARNING ******************************
You are currently running with data limits not set to unlimited.
You may experience out of memory(OOM) conditions.
In the event of an OOM error, please increase the data limit value.
You may use "ulimit -d unlimited" to set data limit as unlimited.
*******************************************************************

[ Unrecognized option:
-Xjit:exclude={oracle/sysman/emSDK/eml/util/iAS/IASLogConfig.getViewLogsURL(Ljav
ax/servlet/ServletContext;Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/
http/HttpServletResponse;)Ljava/lang/String;},
exclude={oracle/security/jazn/util/OHSH.update([B)V},
exclude={com/phaos/ASN1/ASN1Sequence.<init>(Ljava/io/InputStream;)V},
exclude={com/phaos/crypto/DES.l([B[IZ)V} ]
[ JVMCI123: Unable to parse 1.2 format supplied options - rc=-6 ]
Could not create JVM.

JDK 1.4.2でOC4Jが確実に起動するようにするには、次の回避方法を使用します。

  1. opmn.xml ($ORACLE_HOME/opmn/conf/opmn.xml)から次の行を削除します。

    -Xjit:exclude={oracle/sysman/emSDK/eml/util/iAS/IASLogConfig.getViewLogsURL(
    Ljavax/servlet/ServletContext;Ljavax/servlet/http/HttpServletRequest;Ljavax/s
    ervlet/http/HttpServletResponse;)Ljava/lang/String;},
    exclude={oracle/security/jazn/util/OHSH.update([B)V},
    exclude={com/phaos/ASN1/ASN1Sequence.&lt;init>(Ljava/io/InputStream;)V},
    exclude={com/phaos/crypto/DES.l([B[IZ)V}
    
  2. 次のコマンドを使用して、OC4Jインスタンスを起動します。

    opmnctl startall
    

12.9 HP-UXおよびSolarisオペレーティング・システム(x86)の場合のみ: JDK 1.4.2またはJDK 1.6でOC4Jプロセスが起動しない

JDK 1.5をJDK 1.4.2またはJDK 1.6に置き換えると、OC4Jが起動せず、OPMNログ(ORACLE_HOME/opmn/logs//default_group~home~default_group~1.log)には次のようなエラーが記録されます。

--------
Start process
--------
Unrecognized VM option 'AppendRatio=3'
Could not create the Java virtual machine.

OC4Jが確実に起動するようにするには、次の回避方法を使用します。

  1. 次のコマンドを使用して、OC4Jインスタンスを停止します。

    opmnctl stopall
    
  2. opmn.xml($ORACLE_HOME/opmn/conf/opmn.xml)から次の行を削除します。

    AppendRatio=3
    
  3. 次のコマンドを使用して、OC4Jインスタンスを起動します。

    opmnctl startall
    

12.10 HP-UX PA-RISC(64-Bit)の場合: JDK 1.6を使用してJAZN移行ツールを実行すると失敗する

Oracle Application Server 10gリリース10.1.3.5でJDK 1.6の使用中に、JAZN移行ツールに障害が発生します。

JAZN移行ツールをJDK 1.6で実行する前に、次のコマンドを使用して、環境変数SHLIB_PATHを設定する必要があります。

export SHLIB_PATH=$ORACLE_HOME/jdk/jre/lib/PA_RISC2.0/jli

12.11 新機能

この項では、Oracle Containers for J2EE用の新機能について説明します。この項の内容は次のとおりです。

12.11.1 ピークOC4Jランタイム・インスペクタ・ユーティリティ

ピークOC4Jランタイム・インスペクタ(ピーク)により、共有ライブラリとコードソースを検索し、OC4Jクラス・ローダー・ツリーを表示し、そして事前定義された問合せを実行してOC4Jランタイムの様々な面を調査できます。ピークはOC4Jインスタンスのdefault Webアプリケーションの一部で、次のURLからアクセスできます。

  • OC4Jスタンドアロン(oc4j_extended.zip):

    http://localhost:8888/peek/
    
  • Oracle Application Server

    http://localhost:instance_port/j2ee/peek
    

ピ^クにログオンするには、ユーザー名oc4jadminおよびOC4Jを最初に初期化したときに設定したパスワードを使用します。ピークの詳細は、『Oracle Containers for J2EE開発者ガイド』を参照してください。

12.11.2 新しい管理コマンド

新しい管理コマンドがコマンドライン・ツール(admin_client.jar)で使用できるようになりました。これらはAntタスクとして使用することもできます。新規コマンドを次に示します。

  • listApplications: OC4Jインスタンスまたはクラスタの一部であるOC4Jインスタンスのグループに現在デプロイされているアプリケーションのステータスを表示します。

  • listWebBindings: OC4Jインスタンスまたはクラスタの一部であるOC4Jインスタンスのグループにある各Webモジュールに対するWebサイトのバインディングを表示します。

  • unbindAllWebAppsおよびunbindWebApp: Webモジュールのバインディングを、OC4Jインスタンスまたはクラスタの一部であるOC4JインスタンスのグループのWebサイトから削除します。

  • redeploy: 以前にデプロイされたアーカイブを再デプロイします。このコマンドは、前のデプロイからのデプロイ・プランを使用するオプションだけでなく、失敗したデプロイのリカバリも含んでいます。

  • アプリケーション・レベルの共有ライブラリ・コマンド: publishSharedLibrarymodifySharedLibrarydescribeSharedLibrarylistSharedLibrariesremoveSharedLibraryaddImportSharedLibrarydeleteImportSharedLibraryaddRemoveInheritedSharedLibrarydeleteRemoveInheritedSharedLibrary

  • restartApp: ターゲットOC4Jインスタンス上のアプリケーションとその子アプリケーションを停止してから起動します。

  • listDataSourcesおよびlistDataSourceConnectionPools: アプリケーションに構成されているデータソースおよびデータソース接続プールのリストを表示します。

詳細は、『Oracle Containers for J2EE構成および管理ガイド』を参照してください。

12.11.3 展開ディレクトリのデプロイ

deploy管理コマンドおよびAntタスクは、標準エンタープライズ・アプリケーションのディレクトリ構造のJ2EEアプリケーションのデプロイをサポートしています。J2EEアプリケーションのモジュールは、パッケージ化するか、あるいはそのディレクトリ構造のままにしておくこともできます。詳細は、『Oracle Containers for J2EEデプロイメント・ガイド』を参照してください。

12.11.4 oracle.j2ee.jms実装のMBeanサポート

oracle.j2ee.jmsプロバイダは、プロバイダの構成およびプロバイダとの相互作用に対してMBeanをサポートしています。MBeanには、JmsConfigResource MBeanとJmsOperationsResource MBeanがあります。oracle.j2ee.jms実装に関する詳細は、『Oracle Containers for J2EEサービス・ガイド』を参照してください。

12.11.5 ドキュメントの更新

ドキュメントには新機能の記述に加えて、次の項目が追加されました。

  • システムMBeanブラウザ、クラスタMBeanブラウザおよびクライアント・コードを使用してOC4J MBeanにアクセスする手順が追加されました。さらに、3つの領域すべてを説明する例が作成されました。

    詳細は、『Oracle Containers for J2EE開発者ガイド』を参照してください。

  • oracle.j2ee.jms実装を使用する手順が追加されました。詳細は、『Oracle Containers for J2EEサービス・ガイド』を参照してください。

  • サーバーの起動時および停止時の状態を説明する記述が追加されました。詳細は、『Oracle Containers for J2EE構成および管理ガイド』を参照してください。

  • JNDI/RMIを使用してOC4Jサーバー・クライアントおよびリモート・クライアントからWebLogicサーバー・リソースへアクセスする手順が追加されました。詳細は、『Oracle Containers for J2EEサービス・ガイド』を参照してください。

  • TCPSデータソースを構成する手順が追加されました。詳細は、『Oracle Containers for J2EEサービス・ガイド』を参照してください。

  • サード・パーティ・ベンダーのデータソース構成例がさらに追加されました。詳細は、『Oracle Containers for J2EEサービス・ガイド』を参照してください。

12.12 ドキュメントの誤り

OC4Jドキュメントには次の誤りがあります。

12.12.1 WebLogicサーバーの相互運用性JAR名の誤り

『Oracle Containers for J2EEサービス・ガイド』のWebLogic Serverリソースのアクセスに関する項で、WebLogicサーバーの相互運用性JARに対して誤ったJAR名が使用されています。https://metalink.oracle.com(My Oracle Support)からダウンロードできるWebLogicサーバーの相互運用性JARの正しい名前は、wlthint3client.jarです。