Cosminexus V9 アプリケーションサーバ 機能解説 基本・開発編(コンテナ共通機能)

[目次][用語][索引][前へ][次へ]

5.11.3 アプリケーションのデプロイ時にチェックされる項目

JPAを利用したアプリケーションをJ2EEサーバにデプロイするとき,次の項目がチェックされます。

それぞれについて説明します。

<この項の構成>
(1) 永続化ユニット定義のチェック
(2) EntityManagerやEntityManagerFactoryのリファレンスのチェック

(1) 永続化ユニット定義のチェック

永続化ユニット定義でチェックされる内容を説明します。

(a) persistence.xmlのバリデーション

アプリケーションに含まれるpersistence.xmlがpersistence_1_0.xsdスキーマに従っているかを検証します。検証でエラーが発見された場合は,エラーメッセージKDJE56526-Eを出力してデプロイを中止します。

(b) 永続化ユニット名のチェック

永続化ユニット名が空文字でないことをチェックします。永続化ユニット名が空文字である場合,エラーメッセージKDJE56505-Eを出力してデプロイを中止します。

また,アプリケーションのEARや,一つのEJB-JARまたはWARの中に,重複した名前の永続化ユニットが定義されていないかをチェックします。重複した名前の永続化ユニットが定義されている場合には,警告メッセージKDJE56500-Wを出力し,デプロイを継続します。なお,この場合は実際にデプロイされる永続化ユニットは一つだけです。

(c) 永続化ユニットが参照するデータソースの存在チェック

永続化ユニットのトランザクションタイプによってチェックされる内容が異なります。

(d) 永続化ユニットに指定されたプロバイダクラスのチェック

永続化ユニットが使用するJPAプロバイダのクラス(persistence.xmlの<provider>タグに指定されたクラス)を,アプリケーションからロードできることをチェックします。ロードに失敗した場合には,エラーメッセージKDJE56503-Eを出力して,デプロイを中止します。

(e) 永続化ユニットが参照するJARファイルの存在チェック

永続化ユニットが参照するJARファイル(persistence.xmlの<jar-file>タグに指定されたJARファイル)が存在するかをチェックします。JARファイルが存在しない場合には,エラーメッセージKDJE56506-Eを出力して,デプロイを中止します。

(f) JPAプロバイダによる永続化ユニットの定義内容のチェック

JPAコンテナが解析したpersistence.xmlの内容からJPAプロバイダが永続化ユニットを生成します。永続化ユニットの定義に問題があり,JPAプロバイダがエラーを返した場合,エラーメッセージ(KDJE56539-E)を表示してデプロイメントを中止します。

(2) EntityManagerやEntityManagerFactoryのリファレンスのチェック

EntityManagerやEntityManagerFactoryのリファレンスでチェックされる内容を説明します。

(a) 永続化ユニットの存在チェック

EJBやWebコンポーネントで定義したEntityManagerやEntityManagerFactoryのリファレンスで,指定した永続化ユニット名が実際に参照できる永続化ユニット名であるかをチェックします。また,永続化ユニット名が省略されている場合は,使用する永続化ユニットを特定できるかをチェックします。このチェックでエラーが発見された場合には,エラーメッセージKDJE56501-Eを出力して,デプロイを中止します。

(b) コンテナ管理のEntityManagerを使用する場合のトランザクションタイプのチェック

コンテナ管理のEntityManagerを使用する場合は,永続化ユニットのトランザクションタイプがJTAになっていることをチェックします。このチェックでエラーが発生した場合は,エラーメッセージKDJE56534-Eを出力して,デプロイを中止します。

(c) 拡張永続化コンテキストがStateful Session Bean以外から使用されていないことをチェック

EntityManagerのリファレンスでは,永続化コンテキストのタイプにEXTENDEDが指定されている場合,そのリファレンスが定義されている場所がStateful Session Beanであることをチェックします。Stateful Session Bean以外の場所で定義されている場合には,エラーメッセージKDJE56535-Eを出力して,デプロイを中止します。