Oracle Containers for J2EE Enterprise JavaBeans開発者ガイド 10g(10.1.3.1.0) B31852-03 |
|
この章の内容は次のとおりです。
詳細は、「EJB管理について」を参照してください。
OC4Jは、MBeansをデプロイして、すべてのタイプのEJBのJSR77統計およびOracle Dynamic Monitoring System(DMS)センサー・データを収集します。
これらの統計およびセンサーには、Application Server Control(「Oracle Enterprise Manager 10g Application Server Controlの使用方法」を参照)などの任意のJMX準拠の管理ツールを使用してアクセスできます。
Application Server Controlは、OC4J内でのアプリケーションのデプロイ、構成および監視、またアプリケーションで使用されるOC4Jサーバー・インスタンスとWebサービスの管理を行うためのJMX準拠のWebベース・ユーザー・インタフェースです。
Application Server Control JMX管理タスクを使用すると、Oracle Application Serverの再起動やアプリケーションの再デプロイを行わなくても、次のようにOC4JにデプロイされるすべてのEJBタイプのプロパティを変更できます。
たとえば、スタンドアロンOC4Jの場合は、「J2EEServer」→「スタンドアロン」→「J2EEApplication」→「application-name」→「EJBModule」→「module-name」を選択します。
ほとんどの管理タスクにApplication Server Controlを使用できます。
詳細は、次を参照してください。
OC4Jは、標準JDKであるjava.util.logging
パッケージを使用し、デフォルトでログ・メッセージを<
OC4J_HOME
>/j2ee/home/log/<group>/oc4j/log.xml
ファイルに書き込みます。
この項の内容は次のとおりです。
次のjava.util.logging
名前空間に対してロガーを構成できます。
oracle.j2ee.ejb.annotation
oracle.j2ee.ejb.compilation
oracle.j2ee.ejb.database
oracle.j2ee.ejb.deployment
oracle.j2ee.ejb.lifecycle
oracle.j2ee.ejb.pooling
oracle.j2ee.ejb.runtime
oracle.j2ee.ejb.transaction
FINER
、FINE
、CONFIG
、INFO
、WARNING
およびSEVERE
のログ・レベルを構成できます。
OC4Jロギングを構成する最も単純な方法は、Application Server Controlを使用することです(「Oracle Enterprise Manager 10g Application Server Controlの使用方法」を参照)。
Application Server ControlではすべてのEJB関連ロガー名が表示され、Application Server Controlインタフェースを使用してログ・レベルなどの属性を指定できます。
例31-1に示すように、<
OC4J_HOME
>/j2ee/home/config/j2ee-logging.xml
ファイルを使用してOC4Jロギングを構成できます。
<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>
この場合:
<log-level>
は、fine
、finer
、finest
のいずれかです。
<log-namespace>
は、oracle.j2ee.ejb
名前空間です(「ロギング名前空間」を参照)。
例31-2に、oracle.j2ee.ejb.deployment
名前空間のロガーをfinestに構成する方法を示します。
oracle.j2ee.logging.finest=oracle.j2ee.ejb.deployment
EJB 3.0 JPAアプリケーションでは、ベンダー拡張を使用してTopLink JPA永続性プロバイダによるロギング方法をカスタマイズできます。
詳細は、「ロギング用のTopLink JPA拡張」を参照してください。
Oracle JMSコネクタを使用してJMSメッセージ・サービスにアクセスするアプリケーションでは、アクティブ化構成プロパティLogLevelを使用してOracle JMSコネクタによるロギング方法をカスタマイズできます。
詳細は、「J2CAを使用してメッセージ・サービス・プロバイダにアクセスするためのEJB 3.0 MDBの構成」を参照してください。
OC4Jには、Beanインスタンスの作成頻度を削減してパフォーマンスを向上させるために構成できるEJBプーリング属性が用意されています。
この項の内容は次のとおりです。
セッションBean、エンティティおよびメッセージドリブンBeanのBeanインスタンス・プールの最小数および最大数を設定できます。
次の方法でBeanプール・サイズを構成できます。
デプロイXMLの構成は、アノテーションを使用して設定された対応する構成をオーバーライドします。
EJB 3.0セッションBeanおよびメッセージドリブンBeanのBeanインスタンス・プール・サイズは、次のOC4J固有のアノテーションとその属性を使用して指定できます。
@StatelessDeployment
の属性:
これらの属性の詳細は、表A-1を参照してください。
@StatefulDeployment
の属性:
これらの属性の詳細は、表A-1を参照してください。
@MessageDrivenDeployment
の属性:
これらの属性の詳細は、表A-3を参照してください。
例31-3に、@StatelessDeployment
アノテーションを使用してEJB 3.0ステートレス・セッションBeanでこれらの属性を構成する方法を示します。
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");
}
}
EJB 3.0セッションBeanおよびメッセージドリブンBeanのBeanインスタンス・プール・サイズは、次のorion-ejb-jar.xml
ファイルの要素とその属性を使用して指定できます。
<session-deployment>
の属性:
これらの属性の詳細は、表A-1を参照してください。
<session-deployment>
の属性:
これらの属性の詳細は、表A-1を参照してください。
<message-driven-deployment>
の属性:
これらの属性の詳細は、表A-3を参照してください。
例31-4に、orion-ejb-jar.xml
ファイルを使用してEJB 3.0ステートレス・セッションBeanでこれらの属性を構成する方法を示します。
<?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のプール・タイムアウトを構成できます。
デプロイXMLの構成は、アノテーションを使用して設定された対応する構成をオーバーライドします。
例31-5に、@StatelessDeployment
アノテーションのpoolCacheTimeout属性を使用してEJB 3.0ステートレス・セッションBeanのBeanインスタンス・プール・タイムアウトを構成する方法を示します。
この@StatelessDeployment
の属性の詳細は、表A-1を参照してください。@StatelessDeployment
アノテーションの詳細は、「EJB 3.0セッションBeanのOC4J固有のデプロイ・オプションの構成」を参照してください。
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固有のデプロイ・オプションの構成」を参照してください。
import javax.ejb.Stateful
import oracle.j2ee.ejb.StatefulDeployment;
@Stateful
@StatefulDeployment(
timeout=100
)
public class CartBean implements Cart {
private ArrayList items;
...
}
orion-ejb-jar.xml
ファイルで、セッションBeanの<session-deployment>
要素の次の属性を使用してBeanプール・タイムアウトを設定します。
pool-cache-timeout
属性はステートレス・セッションBeanに適用でき、キャッシュされたステートレス・セッションをプール内に保持する時間を設定します。デフォルトはたとえば、pool-cache-timeout
を90秒に設定する場合は、次のようにします。
<session-deployment ... pool-cache-timeout="90" ... </session-deployment>
timeout
属性は、ステートフル・セッションBeanに適用されます。ステートフル・セッションBeanが非アクティブなままこの時間が経過すると、そのBeanはBeanインスタンス・プールから削除されます。デフォルトは1800秒です。たとえば、ステートフル・セッションBeanの非アクティブ・タイムアウトを900秒に設定する場合は、次のようにします。
<session-deployment ... timeout="900" ... </session-deployment>
この方法を使用してこのプロパティを変更する場合は、OC4Jを再起動して変更を適用する必要があります。または、Application Server Controlコンソールを使用して、OC4Jを再起動せずにこのパラメータを動的に変更できます(「Oracle Enterprise Manager 10g Application Server Controlの使用方法」を参照)。
エンティティがBeanインスタンス・プールにキャッシングされる最大時間を設定できます。
次の方法でエンティティのプール・タイムアウトを構成できます。
orion-ejb-jar.xml
ファイルで、エンティティの<entity-deployment>
要素の次の属性を使用してBeanプール・タイムアウトを設定します。
pool-cache-timeout
属性では、エンティティBean実装インスタンスが「プーリング」された(未割当て)状態に保持される時間の長さを設定します。デフォルトは60秒です。この属性をnever
に設定すると、タイムアウトは発生しません。たとえば、エンティティのpool-cache-timeout
を90秒に設定する場合は、次のようにします。
<entity-deployment ... pool-cache-timeout="90" ... </entity-deployment>
この方法を使用してこのプロパティを変更する場合は、OC4Jを再起動して変更を適用する必要があります。または、Application Server Controlコンソールを使用して、OC4Jを再起動せずにこのパラメータを動的に変更できます(「Oracle Enterprise Manager 10g Application Server Controlの使用方法」を参照)。
Application Server Controlを使用して、EJBアプリケーションを起動および停止できます。
アプリケーションの停止中、クライアントはそのアプリケーションにアクセスできません。
詳細は、「Oracle Enterprise Manager 10g Application Server Controlの使用方法」を参照してください。
この項の内容は次のとおりです。
XMLファイルを検証するようにOC4Jを構成するには、OC4J起動スクリプト
(<
OC4J_HOME
>/BIN/oc4j.cmd
またはoc4j
)で使用されるコマンドラインに-validateXML
オプションを追加します。
例31-7に、oc4j.cmd
ファイルでのこのオプションの設定方法を示します。
...
"%JAVA_HOME%¥bin¥java" %JVMARGS% -jar %OC4J_JAR% %CMDARGS% -validateXML
...
このオプションを設定すると、OC4JがXMLファイルを読み取る際に、OC4JはXMLファイルを指定のスキーマに照らして厳密に検証します。OC4Jはエラーをログに記録します(「EJBロギングの構成」を参照)。
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>/
にラッパー・コードを生成し、そのコードをコンパイルし、コンパイルされたクラスを含むJARファイルを作成してから、生成したラッパー・コードを削除します。
generated
生成したラッパー・コードを保持するようにOC4Jを構成できます。ラッパー・コードの検証は、アプリケーションの問題のデバッグに役立ちます。
この項の内容は次のとおりです。
生成コードを保持するようOC4Jを構成するには、OC4Jの起動コマンドラインでシステム・プロパティKeepWrapperCode
をtrue
に設定します。例31-8に、<OC4J_HOME>/bin/
ファイルの場合を示します。
oc4j.cmd
...
"%JAVA_HOME%¥bin¥java" %JVMARGS% -DKeepWrapperCode=true -jar "%OC4J_JAR%" %CMDARGS%
...
KeepWrapperCode
がtrue
の場合、OC4Jは、生成したラッパー・コードをデフォルト・ディレクトリ<OC4J_HOME>/j2ee/home/application-deployments/<ear-name>/
に保持します。または、OC4Jがラッパー・コードの保持に使用するディレクトリを指定することもできます(「生成されたラッパー・コードの指定ディレクトリへの保持」を参照)。
<ejb-name>/generated
アプリケーションをアンデプロイすると、このディレクトリ内のラッパー・コードがOC4Jによって削除されます。
システム・プロパティKeepWrapperCode
をtrue
に設定し、システム・プロパティWrapperCodeDir
をディレクトリ(<specified-wrapper-dir>
と呼ぶ)に設定した場合、OC4Jでは、このディレクトリにラッパー・コードが生成され、アプリケーションをアンデプロイしてもラッパー・コードが保持されます。例31-9に、<OC4J_HOME>/bin/oc4j.cmd
ファイルの場合を示します。
...
"%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
システム・プロパティKeepWrapperCode
をtrue
に設定し、システム・プロパティDoNotReGenerateWrapperCode
をtrue
に設定した場合、OC4Jでは、ラッパー・コードが生成され、アプリケーションをアンデプロイしてもラッパー・コードが保持されます。例31-10に、<OC4J_HOME>/bin/oc4j.cmd
ファイルの場合を示します。この場合、再デプロイ時には、OC4Jはラッパー・コードを再生成せずに、かわりにデフォルト・ディレクトリ
(「生成されたラッパー・コードのデフォルト・ディレクトリへの保持」を参照)または指定したディレクトリ(「生成されたラッパー・コードの指定ディレクトリへの保持」を参照)に保持されたバージョンのラッパー・コードを使用します。
...
"%JAVA_HOME%¥bin¥java" %JVMARGS% -DKeepWrapperCode=true -DDoNotReGenerateWrapperCode=true -jar "%OC4J_JAR%" %CMDARGS%
...
これらのシステム・プロパティを使用すると、デバッグ文を追加するなど、ラッパー・コードを変更できます。再デプロイ時に、OC4Jは、ユーザーに変更された保持バージョンのラッパー・コードを再コンパイルして使用します。
生成されたラッパー・コードの保持を無効化するには、システム・プロパティKeepWrapperCode
をfalse
に設定し、システム・プロパティDoNotReGenerateWrapperCode
をfalse
に設定します。または、これらのシステム・プロパティを設定しないままとします。
|
Copyright © 2002, 2008 Oracle Corporation. All Rights Reserved. |
|