ヘッダーをスキップ
Oracle Application Serverリリース・ノート
10gリリース3(10.1.3.2.0) for Microsoft Windows(64-bit)on Intel Itanium
E05150-02
  目次
目次

戻る
戻る
 
次へ
次へ
 

3 管理およびセキュリティの一般的な問題

この章では、Oracle Application Serverに関連する管理およびセキュリティの問題について説明します。内容は次のとおりです。

3.1 一般的な問題および回避方法

この項では、管理およびセキュリティに関する一般的な問題について説明します。内容は次のとおりです。

3.1.1 ファイル・アップロード時のアプリケーションのデプロイ操作のハング

Application Server Controlを使用してアプリケーションをデプロイする際、アップロード・ページに「アップロードの進行中です」というメッセージが、手動でページをリフレッシュするまで表示され続けることがあります。ASControl.logファイルには次のメッセージが出力されます。

WARN  util.MultipartRequestUtil _getMultiPartRequestParameter.263 -
 java.io.IOException: Cannot create temp directory: The system cannot find the
 path specified

このメッセージが出力されるのは、java.io.tmpdirシステム・プロパティで指定された一時ディレクトリが存在しない場合です。

java.io.tmpdirシステム・プロパティの値を確認するには、Application Server Controlの「システム・プロパティ」ページに移動し、システム・プロパティ値のリストを参照します。java.io.tmpdirシステム・プロパティで指定されたディレクトリが存在しない場合は、そのディレクトリを作成してサーバーを再起動します。

3.1.2 複数JVM OC4Jインスタンスに対する管理のサポートの制限

Oracle Application Server 10gリリース3(10.1.3.2)を使用して、複数のJava仮想マシン(JVM)を使用するように任意のOC4Jインスタンスを構成できます。構成の変更を実行するには、Application Server Controlコンソールを使用するか、またはopmn.xmlファイルでnumprocs引数を1より大きい数値に設定します。

opmn.xmlファイルは、Oracle Application ServerのOracleホームの次のディレクトリにあります。

Application Server ControlコンソールでJVMの数を設定するには、Application Server Controlオンライン・ヘルプの「OC4Jインスタンスに対する追加JVMの作成」を参照してください。

opmn.xmlファイルでnumprocs引数を編集してJVMの数を設定する方法は、次の例を参照してください。変更する必要のあるnumprocsエントリが示されています。

<ias-component id="OC4J">
  <process-type id="home" module-id="OC4J" status="enabled">
        .
        .
        .
      <process-set id="default_group" numprocs="2"/>
   </process-type>
</ias-component>

ただし、この機能はApplication Server Controlではサポートされていないことに注意してください。つまり、Application Server Control(ascontrolアプリケーションで表される)は、複数のJVMを実行しているOC4Jインスタンス上では実行できません。このため、管理OC4Jインスタンス(アクティブなascontrolのホストとなっているOC4Jインスタンス)に対しては、複数のJVMを構成しないでください。管理OC4JのJVMの数を1より大きい数値に構成することにした場合、コマンドライン・ツールを使用してOracle Application Server環境を管理する必要があります。たとえば、次のツールを使用します。

  • admin_client.jar: デプロイ、再デプロイ、アプリケーションの起動と停止、および共有ライブラリの管理に使用します。

  • Apache Ant: アプリケーションのデプロイ、再デプロイおよびアンデプロイに使用します。

  • opmnctlコマンド: Oracle Application Server上での起動、停止およびその他のライフ・サイクル操作に使用します。

また、管理OC4Jで複数のJVMを使用しており、その結果Application Server Controlコンソールが使用できない場合は、Oracle Application Serverインスタンス構成の変更を手動で実行する必要があります。手動で構成の変更を行う場合、Oracle Application Serverインスタンスを停止し、関連するXMLファイルを手動で構成し、Oracle Application Serverを再起動することが必要になる場合がよくあります。

3.1.3 ネイティブ・データソースからプロパティを削除する際の問題

Application Server Controlコンソールを使用してネイティブ・データソースからプロパティを削除しても、Enterprise Managerでは、基礎となるコネクション・ファクトリからプロパティは削除されません。その結果、プロパティ(およびその現行値)は変更されません。

これは予期される動作です。基礎となるコネクション・ファクトリで値を設定するには、JDBCDataSource MBeanのsetProperty操作をネイティブ・データソースに使用して、操作を実行します。Application Server ControlコンソールからアクセスできるMBeanブラウザを使用すれば、MBean操作を起動できます。


関連項目:

Application Server Controlオンライン・ヘルプの「MBeanブラウザについて」

3.1.4 コマンドラインを使用したスタンドアロンOC4Jインスタンスの再起動

Application Server Controlコンソールの一部のOC4J構成ページ(JTA管理ページやOracle Internet Directoryの関連付けページなど)では、変更を有効にするために、OC4Jインスタンスの再起動が必要です。これらのコンポーネントでの構成操作中に、ユーザーにこれを知らせる警告が画面に表示されます。

スタンドアロンOC4J環境でApplication Server Controlコンソールを使用しており、これらのページに変更を適用した後に表示される「再起動」リンクを使用した場合は、OC4Jインスタンスの内部再起動が実行されるため、操作には数分かかることがあります。このため、OC4Jスタンドアロン・ユーザーには、OC4Jインスタンスの再起動に、「再起動」リンクではなく、コマンドラインを使用することをお薦めします。

3.1.5 Application Server ControlコンソールでTopLinkセッションを使用できない

Application Server ControlコンソールでTopLink対応アプリケーションのTopLinkセッションを使用できない場合は、ログイン時にMBeanが作成されるようにTopLinkセッションが構成されていることを確認してください。これには、アプリケーションにserverPlatformクラスが定義されていることと、ServerPlatformクラスでRuntimeServicesEnabledフラグが有効になっていることを確認します。

Oracle Application Server 10gリリース3(10.1.3.2)では、次のプラットフォーム・クラスを使用している必要があります。この設定には、sessions.xmlまたはセッションAPIを使用できます。

oracle.toplink.platform.server.oc4j.Oc4j_10_1_3_Platform

Oracle JDeveloperを使用してTopLink対応アプリケーションを開発するときには、必ずバージョン11以上を使用してください。


関連項目:

『Oracle TopLink開発者ガイド』の「サーバー・プラットフォームの構成」

3.1.6 OPMNによるOC4Jの起動または停止時にMBean通知を受信できない

OPMNを使用してOracle Containers for J2EE(OC4J)を起動または停止した場合は、ias:j2eeType=J2EEServer,name... MBeanエンティティから通知を受け取ることはできません。この問題は、Application Server Controlを使用するか、コマンドラインからopmnctl stopコマンドまたはopmnct startコマンドを使用すると発生します。

現在、この問題の回避方法はありません。

3.1.7 Java Server Pages標準タグ・ライブラリの使用

Java Server Pages標準タグ・ライブラリ(JSTL)では、Java Developer Kit 1.4にパッケージされているJaxp 1.2クラスが利用されます。

Oracle Application Server 10gリリース3(10.1.3.2)では、Jaxp 1.3クラスを使用するJDK 1.5が利用されます。しかし、JSTLには引き続きJaxp1.2クラスが必要です。JDK 1.5のXML関連タグを持つJSTLを実行する場合は、次のようなエラー・メッセージを受け取ります。

: missing class org.apache.xpath.encounter failure.

JSTLの問題を回避するには、必須の.warファイルにxalan.jarファイルを含めます。.warファイルがある/WEB-INF/libディレクトリにxalan.jarファイルを追加して、再パッケージ化します。

詳細は、次のURLにあるJSTLリリース・ノートを参照してください。

http://java.sun.com/webservices/docs/1.6/jstl/ReleaseNotes.html.

3.1.8 RMD条件の不完全な評価

『Oracle Process Manager and Notification Server管理者ガイド』および動的リソース管理(DRM)の機能仕様の説明にあるように、リソース管理ディレクティブ(RMD)の条件には、完全修飾パスを使用できます。ただし、この条件はまったく評価されない場合があります。opmn.xmlファイルが有効であっても、アクションや例外の起動に失敗する場合があります。

RMDの定義は、次のいずれかです。

  • 階層: ias-instance以下のレベルで定義する場合。階層RMDでは、RMDの定義対象となるOPMN構成コンポーネント内での関連付けが前提となります。

  • グローバル: process-managerレベルで定義する場合。グローバルRMDでは、OPMNコンポーネントの明示的な指定が必要です。

階層RMDを参照している場合は、完全修飾パスのかわりに、階層的な相対参照を使用します。

たとえば、平均リクエスト時間が少なくとも60秒間に対して500ミリ秒を超えており、階層RMDが構成されているOC4Jのprocess-setで実行されているプロセスが4未満の場合は、opmn.xmlファイルに次の行を使用します。

([process].avgReqTime > 500 {duration(60)})&([process-set].numProcs < 4)

グローバルRMDを使用する場合は、グローバルな絶対参照を使用します。

たとえば、Java仮想マシン(JVM)のヒープ・サイズが500MBを超えている場合は、opmn.xmlファイルに次の行を使用します。

[process-set=home][process].heapSize > 500000

opmn.xmlファイルは、Oracle Application ServerのOracleホームの次のディレクトリにあることに注意してください。

ORACLE_HOME\opmn\conf\

3.1.9 Application ServerとOC4Jインスタンスが同名の場合、システムMBeanを参照できない

Oracle Application Server 10gリリース3(10.1.3.2)をインストールし、デフォルトOC4Jインスタンスの名前を指定する場合は、Oracle Application Serverインスタンス名や、Oracle Application Serverインスタンス名の最初の数文字と一致する名前を使用しないでください。使用すると、Application Server Control MBeanブラウザを使用して、システムまたはアプリケーションMBeanを参照できません。

たとえば、OC4Jインスタンスの名前やOracle Application Serverインスタンスの名前が次のような場合、そのインスタンスでMBeanを参照できません。

Oracle Application Server instance name: instance1_as10132.node1.acme.com OC4J instance name: instance1

同様に、追加のOC4Jインスタンスを作成する際には、この制限を覚えておいてください。OC4JインスタンスのホストであるOracle Application Serverの名前に一致する名前を使用しないでください。

3.1.10 Application Server ControlによりルーティングIDテキスト・フィールドのマルチバイト・キャラクタがチェックされない

Application Server Controlコンソールから、Oracle Application Serverクラスタ・トポロジの様々なコンポーネントに割り当てられたルーティングIDを変更できます。


関連項目:

Application Server Controlオンライン・ヘルプの「ルーティングIDの変更」

ただし、ルーティングIDに一意の識別子を入力する場合は、必ず英数字およびアンダースコアのみを使用するようにしてください。マルチバイト・キャラクタを使用してルーティングIDを作成しようとすると、Oracle Process Manager and Notification Server(OPMN)を停止または起動できなくなります。

ルーティングIDフィールドで不用意にマルチバイト・キャラクタを使用した場合、opmn.xmlファイルを編集し、マルチバイト・キャラクタを通常のASCII文字に置換することにより、問題を解決できます。

opmn.xmlファイルは、Oracle Application ServerのOracleホームの次のディレクトリにあります。

ORACLE_HOME\opmn\conf\

各コンポーネントのルーティングIDは、次のようなdata要素内で定義されています。

<category id="start-parameters">
    <data id="routing-id" value="g_rt_id"/>
</category>

3.1.11 アプリケーションのデプロイ時に、Application Server Controlによりコンテキスト・ルート・フィールドで一部の無効な文字がチェックされない

Application Server Controlからアプリケーションをデプロイすると、アプリケーションのコンテキスト・ルートを指定するように求めるメッセージが表示されます。Application Server Controlにより、「コンテキスト・ルート」フィールドに入力したテキストが検証され、無効な文字の入力を防ぎます。

しかし、Application Server Controlでは、一部の西欧文字など、無効な文字でもチェックされないものがあります。そのため、これらの無効な文字を含むコンテキスト・ルートを入力しても、Application Server Controlではアプリケーションのデプロイを進めることはできますが、デプロイ後に、コンテキスト・ルートを含むWebサーバーURLを使用してそのアプリケーションにアクセスすることはできません。

コンテキスト・ルートを指定する際に使用できる文字は、英数字とアンダースコア(_)の他、プラス記号(+)とダッシュ(-)のみです。

「コンテキスト・ルート」フィールドに無効な文字(西欧文字など)を不用意に入力した場合、ASCIIの英数字およびアンダースコアのみを含むコンテキスト・ルートを使用して、アプリケーションを再デプロイすれば、問題を解決できます。

3.2 クラスタリングとレプリケーションの問題

この項では、クラスタリングとレプリケーションに関する問題について説明します。内容は次のとおりです。

3.2.1 Oracle Universal Installerのサンプルのクラスタ検出アドレスの使用によるサーバーの不注意なクラスタ化

Oracle Universal Installerには、拡張インストール・オプションの一部として、サンプルのクラスタ検出アドレスが用意されています。提供されているサンプルの検出アドレスは225.0.0.1:6789です。これは推奨のアドレスではなく、ネットワーク管理者に問い合せた場合に受け取るクラスタ検出アドレスの形式を示すための例です。

Oracle Application Serverのクラスタ構成は完全に動的なため、インストールにこのサンプルのクラスタ検出アドレス(225.0.0.1:6789)を使用すると、同じサンプルのクラスタ検出アドレスを使用してインストールされた他のサーバーと間違ってクラスタ化される可能性があります。

特定のOracle Application Serverインスタンスのクラスタ検出アドレスは、次のopmnctlコマンドを使用してコマンドラインから設定できます。

> $ORACLE_HOME/opmn/bin/opmnctl config topology update discover=<cluster config address>

たとえば、特定のOracle Application Serverインスタンスのクラスタ検出アドレスを225.0.0.1:9876に更新する場合、コマンドは次のようになります。

> $ORACLE_HOME/opmn/bin/opmnctl config topology update discover="*225.0.0.1:9876"

トポロジとクラスタ検出アドレスの構成の詳細は、『Oracle Containers for J2EE構成および管理ガイド』の第8章「クラスタの構成および管理」を参照してください。

3.3 ドキュメントの訂正箇所

この項では、管理ドキュメントの訂正箇所を示します。内容は次のとおりです。

3.3.1 OPMNのデフォルトのpingタイムアウト値は20秒ではなく30秒

『Oracle Process Manager and Notification Server管理者ガイド』には、デフォルトのpingタイムアウト値が20秒であると記載されていますが、これは誤りです。実際の値は30秒です。

3.3.2 『Oracle Process Manager and Notification Server管理者ガイド』の間違ったゲートウェイの例

『Oracle Process Manager and Notification Server管理者ガイド』の第6章「opmn.xmlの一般的な構成」、<gateway>に関する項に示されている最後の例を使用すると、検証エラーが発生する可能性があります。この例には、次の2つの行が記載されています。

<gateway list="host1a.subA.com:6200&host2a.subA.com:6200/host1b.subB.com:6200&host2b.subB.com:6200"/>
<gateway list="host1b.subB.com:6200&host2b.subB.com:6200/host1a.subA.com:6200&host2a.subA.com:6200"/>

これらの行を使用すると、次のエラーが発生する可能性があります。

In line 9 of /scratch/aime1/10133/ohs/opmn/conf/opmn.xml:
LPX-00241: entity reference is not well formed
XML parse failed: error 241.
opmnctl: opmn.xml validation failed.

これを修正するには、次のように2つの行を1つの行に結合します。

<gateway
 list="host1a.subA.com:6200&
 host2a.subA.com:6200/host1b.subB.com:6200&host2b.subB.com:6200,
 host1b.subB.com:6200&host2b.subB.com:6200/host1a.subA.com:6200&
 host2a.subA.com:6200"/>

3.3.3 Application Server Controlオンライン・ヘルプにあるマルチキャスト・アドレスの有効範囲の誤り

Application Server Controlオンライン・ヘルプにある次のトピックでは、Oracle Application Server 10gリリース3(10.1.3.2)クラスタ・トポロジの構成時にマルチキャスト・アドレスに使用できるアドレスの有効範囲について、誤って記載されています。

  • 「クラスタ・トポロジ構成時のヒント」

  • 「サポート対象クラスタ・トポロジの概要」

マルチキャスト・アドレスは、224.0.1.0239.255.255.255の範囲内にする必要があります。

3.3.4 クローニングに関する追加情報

クローニングに関して、次の点に留意してください。

  • ソース環境にORACLE_HOME/portal/conf/javacache.xmlがある場合、このファイルをクローニングされた環境で手動によって変更する必要があります。

    このファイルで、次のように変更します。

    • <location>要素で、ソースORACLE_HOMEの値をクローニングされたORACLE_HOMEの値に置換します。

    • <coordinator discovery-port>要素で、値を新しいポート番号に変更します。

  • クローニングされたインスタンスでは、仮想ホスト名ではなくマシンのホスト名が使用されます。これは、ソース・インスタンスのインストール時、およびクローニング操作の実行前にVIRTUAL_HOST_NAME環境変数を設定した場合でも同様です。

  • prepare_clone.plスクリプトを実行する前に、ソース・インスタンスを完全に停止することをお薦めします。

3.3.5 コンポーネントの有効化と無効化のサポート

『Oracle Application Server管理者ガイド』には、コンポーネントの有効化と無効化がサポートされないと記載されていますが、これは誤りです。Application Server Controlコンソールではサポートされませんが、OPMNではサポートされます。コンポーネントの有効化と無効化の詳細は、『Oracle Process Manager and Notification Server管理者ガイド』を参照してください。