Cosminexus V9 アプリケーションサーバ 機能解説 基本・開発編(コンテナ共通機能)
JPAを利用したアプリケーションをJ2EEサーバにデプロイするとき,次の項目がチェックされます。
それぞれについて説明します。
永続化ユニット定義でチェックされる内容を説明します。
アプリケーションに含まれるpersistence.xmlがpersistence_1_0.xsdスキーマに従っているかを検証します。検証でエラーが発見された場合は,エラーメッセージKDJE56526-Eを出力してデプロイを中止します。
永続化ユニット名が空文字でないことをチェックします。永続化ユニット名が空文字である場合,エラーメッセージKDJE56505-Eを出力してデプロイを中止します。
また,アプリケーションのEARや,一つのEJB-JARまたはWARの中に,重複した名前の永続化ユニットが定義されていないかをチェックします。重複した名前の永続化ユニットが定義されている場合には,警告メッセージKDJE56500-Wを出力し,デプロイを継続します。なお,この場合は実際にデプロイされる永続化ユニットは一つだけです。
永続化ユニットのトランザクションタイプによってチェックされる内容が異なります。
表5-10 チェックされる内容とチェック時にエラーが発生したときの動作(トランザクションタイプがJTAの場合)
チェックされる内容 | チェック時にエラーが発生したときの動作 |
---|---|
永続化ユニットで使用するJTAデータソース(persistence.xmlの<jta-data-source>タグに指定されたもの,またはシステムプロパティで指定したデフォルト値)が指定されていること。 | エラーメッセージKDJE56527-Eを出力して,デプロイを中止します。 |
JTAデータソースを提供するリソースアダプタが存在すること。 | エラーメッセージKDJE56529-Eを出力して,デプロイを中止します。 |
JTAデータソースを提供するリソースアダプタが開始されていること。 | |
リソースアダプタのトランザクションサポートレベルが,LocalTransactionまたはXATrasnactionになっていること。 | エラーメッセージKDJE56531-Eを出力して,デプロイを中止します。 |
リソースアダプタのコネクションファクトリインタフェースが「javax.sql.DataSource」であること。 | エラーメッセージKDJE56533-Eを出力して,デプロイを中止します。 |
表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を出力して,デプロイを中止します。 |
永続化ユニットが使用するJPAプロバイダのクラス(persistence.xmlの<provider>タグに指定されたクラス)を,アプリケーションからロードできることをチェックします。ロードに失敗した場合には,エラーメッセージKDJE56503-Eを出力して,デプロイを中止します。
永続化ユニットが参照するJARファイル(persistence.xmlの<jar-file>タグに指定されたJARファイル)が存在するかをチェックします。JARファイルが存在しない場合には,エラーメッセージKDJE56506-Eを出力して,デプロイを中止します。
JPAコンテナが解析したpersistence.xmlの内容からJPAプロバイダが永続化ユニットを生成します。永続化ユニットの定義に問題があり,JPAプロバイダがエラーを返した場合,エラーメッセージ(KDJE56539-E)を表示してデプロイメントを中止します。
EntityManagerやEntityManagerFactoryのリファレンスでチェックされる内容を説明します。
EJBやWebコンポーネントで定義したEntityManagerやEntityManagerFactoryのリファレンスで,指定した永続化ユニット名が実際に参照できる永続化ユニット名であるかをチェックします。また,永続化ユニット名が省略されている場合は,使用する永続化ユニットを特定できるかをチェックします。このチェックでエラーが発見された場合には,エラーメッセージKDJE56501-Eを出力して,デプロイを中止します。
コンテナ管理のEntityManagerを使用する場合は,永続化ユニットのトランザクションタイプがJTAになっていることをチェックします。このチェックでエラーが発生した場合は,エラーメッセージKDJE56534-Eを出力して,デプロイを中止します。
EntityManagerのリファレンスでは,永続化コンテキストのタイプにEXTENDEDが指定されている場合,そのリファレンスが定義されている場所がStateful Session Beanであることをチェックします。Stateful Session Bean以外の場所で定義されている場合には,エラーメッセージKDJE56535-Eを出力して,デプロイを中止します。
All Rights Reserved. Copyright (C) 2012, 2015, Hitachi, Ltd.