18.6 コンテナ拡張ライブラリおよびサーバ起動・停止フック機能利用時の制限事項
コンテナ拡張ライブラリおよびサーバ起動・停止フック機能を利用する場合の制限事項を示します。
-
アプリケーションのポータビリティについて
コンテナ拡張ライブラリはJ2EEの仕様外の機能です。したがって,コンテナ拡張ライブラリを使用した場合は,アプリケーションとしての移行性は低下します。
-
コンテナ拡張ライブラリの呼び出しについて
コンテナ拡張ライブラリは,サーブレット,JSP,およびEnterprise Beanから呼び出されることを前提としています。次に示す利用形態は適用できないので,注意してください。
-
コンテナ拡張ライブラリおよびサーバ起動・停止フック機能から,EJB-JARファイル,WARファイルを参照する(EJB-JARファイル,WARファイルのクラスが,コンテナ拡張ライブラリのクラスを継承することも含む)。
-
コンテナ拡張ライブラリおよびサーバ起動・停止フック機能から,J2EEコンテナの機能を利用する(Enterprise Bean,JNDI,JDBCなどのAPIを呼び出す)。
-
EJB-JARファイルおよびWARファイルのクラスから,直接サーバ起動・停止フック機能を参照する(コンテナ拡張ライブラリのクラスが,EJB-JARファイル,WARファイルのクラスを継承することも含む)。
-
-
ファイル,ディレクトリのアクセスについて
コンテナ拡張ライブラリおよびサーバ起動・停止フック機能から,次に示すファイルやディレクトリを操作しないでください。
-
Application Serverのインストールディレクトリ以下のファイルやディレクトリ
-
J2EEサーバの作業ディレクトリ以下のファイルやディレクトリ
-
-
JNI機能の利用について
コンテナ拡張ライブラリおよびサーバ起動・停止フック機能からJNI機能を利用する場合,J2EEサーバでは,ネイティブメソッドでの処理を管理できません。例えば,ネイティブメソッドでメモリアクセス違反があった場合,J2EEサーバは,JavaVMのプロセスごと異常終了します。
-
TPBrokerの利用について
-
コンテナ拡張ライブラリおよびサーバ起動・停止フック機能では,TPBrokerのサーバ機能を利用できません。これは,J2EEサーバ上にTPBrokerのCORBAオブジェクトを活性化できないためです。
-
TPBrokerのDII機能は利用できません。
-
-
インストール型オプションパッケージの使用について
コンテナ拡張ライブラリおよびサーバ起動・停止フック機能は,インストール型オプションパッケージとして使用してはいけません。インストール型オプションパッケージとは,次のディレクトリに置かれたファイルです。
-
<Application Serverのインストールディレクトリ>\jdk\jre\lib\extに置かれたJARファイル
-
<Application Serverのインストールディレクトリ>\jdk\jre\binに置かれたネイティブコードバイナリ
-
-
シャットダウンフックの登録について
コンテナ拡張ライブラリおよびサーバ起動・停止フック機能では,シャットダウンフックを登録しないでください。
-
コンテナ拡張ライブラリとして使用できないライブラリについて
次の表に示すライブラリをコンテナ拡張ライブラリとしてクラスパスに追加することはできません。ただし,JBoss Loggingだけは,ユーザアプリケーションから直接参照できます。
表18‒6 コンテナ拡張ライブラリとしてクラスパスに追加できないライブラリ ライブラリ名
パッケージ名
参照可否
JBoss Logging
org.jboss.logging
可
EclipseLink JPA
org.eclipse.persistence
可
ただし,<cosminexus.home>/CC/javaee/1100/lib/jpa-provider.jarをクラスパスに追加している場合は,ユーザアプリケーションからの直接参照不可。
Jersey
com.sun.research.ws
可
ただし,<cosminexus.home>/CC/javaee/1100/lib/jaxrs-impl.jarをクラスパスに追加している場合は,ユーザアプリケーションからの直接参照不可。
jersey.repackaged
org.glassfish.jersey
HK2
org.glassfish.hk2
org.jvnet.tiger_types
org.jvnet.hk2
Javassist
javassist
Jackson
com.fasterxml.jackson
可
ただし,<cosminexus.home>/CC/javaee/1100/lib/jaxrs-jackson.jarをクラスパスに追加している場合は,ユーザアプリケーションからの直接参照不可。
GlassFish
org.glassfish.cdi.transaction
不可
Google Guava
com.google.common
Hibernate Validator
org.hibernate.validator
Java ClassMate
com.fasterxml.classmate
Java Batch Reference Implementation (jbatch)
com.ibm.jbatch
JBoss classfilewriter
org.jboss.classfilewriter
JSR 236 (Concurrency Utilities for Java EE) RI
org.glassfish.enterprise.concurrent
JSR 353 (JSON Processing) RI
org.glassfish.json
Mojarra
com.sun.faces
Unified Expression Language RI
com.sun.el
Weld
org.jboss.weld
Tyrus
org.glassfish.tyrus
-
ハンドラ関数の設定について(Windowsの場合)
Windowsでコンテナ拡張ライブラリを使用してプロセスのハンドラ関数を設定する場合,CTRL+BREAK信号を処理するハンドラ関数では,TRUEを返したり,DLLの終了処理をしたり,ExitProcess関数などを呼び出してプロセスを終了したりしないでください。
J2EEサーバ,Component Containerを利用するほかのプログラムなどが動作しなくなるおそれがあります。
-
C++ライブラリについて(Linuxの場合)
Linuxでコンテナ拡張ライブラリをC++で実装している場合,そのライブラリは,Red Hat Enterprise Linux 4以降でビルドしておく必要があります。Red Hat Enterprise Linux 3でビルドしたC++のライブラリは実行できません。