Hitachi

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


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

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

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

〈この項の構成〉

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

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

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

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

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

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

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

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

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

  • 永続化ユニットのトランザクションタイプがJTAの場合

    チェックされる内容とチェック時にエラーが発生したときの動作を次の表に示します。

    表5‒10 チェックされる内容とチェック時にエラーが発生したときの動作(トランザクションタイプがJTAの場合)

    チェックされる内容

    チェック時にエラーが発生したときの動作

    永続化ユニットで使用するJTAデータソース(persistence.xmlの<jta-data-source>タグに指定されたもの,またはシステムプロパティで指定したデフォルト値)が指定されていること。

    エラーメッセージKDJE56527-Eを出力して,デプロイを中止します。

    JTAデータソースを提供するリソースアダプタが存在すること。

    エラーメッセージKDJE56529-Eを出力して,デプロイを中止します。

    JTAデータソースを提供するリソースアダプタが開始されていること。

    リソースアダプタのトランザクションサポートレベルが,LocalTransactionまたはXATrasnactionになっていること。

    エラーメッセージKDJE56531-Eを出力して,デプロイを中止します。

    リソースアダプタのコネクションファクトリインタフェースが「javax.sql.DataSource」であること。

    エラーメッセージKDJE56533-Eを出力して,デプロイを中止します。

  • 永続化ユニットのトランザクションタイプがRESOURCE_LOCALの場合

    チェックされる内容とチェック時にエラーが発生したときの動作を次の表に示します。

    表5‒11 チェックされる内容とチェック時にエラーが発生したときの動作(トランザクションタイプがRESOURCE_LOCALの場合)

    チェックされる内容

    チェック時にエラーが発生したときの動作

    永続化ユニットで使用する非JTAデータソース(persistence.xmlの<non-jta-data-source>タグに指定されたもの,またはシステムプロパティで指定したデフォルト値)が指定されていること。

    エラーメッセージKDJE56528-Eを出力して,デプロイを中止します。

    非JTAデータソースを提供するリソースアダプタが存在すること。

    エラーメッセージKDJE56530-Eを出力して,デプロイを中止します。

    非JTAデータソースを提供するリソースアダプタが開始されていること。

    リソースアダプタのトランザクションサポートレベルが,NoTransactionになっていること。

    エラーメッセージKDJE56532-Eを出力して,デプロイを中止します。

    リソースアダプタのコネクションファクトリインタフェースが「javax.sql.DataSource」であること。

    エラーメッセージKDJE56533-Eを出力して,デプロイを中止します。

(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を出力して,デプロイを中止します。