ヘッダーをスキップ

Oracle Containers for J2EE Enterprise JavaBeans開発者ガイド
10g(10.1.3.1.0)

B31852-03
目次
目次
索引
索引

戻る 次へ

31 EJBアプリケーションの管理

この章の内容は次のとおりです。

詳細は、「EJB管理について」を参照してください。

OC4J EJB JMXサポート

OC4Jは、MBeansをデプロイして、すべてのタイプのEJBのJSR77統計およびOracle Dynamic Monitoring System(DMS)センサー・データを収集します。

これらの統計およびセンサーには、Application Server Control(「Oracle Enterprise Manager 10g Application Server Controlの使用方法」を参照)などの任意のJMX準拠の管理ツールを使用してアクセスできます。

Oracle Enterprise Manager 10g Application Server Controlの使用方法

Application Server Controlは、OC4J内でのアプリケーションのデプロイ、構成および監視、またアプリケーションで使用されるOC4Jサーバー・インスタンスとWebサービスの管理を行うためのJMX準拠のWebベース・ユーザー・インタフェースです。

Application Server Control JMX管理タスクを使用すると、Oracle Application Serverの再起動やアプリケーションの再デプロイを行わなくても、次のようにOC4JにデプロイされるすべてのEJBタイプのプロパティを変更できます。

  1. Application Server Controlを起動します。

  2. 「管理」リンクをクリックします。

  3. 「システムMBeanブラウザ」をクリックします。

  4. 特定のMBeanインスタンスには、コンソールの左にあるナビゲーション・ペインからアクセスします。ナビゲーション・ペインのノードを開き、アクセスするMBeanにドリルダウンします。

    たとえば、スタンドアロンOC4Jの場合は、「J2EEServer」「スタンドアロン」「J2EEApplication」→「application-name」→「EJBModule」→「module-name」を選択します。

  5. 「StatelessSessionBean」「MessageDrivenBean」「WebServicePort」などのEnterprise Beanのタイプを選択します。

  6. MBeanインスタンスを選択します。

  7. 右側のペインで適切なタブをクリックします。

    • 「属性」タブをクリックしてMBeanの属性にアクセスします。属性値を変更する場合は、「変更を適用」をクリックしてOC4Jランタイムに変更を適用します。

    • 「操作」タブをクリックしてMBeanの操作にアクセスします。特定の操作を選択した後で、「起動」をクリックしてその操作をコールします。

    • 「通知」タブをクリックしてMBeanの通知をサブスクライブします。特定の通知を選択した後で、「適用」をクリックしてその通知をサブスクライブします。

    • 「統計」タブをクリックしてMBeanの統計を表示します。

ほとんどの管理タスクにApplication Server Controlを使用できます。

詳細は、次を参照してください。

EJBロギングの構成

OC4Jは、標準JDKであるjava.util.loggingパッケージを使用し、デフォルトでログ・メッセージを<OC4J_HOME>/j2ee/home/log/<group>/oc4j/log.xmlファイルに書き込みます。

この項の内容は次のとおりです。

ロギング名前空間

次のjava.util.logging名前空間に対してロガーを構成できます。

ロギング・レベル

FINERFINECONFIGINFOWARNINGおよびSEVEREのログ・レベルを構成できます。

Application Server ControlロギングMBeanでのロギングの構成

OC4Jロギングを構成する最も単純な方法は、Application Server Controlを使用することです(「Oracle Enterprise Manager 10g Application Server Controlの使用方法」を参照)。

Application Server ControlではすべてのEJB関連ロガー名が表示され、Application Server Controlインタフェースを使用してログ・レベルなどの属性を指定できます。

j2ee-logging.xmlファイルを使用したロギングの構成

例31-1に示すように、<OC4J_HOME>/j2ee/home/config/j2ee-logging.xmlファイルを使用してOC4Jロギングを構成できます。

例31-1    j2ee-logging.xmlファイル

<logger
    name='oracle.j2ee.ejb'
    level='NOTIFICATION:1'
    useParentHandlers='false'>
    <handler name='oc4j-handler'/>
    <handler name='console-handler'/>
</logger>

詳細は、次を参照してください。

システム・プロパティを使用したロギングの構成

oracle.j2ee.loggingシステム・プロパティを使用して、OC4Jロギングを構成できます。このシステム・プロパティの形式は次のとおりです。

oracle.j2ee.logging.<log-level>=<log-namespace>

この場合:

例31-2に、oracle.j2ee.ejb.deployment名前空間のロガーをfinestに構成する方法を示します。

例31-2    システム・プロパティでのロガーの構成

oracle.j2ee.logging.finest=oracle.j2ee.ejb.deployment

TopLinkロギングの構成

EJB 3.0 JPAアプリケーションでは、ベンダー拡張を使用してTopLink JPA永続性プロバイダによるロギング方法をカスタマイズできます。

詳細は、「ロギング用のTopLink JPA拡張」を参照してください。

Oracle JMSコネクタ・ロギングの構成

Oracle JMSコネクタを使用してJMSメッセージ・サービスにアクセスするアプリケーションでは、アクティブ化構成プロパティLogLevelを使用してOracle JMSコネクタによるロギング方法をカスタマイズできます。

詳細は、「J2CAを使用してメッセージ・サービス・プロバイダにアクセスするためのEJB 3.0 MDBの構成」を参照してください。

Beanインスタンス・プールの管理

OC4Jには、Beanインスタンスの作成頻度を削減してパフォーマンスを向上させるために構成できるEJBプーリング属性が用意されています。

この項の内容は次のとおりです。

Beanインスタンスのプール・サイズの構成

セッションBean、エンティティおよびメッセージドリブンBeanのBeanインスタンス・プールの最小数および最大数を設定できます。

次の方法でBeanプール・サイズを構成できます。

デプロイXMLの構成は、アノテーションを使用して設定された対応する構成をオーバーライドします。

アノテーションの使用方法

EJB 3.0セッションBeanおよびメッセージドリブンBeanのBeanインスタンス・プール・サイズは、次のOC4J固有のアノテーションとその属性を使用して指定できます。

例31-3に、@StatelessDeploymentアノテーションを使用してEJB 3.0ステートレス・セッションBeanでこれらの属性を構成する方法を示します。

例31-3    @StatelessDeploymentのmaxInstancesおよびminInstances属性

import javax.ejb.Stateless;
import oracle.j2ee.ejb.StatelessDeployment;

@Stateless
@StatelessDeployment(
    maxInstances=10,
    minInstances=3
)
public class HelloWorldBean implements HelloWorld {

    public void sayHello(String name) {
        System.out.println("Hello "+name +" from first EJB3.0");
    }
}

 

デプロイXMLの使用方法

EJB 3.0セッションBeanおよびメッセージドリブンBeanのBeanインスタンス・プール・サイズは、次のorion-ejb-jar.xmlファイルの要素とその属性を使用して指定できます。

例31-4に、orion-ejb-jar.xmlファイルを使用してEJB 3.0ステートレス・セッションBeanでこれらの属性を構成する方法を示します。

例31-4    ステートレス・セッションBeanのBeanインスタンス・プール・サイズのorion-ejb-jar.xml

<?xml version="1.0" encoding="utf-8"?>
<orion-ejb-jar
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:noNamespaceSchemaLocation="http://xmlns.oracle.com/oracleas/schema/orion-ejb-jar-10_0.xsd"
    deployment-version="10.1.3.1.0"
    deployment-time="10b1fb5cdd0"
    schema-major-version="10"
    schema-minor-version="0"
>
    <enterprise-beans>
        <session-deployment
            max-instances="10"
            min-instances="3"
            ...
        >
        </session-deployment>
    ...
    </enterprise-beans>
    ...
</orion-ejb-jar>

 

この方法を使用してこのプロパティを変更する場合は、OC4Jを再起動して変更を適用する必要があります。または、Application Server Controlコンソールを使用して、OC4Jを再起動せずにこのパラメータを動的に変更できます(「Oracle Enterprise Manager 10g Application Server Controlの使用方法」を参照)。

セッションBeanのBeanインスタンス・プール・タイムアウトの構成

セッションBeanがBeanインスタンス・プールにキャッシングされる最大時間を設定できます。

次の方法でセッションBeanのプール・タイムアウトを構成できます。

デプロイXMLの構成は、アノテーションを使用して設定された対応する構成をオーバーライドします。

アノテーションの使用方法

例31-5に、@StatelessDeploymentアノテーションのpoolCacheTimeout属性を使用してEJB 3.0ステートレス・セッションBeanのBeanインスタンス・プール・タイムアウトを構成する方法を示します。

この@StatelessDeploymentの属性の詳細は、表A-1を参照してください。@StatelessDeploymentアノテーションの詳細は、「EJB 3.0セッションBeanのOC4J固有のデプロイ・オプションの構成」を参照してください。

例31-5    @StatelessDeploymentのpoolCacheTimeout属性

import javax.ejb.Stateless;
import oracle.j2ee.ejb.StatelessDeployment;

@Stateless
@StatelessDeployment(
    poolCacheTimeout=90
)
public class HelloWorldBean implements HelloWorld {

    public void sayHello(String name) {
        System.out.println("Hello "+name +" from first EJB3.0");
    }
}

 

例31-6に、@StatefulDeploymentアノテーションのtimeout属性を使用してEJB 3.0ステートフル・セッションBeanのBeanインスタンス・プール・タイムアウトを構成する方法を示します。

この@StatelessDeploymentの属性の詳細は、表A-1を参照してください。@StatelessDeploymentアノテーションの詳細は、「EJB 3.0セッションBeanのOC4J固有のデプロイ・オプションの構成」を参照してください。

例31-6    @StatefulDeploymentのtimeout属性

import javax.ejb.Stateful
import oracle.j2ee.ejb.StatefulDeployment;

@Stateful
@StatefulDeployment(
    timeout=100
)
public class CartBean implements Cart {

    private ArrayList items;
    ...
}

 

デプロイXMLの使用方法

orion-ejb-jar.xmlファイルで、セッションBeanの<session-deployment>要素の次の属性を使用してBeanプール・タイムアウトを設定します。

この方法を使用してこのプロパティを変更する場合は、OC4Jを再起動して変更を適用する必要があります。または、Application Server Controlコンソールを使用して、OC4Jを再起動せずにこのパラメータを動的に変更できます(「Oracle Enterprise Manager 10g Application Server Controlの使用方法」を参照)。

エンティティBeanのBeanインスタンス・プール・タイムアウトの構成

エンティティがBeanインスタンス・プールにキャッシングされる最大時間を設定できます。

次の方法でエンティティのプール・タイムアウトを構成できます。

デプロイXMLの使用方法

orion-ejb-jar.xmlファイルで、エンティティの<entity-deployment>要素の次の属性を使用してBeanプール・タイムアウトを設定します。

この方法を使用してこのプロパティを変更する場合は、OC4Jを再起動して変更を適用する必要があります。または、Application Server Controlコンソールを使用して、OC4Jを再起動せずにこのパラメータを動的に変更できます(「Oracle Enterprise Manager 10g Application Server Controlの使用方法」を参照)。

EJBアプリケーションの起動および停止

Application Server Controlを使用して、EJBアプリケーションを起動および停止できます。

アプリケーションの停止中、クライアントはそのアプリケーションにアクセスできません。

詳細は、「Oracle Enterprise Manager 10g Application Server Controlの使用方法」を参照してください。

EJBアプリケーションのトラブルシューティング

この項の内容は次のとおりです。

XMLファイルの検証

XMLファイルを検証するようにOC4Jを構成するには、OC4J起動スクリプト
<OC4J_HOME>/BIN/oc4j.cmdまたはoc4j)で使用されるコマンドラインに-validateXMLオプションを追加します。

例31-7に、oc4j.cmdファイルでのこのオプションの設定方法を示します。

例31-7    oc4j.cmdでの-validateXMLの設定

...
"%JAVA_HOME%¥bin¥java" %JVMARGS% -jar %OC4J_JAR% %CMDARGS% -validateXML
...

 

このオプションを設定すると、OC4JがXMLファイルを読み取る際に、OC4JはXMLファイルを指定のスキーマに照らして厳密に検証します。OC4Jはエラーをログに記録します(「EJBロギングの構成」を参照)。

ejb-jar.xmlファイルのデバッグ

1つ以上のアノテーションのあるEJB 3.0アプリケーションのデプロイ時に、OC4Jはそのメモリー内のejb-jar.xmlファイルをデプロイ・ディレクトリ内のorion-ejb-jar.xmlファイルと同じ場所(<ORACLE_HOME>/j2ee/home/application-deployments/
my_application/META-INF
)に自動的に書き込みます。

このejb-jar.xmlファイルは、アノテーションとデプロイ済ejb-jar.xmlファイル(存在する場合)の両方から取得された構成を表します。

EJB 2.1アプリケーションをデプロイする場合、生成されたラッパー・コードを保持するには、システム・プロパティKeepWrapperCodeを設定する必要があります(「生成されたラッパー・コードのデバッグ」を参照)。

「XMLファイルの検証」も参照してください。

生成されたラッパー・コードのデバッグ

デフォルトでは、OC4Jは、EJB 2.1 CMPアプリケーションをデプロイする際に、
<OC4J_HOME>/j2ee/home/application-deployments/<ear-name>/<ejb-name>/
generated
にラッパー・コードを生成し、そのコードをコンパイルし、コンパイルされたクラスを含むJARファイルを作成してから、生成したラッパー・コードを削除します。

生成したラッパー・コードを保持するようにOC4Jを構成できます。ラッパー・コードの検証は、アプリケーションの問題のデバッグに役立ちます。

この項の内容は次のとおりです。

生成されたラッパー・コードのデフォルト・ディレクトリへの保持

生成コードを保持するようOC4Jを構成するには、OC4Jの起動コマンドラインでシステム・プロパティKeepWrapperCodetrueに設定します。例31-8に、<OC4J_HOME>/bin/
oc4j.cmd
ファイルの場合を示します。

例31-8    oc4j.cmdでのKeepWrapperCodeの設定

...
"%JAVA_HOME%¥bin¥java" %JVMARGS% -DKeepWrapperCode=true -jar "%OC4J_JAR%" %CMDARGS%
...

 

KeepWrapperCodetrueの場合、OC4Jは、生成したラッパー・コードをデフォルト・ディレクトリ<OC4J_HOME>/j2ee/home/application-deployments/<ear-name>/
<ejb-name>/generated
に保持します。または、OC4Jがラッパー・コードの保持に使用するディレクトリを指定することもできます(「生成されたラッパー・コードの指定ディレクトリへの保持」を参照)。

アプリケーションをアンデプロイすると、このディレクトリ内のラッパー・コードがOC4Jによって削除されます。

生成されたラッパー・コードの指定ディレクトリへの保持

システム・プロパティKeepWrapperCodetrueに設定し、システム・プロパティWrapperCodeDirをディレクトリ(<specified-wrapper-dir>と呼ぶ)に設定した場合、OC4Jでは、このディレクトリにラッパー・コードが生成され、アプリケーションをアンデプロイしてもラッパー・コードが保持されます。例31-9に、<OC4J_HOME>/bin/oc4j.cmdファイルの場合を示します。

例31-9    oc4j.cmdでのKeepWrapperCodeおよびWrapperCodeDirの設定

...
"%JAVA_HOME%¥bin¥java" %JVMARGS% -DKeepWrapperCode=true -DWrapperCodeDir=C:¥wrappers -jar "%OC4J_JAR%" %CMDARGS%
...

 

<specified-wrapper-dir>は、絶対パス(C:¥wrappersなど)または相対パス(./wrappersなど)に設定できます。相対パスは、<OC4J_HOME>/j2ee/homeからの相対です。

(権限の問題や領域の不足などにより)指定したディレクトリにOC4Jが生成できない場合は、OC4Jによってデフォルト・ディレクトリ<OC4J_HOME>/j2ee/home/
application-deployments/<ear-name>/<ejb-name>/generated
にラッパー・コードが生成され、アプリケーションをアンデプロイしてもこのラッパー・コードが保持されます。

生成されたラッパー・コードの変更

システム・プロパティKeepWrapperCodetrueに設定し、システム・プロパティDoNotReGenerateWrapperCodetrueに設定した場合、OC4Jでは、ラッパー・コードが生成され、アプリケーションをアンデプロイしてもラッパー・コードが保持されます。例31-10に、<OC4J_HOME>/bin/oc4j.cmdファイルの場合を示します。この場合、再デプロイ時には、OC4Jはラッパー・コードを再生成せずに、かわりにデフォルト・ディレクトリ
「生成されたラッパー・コードのデフォルト・ディレクトリへの保持」を参照)または指定したディレクトリ(「生成されたラッパー・コードの指定ディレクトリへの保持」を参照)に保持されたバージョンのラッパー・コードを使用します。

例31-10    oc4j.cmdでのKeepWrapperCodeおよびDoNotReGenerateWrapperCodeの設定

...
"%JAVA_HOME%¥bin¥java" %JVMARGS% -DKeepWrapperCode=true -DDoNotReGenerateWrapperCode=true -jar "%OC4J_JAR%" %CMDARGS%
...

 

これらのシステム・プロパティを使用すると、デバッグ文を追加するなど、ラッパー・コードを変更できます。再デプロイ時に、OC4Jは、ユーザーに変更された保持バージョンのラッパー・コードを再コンパイルして使用します。

生成されたラッパー・コードの保持の無効化

生成されたラッパー・コードの保持を無効化するには、システム・プロパティKeepWrapperCodefalseに設定し、システム・プロパティDoNotReGenerateWrapperCodefalseに設定します。または、これらのシステム・プロパティを設定しないままとします。


戻る 次へ
Oracle
Copyright © 2002, 2008 Oracle Corporation.

All Rights Reserved.
目次
目次
索引
索引