ランタイム環境での既知の問題および制約事項
Liberty プロファイルのランタイム環境で作業する際に適用される既知の問題および制約事項がいくつかあります。

『Developer Tools の既知の問題および制約事項』も参照してください。
既知の問題および制約事項のリスト:
- 一般的な制約事項:
- Java の最小サポート・レベル
- インストール・ディレクトリー名およびパスに 非 ASCII 文字は使用できない
- 実行時に JDBC データ・ソースを変更すると、JPA で障害が発生することがある
- getRealPath で返される結果に依存するアプリケーションは、 WAR ファイルではなく、展開されたアプリケーションとしてデプロイする必要がある
- WebSphere Application Server の完全プロファイル のスクリプトは Liberty プロファイルで動作しない
- fileset の制約事項
- Java SDK のクラスのオーバーライド
共有ライブラリーを非公開にしたとき、サーバーが停止するまでそれを削除できない
- java:global 検索の制約事項
- 組み込み Liberty サーバーでアプリケーションが開始されない
WebSphere MQ リソース・アダプターおよび汎用 JCA サポートに関連した制約事項
- 「dropins (ドロップイン)」ディレクトリー内のアプリケーションのバージョン管理はできない
- Liberty フィーチャーに固有の制約事項:
Admin Center フィーチャーの制約事項
- appSecurity-2.0 フィーチャーの制約事項
- Bean 検証フィーチャーの制約事項
- 動的キャッシュ・フィーチャーの制約事項
- ejbLite-3.1 フィーチャーの制約事項
eventLogging-1.0 フィーチャーの制約事項
jpa-2.1 フィーチャーの制約事項
- jsp-2.2 フィーチャーの制約事項
- monitor-1.0 フィーチャーの制約事項
requestTiming-1.0 フィーチャーの制約事項
- wmqJmsClient-1.1 フィーチャーの制約事項
wmqJmsClient-2.0 フィーチャーの制約事項
concurrent-1.0 フィーチャーの制約事項
jacc-1.5 フィーチャーの制約事項
- dataSource、jdbcDriver、connectionManager、および JDBC ベンダー・プロパティーを実行時に変更すると、JPA で障害が発生する可能性がある
Java の最小サポート・レベル
- Java SE 6 ランタイム環境
- IBM® の Java SDK の場合、サポートされる最小レベルは 6.0 (J9 2.6) SR 1 です。Oracle の JDK の場合、サポートされる最小レベルは Java 6 Update 26 です。
- Java SE 7 ランタイム環境
- IBM の Java SDK の場合、サポートされる最小レベルは IBM Runtime Environment, Java Technology Edition 7.0.4.1 です。 Windows および Linux の Oracle の JDK の場合、サポートされる最小レベルは Java SDK/JRE/JDK 7.0.17 です。 Mac OS X の Oracle の JDK の場合、サポートされる最小レベルは Java SDK/JRE/JDK 7.0 Update 15 です。
Java SE 8 ランタイム環境
- IBM の Java SDK の場合、サポートされる最小レベルは IBM SDK, Java Technology Edition バージョン 8 です。Oracle の JDK の場合、サポートされる最小レベルは Java 8 Update 25 です。
分散プラットフォームでは、32 ビットまたは 64 ビットの Java がサポートされます。
Windows システムおよび
Linux システムでは、
Oracle の JDK または IBM の JDK のいずれかを使用することができます。
Windows または Linux でアプリケーションを開発していて、
WebSphere Application Server の完全プロファイルで稼働するサーバーにそれらのアプリケーションをデプロイする予定の場合は、
IBM の JDK を使用してください。
HP システムおよび Mac OS では、Oracle の JDK を使用してください。

![[8.5.5.2 以降]](../ng_v8552.gif)
![[8.5.5.2 以降]](../ng_v8552.gif)
インストール・ディレクトリー名およびパスに 非 ASCII 文字は使用できない
最近の JVM は、-jar コマンドおよび -javaagent コマンドでの非 ASCII 文字の使用を完全にはサポートしていません。 インストール・ディレクトリー名およびパスには ASCII 文字のみを使用してください。
実行時に JDBC データ・ソースを変更すると、JPA で障害が発生することがある
データベース・ディクショナリー・タイプがプロパティーで指定されない場合、最初のエンティティー・マネージャーが作成されてデータベース接続が行われたときに、OpenJPA がそのタイプの検出および算出を行います。 このデータベース・ディクショナリー・タイプは、その後作成されるすべてのエンティティー・マネージャーに使用されます。 アプリケーションの実行中に JDBC データ・ソースが変更されると、 エンティティー・マネージャー・ファクトリーはこの変更を検出せずに、新しいデータ・ソースの操作に古いディクショナリーを使用し続けます。 データベースが別のベンダーに変更された場合、これにより障害が発生する可能性があります。
データベースを別のベンダーに変更した場合は、アプリケーションを再始動してください。
dataSource、jdbcDriver、connectionManager、および JDBC ベンダー・プロパティーを実行時に変更すると、JPA で障害が発生する可能性がある
サーバーの稼働中に dataSource、jdbcDriver、connectionManager、または いずれかの JDBC ベンダー・プロパティー・リスト (例えば、properties.db2.jcc または properties.oracle など) の構成を更新すると、 J2CA8040E の障害が発生することがあります。 これらの障害では、複数の dataSource エレメントを単一の connectionManager に関連付けられないことに言及しています。 構成で 1 つの connectionManager だけを dataSource エレメントに関連付けている場合にも、これらの障害は生成されます。
これらのいずれかの JDBC リソースの構成を更新したら、サーバーを再始動してください。
getRealPath で返される結果に依存するアプリケーションは、 WAR ファイルではなく、展開されたアプリケーションとしてデプロイする必要がある
Java EE 仕様では、コンテンツが Web アーカイブ (WAR) ファイルから使用可能になっている場合に、 getRealPath() メソッドが null 値を返すことを規定しています。 WAR ファイルを Liberty プロファイルにデプロイした場合、 プロファイルはアーカイブ・ファイルをディレクトリー構造に自動的に解凍しません。 そのため、アプリケーションを開始できないことがあります。 getRealPath() で返される結果にアプリケーションが依存する場合には、 アプリケーションを WAR ファイルではなく、展開された Web アプリケーションとしてデプロイする必要があります。 例えば、手動で WAR ファイルを解凍して、展開されたアプリケーションを dropins ディレクトリーにコピーすることができます。
WebSphere Application Server の完全プロファイル のスクリプトは Liberty プロファイルで動作しない
WebSphere Application Server の完全プロファイル の bin ディレクトリーの下にあるスクリプトはどれも、Liberty プロファイルの管理には使用できません。
fileset の制約事項
- fileset は、ベース・ディレクトリーのサブディレクトリーを再帰的に探索しません。
例えば、次の指示はサポートされません。
<fileset id="testFileset" dir="\temp" includes="**\a.jar"/> <fileset id="testFileset" dir="\temp" includes="a\a.jar"/> <fileset id="testFileset" dir="\temp" includes="*\a.jar"/> <fileset id="testFileset" dir="\temp" includes="a\b\a.jar"/>
Java SDK のクラスのオーバーライド
- javac を使用してコマンド行からビルドする場合は、javac -endorseddirs オプションおよび ${wlp.install.dir}/dev/specs ディレクトリー内の JAR ファイルを使用してコードをコンパイルしてください。
- Apache Ant を使用してビルドする場合は、javac タスクの <compilerarg> 子エレメントおよび ${wlp.install.dir}/dev/specs ディレクトリー内の JAR ファイルを使用してコードをコンパイルしてください。
ビルド・スクリプトでは、-endorseddirs オプションと ${wlp.install.dir}/dev/specs ディレクトリーを別々の <compilerarg> エレメントとして指定します。以下に例を示します。
<javac srcdir="src" destdir="classes"/> <compilerarg value="-endorseddirs"/> <compilerarg value="${wlp.install.dir}/dev/specs"/> </javac>
- Apache Maven を使用してビルドする場合は、Maven コンパイラー・プラグインの endorseddirs エレメントおよび ${wlp.install.dir}/dev/specs ディレクトリー内の JAR ファイルを使用してコードをコンパイルしてください。
以下に例を示します。
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.6</source> <target>1.6</target> <compilerArguments> <endorseddirs>${wlp.install.dir}/dev/specs</endorseddirs> </compilerArguments> </configuration> </plugin>

共有ライブラリーを非公開にしたとき、サーバーが停止するまでそれを削除できない
サーバーから共有ライブラリーを非公開にした場合、ライブラリー JAR ファイルはサーバーから即時に解放されません。 そのため、オペレーティング・システムは、そのファイルがもう使用されていないことを認識しておらず、そのファイルの削除を許可しません。 次にサーバーを停止すると、ライブラリー JAR ファイルが解放され、ファイルを削除できるようになります。
java:global 検索の制約事項
java:global 検索でアプリケーション内に定義されたリソースは、現行サーバーにデプロイ済みのアプリケーションによって宣言された名前にアクセスする場合のみ使用可能です。
appSecurity-2.0 フィーチャーの制約事項
- EJB アプリケーションに対して、ibm-ejb-jar-ext.xml ファイルの拡張設定において SYSTEM_IDENTITY の run-as-mode は サポートされません。
- getCallerIdentity API は、singleton セッション Bean にはサポートされていません。
- ロール名は HttpServletRequest.isUserInRole および EJBContext.isCallerInRole API によって参照するか、または、 デプロイメント記述子内で @DeclareRoles アノテーションまたは <security-role/> エレメントを 使用して最初にロール名を宣言することなく、デプロイメント記述子内のエレメントによって参照できます。ただし、ロールは、完全プロファイルで使用する 前に、宣言されている必要があります。
組み込み Liberty サーバーでアプリケーションが開始されない
組み込み Liberty サーバーを開始する Java プロセスが、libertyInstallDir/bin/tools/ws-javaagent.jar を指す -javaagent JVM 引数を使用して開始されたことを確認してください。-javaagent JVM 引数が使用されていない場合は、サーバー・ランタイムは開始されますが、明確な例外なしに、アプリケーションは開始に失敗します。
![[8.5.5.6 以降]](../ng_v8556.gif)
WebSphere MQ リソース・アダプターおよび汎用 JCA サポートに関連した制約事項
WebSphere® MQ リソース・アダプターは、wasJmsClient-1.1 フィーチャーまたは wasJmsClient-2.0 フィーチャーまたは汎用 JCA サポートを使用して、WebSphere Application Server Liberty プロファイル内で使用することができます。
Liberty プロファイルのバージョン 8.5.5 以降で WebSphere MQ リソース・アダプターのバージョン 7.5 を使用できます。JMS 2.0 リソース・アダプターに基づいている WebSphere MQ リソース・アダプターのバージョン 8.0 を使用する場合、JMS 2.0 リソース・アダプターとの互換性がある最新の Liberty プロファイルのバージョンを使用してください。
- Liberty プロファイルのバージョン 8.5.5.2 では、wasJmsClient-1.1 フィーチャーは、IBM MQ リソース・アダプターのバージョン 7.5.0.5 以降とともに使用する必要があります。
- Liberty プロファイルのバージョン 8.5.5.6 では、wasJmsClient-2.0 フィーチャーは、IBM MQ リソース・アダプターのバージョン 8.0.0.3 以降とともに使用する必要があります。
WebSphere MQ リソース・アダプターと Liberty プロファイル間のバージョン互換性情報について詳しくは、WebSphere MQ リソース・アダプターを入手するための参照資料を参照してください。
- IBM® WebSphere MQ リソース・アダプターを z/OS® 上で実行するには、wasJmsClient-1.1 または wasJmsClient-2.0 フィーチャーを使用する必要があります。
- トレースおよびロギングは、汎用 JCA を使用して Liberty トレース・システム内に組み込まれていません。トレースは別のファイルに書き込まれ、システム・プロパティーを設定して使用可能にする必要があります。トレースを使用可能にする手順は、Java™ Standard Environment での JMS トレース機能用の WebSphere MQ クラスを構成する場合と同じです。『Java 標準環境トレース・スタンザ』を参照してください。
「dropins (ドロップイン)」ディレクトリー内のアプリケーションのバージョン管理はできない
「dropins (ドロップイン)」ディレクトリー内のアプリケーションの場合、 アプリケーション・モニターはファイル名とファイル拡張子を使用して、アプリケーションのタイプを判別し、 アプリケーション ID とアプリケーション名を生成します。そのため、ファイル名またはファイル拡張子を使用して、アプリケーションのバージョン番号を指定することはできません。実稼働環境では、「dropins (ドロップイン)」ディレクトリーの仕様はお勧めできません。
Admin Center フィーチャーの制約事項
Bean 検証フィーチャーの制約事項
- OSGi アプリケーション内の Bean 検証はサポートされません。
![[8.5.5.6 以降]](../ng_v8556.gif)
- OSGi アプリケーション内の Bean 検証はサポートされません。
- beanValidation-1.0 フィーチャーとともに、validation.xml ファイルのカスタム ConstraintValidatorFactory 実装を提供するアプリケーションは、Bean Validation 1.1 API に対してコンパイルされません。
動的キャッシュ・フィーチャーの制約事項
- キャッシュ複製はサポートされません。
- ハイパフォーマンスのディスク・キャッシング・モードのみがランダムおよびサイズ・ベースの排除手法でサポートされます。
- Web サービス・クライアント・サイドとサーバー・サイドのキャッシングおよび cachespec.xml ファイル内のポートレット・キャッシュはサポートされません。
- SingleThreadModel サーブレットのサーブレット・キャッシングはサポートされません。
- プロパティー・ファイルを使用したキャッシュ構成の定義は、Enterprise JavaBeans (EJB) のみを含む JAR ファイルではサポートされません。
- ヒープ・キャッシュ・サイズの制限は 32 ビットの Java 仮想マシン (JVM) でのみ有効です。
ejbLite-3.1 フィーチャーの制約事項
- バージョン 3.0 より前の EJB モジュールはサポートされません。 この制約事項は、.xml ファイル形式ではなく .xmi ファイル形式を使用したバインディングおよび拡張がサポートされないことも表しています。
- セッション Bean が ejblocal 名前空間にバインドされません。つまり、JNDI 検索および ejb-ref バインディング名は、java:global 名、java:app 名、または java:module 名を使用する必要があります。simple-binding-name エレメントとインターフェース binding-name エレメントは、ibm-ejb-jar-bnd.xml ファイルで無視されます。
- ステートフル Bean 非活性化ディレクトリーは構成できません。 ファイルはサーバー作業域に非活性化されます。
![[8.5.5.6 以降]](../ng_v8556.gif)
eventLogging-1.0 フィーチャーの制約事項
- eventLogging-1.0 フィーチャーを実行中のサーバーから削除すると、デプロイ済み Web アプリケーションが再始動されます。
![[8.5.5.6 以降]](../ng_v8556.gif)
jpa-2.1 フィーチャーの制約事項
jpa-2.1 フィーチャーの場合、CORBA/RMI-IIOP を介した JPA エンティティーの交換では、通信の両側で同一の JPA フィーチャー・レベルを有効にする必要があります。
jsp-2.2 フィーチャーの制約事項
- 変換された JSP ファイルをメモリーにのみ保管する useInMemory 構成オプションのサポートはありません。
monitor-1.0 フィーチャーの制約事項
- このフィーチャーが server.xml ファイルから 削除される場合、JAX-WS アプリケーションが機能するようサーバーを再始動する必要があります。
![[8.5.5.6 以降]](../ng_v8556.gif)
requestTiming-1.0 フィーチャーの制約事項
- requestTiming-1.0 フィーチャーを実行中のサーバーから削除すると、デプロイ済み Web アプリケーションが再始動されます。
- requestTiming-1.0 フィーチャーは、アクティブ化されている場合に、DayTrader アプリケーションで測定すると、最大可能アプリケーション・スループットに 8% の影響を与えることが分かっています。 ご使用のアプリケーションへの影響ではこの数値が前後する可能性がありますが、パフォーマンスの低下が顕著になる可能性があることに留意する必要があります。
wmqJmsClient-1.1 フィーチャーの制約事項
- Windows 環境変数の PATH 変数が WebSphere MQ インストール済み環境の bin ディレクトリーを指すように手動で設定する必要があります。 アプリケーションが BINDING 接続モードを使用する場合は、この path 変数を設定しなければなりません。
- WebSphere MQ classes for Java (通常、 Base Java と呼ばれます) は、 wmqJmsClient-1.1 フィーチャーには含まれません。これは、他のアプリケーション・サーバーのリソース・アダプターに含まれていますが、 Java Enterprise Edition 環境の Base Java API には推奨されません。 詳しくは、『Using WebSphere MQ Java Interfaces in J2EE/JEE Environments』を参照してください。
- wmqJmsClient-1.1 フィーチャーに対しては BINDINGS_THEN_CLIENT トランスポート・タイプ の WebSphere MQ リソース・アダプターはサポートされていません。
- wmqJmsClient-1.1 フィーチャーに対しては Advanced Messaging Security (AMS) フィーチャー は組み込まれていません。
![[8.5.5.6 以降]](../ng_v8556.gif)
wmqJmsClient-2.0 フィーチャーの制約事項
- Windows 環境変数の PATH 変数が WebSphere MQ インストール済み環境の bin ディレクトリーを指すように手動で設定する必要があります。 アプリケーションが BINDING 接続モードを使用する場合は、この path 変数を設定しなければなりません。
- WebSphere MQ classes for Java (通常、 Base Java と呼ばれます) は、 wmqJmsClient-2.0 フィーチャーには含まれません。これは、他のアプリケーション・サーバーのリソース・アダプターに含まれていますが、 Java Enterprise Edition 環境の Base Java API には推奨されません。 詳しくは、『Using WebSphere MQ Java Interfaces in J2EE/JEE Environments』を参照してください。
- wmqJmsClient-2.0 フィーチャーに対しては BINDINGS_THEN_CLIENT トランスポート・タイプ の WebSphere MQ リソース・アダプターはサポートされていません。
concurrent-1.0 フィーチャーの制約事項
concurrent-1.0 フィーチャーでは、以下の制約事項が適用されます。
タイプが securityContext のスレッド・コンテキストで、JAAS ログイン・モジュールを使用して追加されていないサブジェクト内のカスタム情報は、伝搬されません。例えば、TAI によって追加されたカスタム・プリンシパルが送信者のサブジェクトに含まれている場合、伝搬されるサブジェクトに、このカスタム・プリンシパルは含まれません。
![[8.5.5.6 以降]](../ng_v8556.gif)
jacc-1.5 フィーチャーの制約事項
- アプリケーションの EAR ファイルの ibm-application-bnd.xml ファイルまたは ibm-application-bnd.xmi ファイルに含まれている許可情報 (authorizations 属性の users 属性および groups 属性)。
- server.xml ファイル内の許可情報 (application-bnd エレメント内の security-role 属性の user、group、および special-subject の各属性)。