アプリケーション・デプロイメントの問題
アプリケーションをデプロイ、インストール、またはプロモートする際に、問題が発生することがあります。 このトピックでは、問題を解決する方法を示します。
どのような問題が発生しましたか?
- アプリケーションが表示されない
- デプロイされたアプリケーションを保管できない
アセンブリー・ツール、管理コンソール、または wsadmin ツールで「java.lang.RuntimeException: Failed_saving_bytes_to_wor_ERROR_」エラー
- wsadmin コマンド $AdminApp installInteractive または $AdminApp install を実行中の WASX7015E エラー
- EJB 3.0 モジュール内の CMP または BMP エンティティー Bean をインストールできない
- アセンブリー・ツールで生成したデータ定義言語 (DDL) が、ターゲット・プラットフォーム上で SQL エラーをスローする
- ADMA0004E: 妥当性検査が失敗しました
- アーカイブ・ファイルのリソース WEB-INF/ibm-web-bnd.xmi をロードできない
- インストール環境のモジュール module_name の ObjectName anObject に対し、有効なターゲットが指定されていない
- すべてのアプリケーションをデプロイメント・マネージャーにアップロードするための「addNode -includeapps」オプションが表示されない
- 管理コンソールでエンタープライズ・アプリケーションをインストールすると「 Timeout!!!」というエラーが表示される
- EJB モジュール を含むアプリケーションのデプロイ時の NameNotFoundException メッセー ジ
アプリケーションのインストール時に EJB デプロイを呼び出すと、 例外が発生する
- バージョン 5.x 以前用に生成された EJB JAR ファイルのインストー ル時に、コンパイル・エラーを受け取り、EJB デプロイが失敗する
- 文書のアップロード中に、 addNode -includeapps が OutOfMemoryError 例外で失敗する
- デプロイメント・マネージャーの OutOfMemory 例外
- アプリケーションを別のマシンに インストールすると、稼働しない
- アプリケーションの更新時に、 すべてのアプリケーション・ファイルが 1 つのファイルで置き換えられてしまう
- アプリケーション、エンタープライズ Bean モジュール、 または他のリソース用のコンソールに表示するように指定した論理名に、 - / ¥ : * ? " < > | などの無効文字が含まれていないかどうかを確認します。
- -local フラグを付けた wsadmin $AdminApp install コマンドを使用してアプリケーションをインストールした場合は、サーバーを再始動するか、 またはそのコマンドを -local フラグを付けずに再実行します。
類似した問題が見つからない場合、 あるいは提供された情報でその問題が解決しない場合は、 問題が確認され、文書化されているかを調べてください。
使用可能な オンライン・サポートにはヒントや技術情報、フィックスが記載されているので、参考にしてください。該当する問題が見当たらない場合は 、IBM からのトラブルシューティングのヘルプを参照してください。
アプリケーションが表示されない
アプリケーションが wsadmin ツールを使用してインストールされましたが、そのアプリケーションが
で表示されません。- app_server_root/installedApps ディレクトリーに、そのアプリケーションのサブディレクトリーがあることを確認します。
- $AdminApp list コマンドを実行して、
表示された項目の中に当該アプリケーションがないことを確認します。
- bin ディレクトリーで 、wsadmin.bat または wsadmin.sh コマンドを実行します。
- wsadmin プロンプトから $AdminApp list と入力し、 表示された項目の中に問題のアプリケーションがないことを確認します。
- wsadmin ツールを使用してアプリケーションを再インストールします。終了する前に、wsadmin ツールで $AdminConfig save コマンドを実行してください。
デプロイされたアプリケーションを保管できない
デプロイされたアプリケーションを保存できない場合は、オープンされているファイル数がオペレーティング・システムの制限を超えている可能性があります。
![[Linux]](../images/linux.gif)
ulimit -n number_of_files
各プロセスでファイルの最大数を調整する権限を持つのはルートだけです。 以下のステップを実行して、規律を使用してファイルをクローズするようにアプリケーションを変更します。
- ファイルをオープンして作業を完了したら、ファイルの close メソッドを呼び出して、ファイル・ハンドルが再びオペレーティング・システムに解放されるようにします。
- 例えば、java.io.FileInputStream クラスおよび FileOutputStream クラスを使用して、それらの close メソッドを呼び出し、ストリームに関連付けられたすべてのシステム・リソースを解放することができます。
![[Windows]](../images/windows.gif)
アセンブリー・ツール、管理コンソール、または wsadmin ツールで「java.lang.RuntimeException: Failed_saving_bytes_to_wor_ERROR_」エラー
アセンブリー・ツールで デプロイ済みコードを生成しようとしているとき、管理コンソールにアプリケーションまたはモジュールを インストールしているとき、あるいは wsadmin ツールを使用してアプリケーションまたはモジュールを インストールしているときにこのエラーが発生した場合は、システムの一時ファイルのパスが 長すぎる可能性があります。
この問題を確認するには、 システムの TEMP および TMP 環境変数を調べます。 環境変数が長いと、EJB デプロイメント・ツールがアクセスするファイル名のパスが長くなります。
- すべての WebSphere Application Server プロセスを停止し、すべての DOS プロンプトを閉じる。
- 環境変数 TEMP および TMP を、 C:¥TMP や C:¥TEMP のように短いものに設定する。
- アプリケーションを再インストールする。
wsadmin コマンド $AdminApp installInteractive または $AdminApp install を実行中の WASX7015E エラー
この問題には、考えられる原因が 2 つあります。
- エラーの全文が以下のような場合:ファイルとパス名の指定が間違っています。 この場合は、パスにスペースが含まれているため、 wsadmin プログラムによって、複数のパラメーターがあると解釈されています。
WASX7015E: Exception running command: "$AdminApp installInteractive C:/Documents and Settings/ myUserName/Desktop/MyApp/myapp.ear"; exception information: com.ibm.bsf.BSFException: error while evaluating Jacl expression: can't find method "installInteractive" with 3 argument(s) for class "com.ibm.ws.scripting.AdminAppClient"
WASX7015E: Exception running command: "$AdminApp installInteractive Documents and Settings/ myUserName/Desktop/MyApp/myapp.ear"; exception information: com.ibm.bsf.BSFException: error while evaluating Jacl expression: can't find method "installInteractive" with 3 argument(s) for class "com.ibm.ws.scripting.AdminAppClient"
.ear ファイルのパスを正しく入力してください。 この場合は、次のようにパスを二重引用符で囲みます。
$AdminApp installInteractive "C:¥Documents and Settings¥myUserName¥Desktop¥MyApps¥myapp.ear"
$AdminApp installInteractive "Documents and Settings/myUserName/Desktop/MyApps/myapp.ear"
- エラーの全文が以下のような場合:アプリケーション・パスが誤って指定されています。 この場合は、パス内の分離文字として、「スラッシュ」(/) を使用する必要があります。
WASX7015E: Exception running command: "$AdminApp installInteractive c:¥MyApps¥myapp.ear "; 例外情報: com.ibm.ws.scripting.ScriptingException: WASX7115E: 次の入力ファイルを読み取れません。 "c:¥WebSphere¥AppServer¥bin¥MyAppsmyapp.ear"
WASX7015E: Exception running command: "$AdminApp installInteractive MyApps¥myapp.ear "; 例外情報: com.ibm.ws.scripting.ScriptingException: WASX7115E: 次の入力ファイルを読み取れません。 "WebSphere¥AppServer¥bin¥MyAppsmyapp.ear"
EJB 3.0 モジュール内の CMP または BMP エンティティー Bean をインストールできない
コンテナー管理パーシスタンス (CMP) または Bean 管理パーシスタンス (BMP) エンティティー Bean が含まれている EJB 3.0 モジュールをインストールすると、そのインストールは失敗します。
この製品は、EJB 3.0 モジュールにパッケージ化された CMP または BMP エンティティー Bean が含まれているアプリケーションのインストールをサポートしていません。 CMP または BMP エンティティー Bean は、EJB 2.1 以前のモジュールにパッケージ化する必要があります。
- CMP または BMP エンティティー Bean を、EJB 2.1 以前のモジュールにパッケージ化します。
- EJB 2.1 以前のモジュールを持つアプリケーションをインストールします。
アセンブリー・ツールで生成したデータ定義言語 (DDL) が、ターゲット・プラットフォーム上で SQL エラーをスローする
- DDL ステートメントをブラウズして、特定のユーザー ID およびパスワードの依存関係を調べ、必要があれば、訂正する。
- DDL ステートメントをブラウズして、特定のサーバー名の依存関係を調べ、必要があれば、訂正する。
- ベンダーのメッセージ参照を参照して、特定の SQL エラーに関する原因と推奨アクションを調べる。 IBM DB2® の場合、メッセージ参照をオンラインで確認できます。
SQL0104N An unexpected token "CREATE TABLE AGENT (COMM DOUBLE, PERCENT DOUBLE, P" was found following " ". Expected tokens may include: " ". SQLSTATE=42601
vi エディターで DDL を編集して、 各行頭の文字 Ctl-M を除去する。
Linux プラットフォーム上でアプリケーションの EAR ファイル用の デプロイメント・コードを再生成する。
EDTF を使用してファイルを編集する。
ADMA0004E: 妥当性検査が失敗しました
AppDeploymentException: [ADMA0014E: Validation failed.
ADMA0004E: Validation error in task Specifying the Default Datasource for EJB Modules JNDI name is not
specified for module beannameBean Jar with URI filename.jar,META-INF/ejb-jar.xml. You have not specified the
data source for each CMP bean belonging to this module. Either specify the data
source for each CMP beans or
specify the default data source for the entire module.]
原因の 1 つとしては、WebSphere Application Server バージョン 4.0 では、
各 JAR 内で CMP Bean ごとにデータ・ソースを定義する必要があったことが考えられます。
バージョン 5.0 およびそれ以降のリリースでは、1 つのコンテナー管理パーシスタンス (CMP) Bean に対して 1 つのデータ・ソースを指定することも、JAR ファイル内のすべての CMP Bean に対して 1 つのデフォルト・データ・ソースを指定することもできます。
つまり、インストールの対話 (管理コンソール内のインストール・ウィザードなど) ではデータ・ソース・フィールドはオプションですが、インストールの最後に実行される検証では、少なくとも 1 つのデータ・ソース・フィールドが指定されているかどうかがチェックされます。この問題を解決するには、再度インストールを実行して、デフォルトのデータ・ソースを指定するか、 または CMP タイプのエンタープライズ Bean ごとにそれぞれデータ・ソースを指定します。
wsadmin ツールを 使用する場合は、$AdminApp installInteractive filename コマンドを使用して、 インストール中にデータ・ソースを要求するプロンプトが出されるようにするか、またはデータ・ソースを 応答ファイルで提供します。
$AdminApp install コマンドに対するオプションとしてデータ・ソースを指定します。
この構文の詳細については、 wsadmin スクリプトによるエンタープライズ・アプリケーションのインストールを参照してください。
アーカイブ・ファイルのリソース WEB-INF/ibm-web-bnd.xmi をロードできない
Web アプリケーション tmp.war は、 WebSphere Application Server バージョン 5.0 および 5.1 上ではインストールできますが、WebSphere Application Server バージョン 6.0 以降のサーバーではインストールに失敗します。アプリケーションのインストールが失敗するのは、WEB-INF/ibm-web-bnd.xmi ファイルに、基礎となる WCCM モデルが認識しなくなった xmi タグが含まれているためです。
以下のエラー・メッセージが表示されます。
IWAE0007E アーカイブ "tmp.war" のリソース "WEB-INF/ibm-web-bnd.xmi" をロードできませんでした
[2/24/05 14:53:10:297 CST] 000000bc SystemErr R
AppDeploymentException:
com.ibm.etools.j2ee.commonarchivecore.exception.ResourceLoadException:
IWAE0007E アーカイブ "tmp.war" のリソース "WEB-INF/ibm-web-bnd.xmi" をロードできませんでした
[2/24/05 14:53:10:297 CST] 000000bc SystemErr R
com.ibm.etools.j2ee.commonarchivecore.exception.ResourceLoadException:
IWAE0007E アーカイブ "tmp.war" のリソース "WEB-INF/ibm-web-bnd.xmi" をロードできませんでした
!Stack_trace_of_nested_exce!
com.ibm.etools.j2ee.exception.WrappedRuntimeException: Exception occurred loading
WEB-INF/ibm-web-bnd.xmi
!Stack_trace_of_nested_exce!
この問題に対処するには、ibm-web-bnd.xmi ファイルから xmi:type=EJBLocalRef タグを除去します。 このタグは以前に相互文書参照タイプのマッチングに使用されていたため、タグを除去してもアプリケーションには影響しません。 これで、アプリケーションが WebSphere Application Server バージョン 5.1 以降のリリースで機能するようになりました。

ただし、Java EE 5 以降のモジュールが、Java EE 5 より前のファイルを含み .xmi ファイル名拡張子を使用する アプリケーション内に存在することは可能です。
ibm-webservices-ext.xmi、ibm-webservices-bnd.xmi、ibm-webservicesclient-bnd.xmi、ibm-webservicesclient-ext.xmi、 および ibm-portlet-ext.xmi ファイルは、引き続き .xmi ファイル拡張子 を使用します。
sptcfgインストール環境のモジュール module_name の ObjectName anObject に対し、有効なターゲットが指定されていない
このエラーは、 アプリケーションをインストールするターゲットのセル、ノード、サーバー、 またはクラスターが正しく指定されていない場合に、クラスター化された環境内で発生する可能性があります。 例えば、ターゲットのつづりを誤った場合などに発生します。
この問題を修正するには、 ターゲットの名前を実際の WebSphere Application Server トポロジーと照合し、 誤りを修正した上で再入力します。
すべてのアプリケーションをデプロイメント・マネージャーにアップロードするための「addNode -includeapps」オプションが表示されない
このエラーは、ターゲット・ノード上の一部またはすべてのアプリケーションが、デプロイメント・マネージャーに既にアップロードされている場合に発生することがあります。addNode プログラムは、既にインストール済みのアプリケーションを検出すると、それらは再アップロードしません。
管理コンソールを使用してデプロイメント・マネージャー構成をブラウズし、 既にインストールされているアプリケーションを確認してください。
管理コンソールでエンタープライズ・アプリケーションをインストールすると「 Timeout!!!」というエラーが表示される
このエラーは、 デプロイされていないエンタープライズ・アプリケーションをインストールしようとした場合に発生することがあります。
- アセンブリー・ツールで file_name.ear ファイルを開き、「Deploy」をクリックします。このアクションにより、Deployed_file_name.ear という名前のファイルが作成されます。
- 管理コンソールで、デプロイされた EAR ファイルをインストールします。
EJB モジュール を含むアプリケーションのデプロイ時の NameNotFoundException メッセー ジ
EJB デプロイメント・ツールが アプリケーションのインストール中に稼働するように指定していて、NameNotFoundException メッセージが表示されて インストールに失敗する場合は、入力 JAR または EAR ファイルがソース・ファイルを含んでいないことを 確認してください。入力 JAR ファイルまたは EAR ファイルにソース・ファイルが存在する場合、EJB デプロイメント・ツールはデプロイメント・コードを生成する前に、再ビルドを実行します。
この問題に対処するには、ソース・ファイルを除去するか、クラスパスにすべての独立クラスおよびリソース・ファイルを含めるかのいずれかを行います。 それ以外では、ソース・ファイルにより、または独立クラスとリソース・ ファイルへのアクセス不足によって、サーバーでのアプリケーションの再ビ ルド中に問題が生じる可能性があります。
![[Windows]](../images/windows.gif)
アプリケーションのインストール時に EJB デプロイを呼び出すと、 例外が発生する
アプリケーションのインストール時に EJB デプロイメント・ツールが実行されるよう指定したときに、コマンド行が長すぎることによるエラーが発生してインストールが失敗する場合、インストール時に生成されたデプロイメント・コマンドが、Windows プラットフォームのコマンド行の文字制限を超えていることが原因です。
この問題を回避するには、EAR ファイル名の長さを短くする、 EAR ファイル内の JAR ファイル名の長さを短くする、 デプロイメントで指定するクラスパスまたは他のオプションを短くする、 または Windows システムの %TEMP% 位置を変更して、パスの長さを短くするなどの対策を講じます。
バージョン 5.x 以前用に生成された EJB JAR ファイルのインストー ル時に、コンパイル・エラーを受け取り、EJB デプロイが失敗する
WebSphere Application Server バージョン 5.x またはそれ以前のバージョンで稼働するようにビルドされた EJB モジュールを使用する旧バージョンのアプリケーションをインストールすると、コンパイル・エラーを起こしたり、 EJB デプロイが失敗したりします。 EJB JAR ファイルは、旧バージョンで作成されたコード向けに、Java ソースを含んでいます。旧バージョンの Java ソースは、 バージョン 5.x 以前のバージョン向けに生成されましたが、WebSphere Application Server バージョン 6.x 以降の製品にデプロイする場合は、 バージョン 6.0 以降のランタイム JAR ファイルを使用してコンパイルされます。
この問題を回避するには、アプリケーションの EAR ファイルからすべての .java ファイルを除去します。 Java ソース・ファイルを除去後に、アプリケーションをサーバーに正常にデプロイできます。
文書のアップロード中に、 addNode -includeapps が OutOfMemoryError 例外で失敗する
- addNode を使用して基本サーバーからノードを追加する場合は、
addNode スクリプトを変更して次のパラメーターを組み込みます。
-Xmxsize
- 管理コンソールからノードを追加する場合は、
デプロイメント・マネージャーの Java 仮想マシン設定で maximumHeapSize を増やしてから、
デプロイメント・マネージャーを再始動します。
詳しくは、addNode コマンド および Java 仮想マシンの設定を参照してください。
![[Windows]](../images/windows.gif)
"%JAVA_HOME%¥bin¥java" -Xmx512m %DEBUG% %WAS_TRACE% %CONSOLE_ENCODING%
"%CLIENTSOAP%" "%CLIENTSAS%" "-classpath" "%WAS_CLASSPATH%"
"-Dws.ext.dirs=%WAS_EXT_DIRS%" %USER_INSTALL_PROP%
-Dwas.install.root=%WAS_HOME%" "com.ibm.ws.bootstrap.WSLauncher"
"com.ibm.ws.management.tools.NodeFederationUtility" "%CONFIG_ROOT%" "%WAS_CELL%"
"%WAS_NODE%" %*
デプロイメント・マネージャーの OutOfMemory 例外
大容量の EAR ファイルのアプリケーションをインストールする際に、OutOfMemory 例外を受け取った場合、デプロイメント・マネージャーの最大ヒープ・サイズを大きくしてみてください。
管理コンソールの Java 仮想マシン・ページで指定したオプションを確認します。 デプロイメント・マネージャーの JAVA 仮想マシンの設定で maximumHeapSize の値を大きくします。 次に、デプロイメント・マネージャーを再始動して、再びアプリケーションのインストールを試みます。
アプリケーションを別のマシンに インストールすると、稼働しない
アプリケーションが アプリケーション・レベルのリソースを使用する場合は、そのアプリケーション・レベルのノード情報が 正しくなければ、アプリケーションは期待どおりに動きません。
アプリケーション・レベルの リソースをアプリケーションに追加し、そのアプリケーションをマシンにデプロイする場合は、 アプリケーション・レベルのノード情報が正しいことを確認してください。 正しくない場合は、アプリケーションを別のマシンにインストールすると、 間違ったロケーションにインストールされるため、アプリケーションが期待どおりに稼働しません。
アプリケーション・レベルのノード情報は、アセンブリー・ツールを使用して 更新できます。ibmconfig の下にある deployment.xml ファイルの deploymentTargets から、 nodeName を更新します。さらに、deployment.xml ファイルの deployedObject から、 binariesURL のパスが正しいことも確認してください。
アプリケーションの更新時に、 すべてのアプリケーション・ファイルが 1 つのファイルで置き換えられてしまう
アプリケーションの更新ウィザードの「1 つのファイルを置換または追加する」オプションが選択されていて、現在デプロイ済みのアプリケーションが複数のファイルで構成されている場合は、「置換または追加されるファイルへの、インストール済みアプリケーション・アーカイブ・ファイルで始まるパスを指定します」で、置換または追加するファイルの絶対パス名を指定します。
絶対パス名の構造は、通常は directory_path/file_name であるため、 絶対パス名は次のようになります。
PriceChangeSession.jar/priceChangeSession/priceChangeSessionBean.class
「置換または追加されるファイルへの、インストール済みアプリケーション・アーカイブ・ファイルで 始まるパスを指定します」では、絶対パス名より短いパス名は 指定しないでください。例えば、次のようなディレクトリー・パスのみを指定することはできません。
PriceChangeSession.jar/priceChangeSession
絶対パス名より短いパス名を指定すると、現在デプロイ済みのアプリケーションの ディレクトリー内のすべてのファイルが、「ファイルへのパスを指定してください」で 指定した単一の新規ファイルで置き換えられる場合があります。