データ・アクセス・アプリケーションの開発
データ・アクセス・アプリケーションを使用すれば、 外部ソースからのデータを操作して、アプリケーション・サービス環境内で使用することができます。
このタスクについて
- 標準または拡張 API の使用
- コンテナー管理パーシスタンス Bean の使用
- Bean 管理パーシスタンス Bean、セッション Bean、または Web コンポーネントの使用
- サービス・データ・オブジェクト (SDO) の使用
手順
- データ・アクセスの実装方法を決定します。
Enterprise JavaBeans (EJB) プログラミング・モデルには、エンティティー Bean、セッション Bean、メッセージ駆動型 Bean、およびサーブレットという、 いくつかの異なるサーバー・サイドのコンポーネントのタイプが用意されています。これらのタイプのうちで、エンティティー Bean は通常、 アプリケーション内でビジネス・コンポーネントをモデル化するために使用されます。 エンティティー Bean は、状態 と 動作 の両方を備えています。
エンティティー Bean の状態はパーシスタントで、データベース内に保管されます。 エンティティー Bean への変更が行われると、 その状態は、Bean を表すデータベース・レコードと同期した状態に保たれます。 EJB モデルによって提供されるエンティティー Bean には 2 つのタイプがあり、 これらの 2 つのタイプの違いは、パーシスタンスを提供するために使用されるメカニズムにあります。 これら 2 つのタイプのエンティティー Bean とは、 コンテナー管理パーシスタンス (CMP) Bean および Bean 管理パーシスタンス (BMP) Bean です。
- BMP Bean の場合は、 開発者が手動でコードを作成して Bean のパーシスタント状態を管理します。
- CMP Bean の場合は、EJB コンテナーが Bean のパーシスタント状態を管理します。
パーシスタント状態の管理は複雑で困難なタスクであり、CMP Bean を使用すると、
開発者は、永続的な動作をコンテナーに任せることでビジネス・ロジックに集中できます。
CMP Bean の代表的な例は、カスタマー、アカウント などです。 CMP Bean はオブジェクトであるため、 それらのデータ (状態) にアクセスする際には、フィールド・アクセサーを使用します。 例えば、カスタマー・エンティティー Bean には、 名前 や 電話番号 などのフィールドが含まれる可能性があります。 これらの項目のデータには、 accessor メソッド getName()/setName() および getPhoneNumber()/setPhoneNumber() を使用してアクセスします。 開発者としては、 このデータを最終的に保管する方法や、 バックエンド・データベースから検索する方法について意識せずに、 データの保全性はコンテナーによって維持されるものと見なすことができます。
エンティティー Bean の開発については、『エンタープライズ Bean の開発』トピックを参照してください。ヒント:リレーショナル・データベースに対するアプリケーション要求の効率を最大にするには、BMP Bean および CMP Bean を開発する際に Structured Query Language in Java™ (SQLJ) を使用することを検討してください。 このオプションは、DB2® JDBC Universal Driver を使用して DB2 データベースにアクセスするアプリケーションに使用できます。
このドライバーの要件に対する唯一の例外は、 DB2 for z/OS® にアクセスする SQLJ バックエンド BMP Bean に適用されます。 このスキーマでは、DB2 for z/OS のレガシー・ドライバー (DB2 for z/OS のローカル JDBC プロバイダー RRS に必須) が必要となります。
また、パフォーマンス向上のためにカーソル保持機能の使用も検討してください。 詳しくは、『JDBC アプリケーションのカーソル保持機能のサポート』トピックを参照してください。
リレーショナル・データベースに対するアプリケーション要求の効率を最大化するために、カーソル保持機能の使用を検討してください。
エンティティー Bean を開発する方法に対する代替方法として、サービス・データ・オブジェクト (SDO) フレームワークを使用することができます。これは、 データ・アプリケーション開発の統一フレームワークです。 SDO を使用すると、データにアクセスおよび使用する際に、技術固有の API に精通する必要がなくなります。 SDO API という 1 つの API を理解するだけで済みます。この API を使用すると、複数のソース (リレーショナル・データベース、エンティティー EJB コンポーネント、XML ページ、Web サービス、Java コネクター・アーキテクチャー、JavaServer Pages など) からのデータを処理することができます。
- リソース参照を使用して、データ・ソースまたは接続ファクトリーを検索します。
詳しくは、『リレーショナル・アクセスのリソース参照によるデータ・ソースの検索』トピックを参照してください。 ただし、CMP Bean を処理している場合、
このステップを実行しないでください。
EJB コンテナーが CMP Bean 用に同プロセスを処理します。
WebSphere® Application Server でアプリケーションを実行するには、 使用するコードで、リソース参照を使用してデータ・ソースまたは接続ファクトリーを論理的に指定する必要があります。 リソース参照を実リソースにマッピングすることは、通常の場合、アセンブル時に行われます。 これらのリソースは、Application Server の管理者が構成します。
- リレーショナル・データベース・アクセスの場合、管理者は JDBC プロバイダーおよび関連データ・ソースを構成します。 これらにより、組み込み WebSphere Relational Resource Adapter を処理します。
- 非リレーショナル・データベース・アクセスの場合、 管理者は Java Platform, Enterprise Edition (Java EE) コネクター・アーキテクチャー (JCA) のリソース・アダプターを アプリケーション・サーバーにインストールし、関連する接続ファクトリーを構成します。
汎用作業コンテキスト実装は、作業インスタンスがリソース・アダプターによって製品の作業マネージャーにサブミットされて実行されるというコンテキストをリソース・アダプターが制御する仕組みを提供します。WorkContextProvider インターフェース を実装する作業インスタンスをサブミットすることによって、リソース・アダプターは さまざまなタイプのコンテキストを WebSphere Application Server に 伝搬できます。Application Server は、伝搬されたコンテキスト・タイプをサポートしている 場合は、提供されたコンテキストを作業インスタンスの実行コンテキストとしてその実行中に設定 します。
- データ・ソースまたは接続ファクトリーへの接続を取得します。
詳しくは、『接続のライフサイクル』トピックの『接続の取得』セクションを参照してください。 ただし、CMP Bean を処理している場合、
このステップを実行しないでください。
EJB コンテナーが CMP Bean 用に同プロセスを処理します。
エンタープライズ情報システム (EIS) に対するリレーショナル・アクセスおよびプロシージャー型アクセスの接続管理アーキテクチャーは、 Java EE コネクター・アーキテクチャー (JCA) 仕様に基づいています。 接続マネージャー (CM) は、アプリケーション・サーバー内の接続をプールおよび管理するもので、JCA 仕様で定義されているリソース・アダプター (RA) と JDBC 拡張仕様で定義されているデータ・ソースの両方によって取得される接続を管理することができます。
スレッド ID を使用して接続に所有者を割り当てます。 詳しくは、『スレッド ID サポートの使用』トピックを参照してください。
サブトピック
スレッド識別サポートの使用
スレッド識別機能を使用すると、初めて接続を確立するときにその接続の所有者としてスレッド ID を割り当てることができます。 この機能は、接続所有権でのスレッド ID の使用をサポートする、Java Platform, Enterprise Edition (Java EE) コネクター・アーキテクチャー (JCA) リソース・アダプター およびリレーショナル・リソース・アダプター (RRA) ラッパー適用 Java Database Connectivity (JDBC) プロバイダーにのみ適用されます。MongoDB を使用する Liberty アプリケーションの完全プロファイルへの移植
MongoDB を使用する Liberty アプリケーションを移植し、WebSphere Application Server の完全プロファイルで実行することができます。RAR モジュール内の Bean Validation
WebSphere Application Server は、 Java コネクター・アーキテクチャー (JCA) バージョン 1.6 仕様に 従って、リソース・アーカイブ (RAR) JavaBeans 制約の妥当性検査を行います。JCA 1.6 による RAR モジュールでのアノテーションのサポート
Java コネクター・アーキテクチャー (JCA) バージョン 1.6 の仕様では、RAR (リソース・アーカイブ) モジュールで Java アノテーションがサポートされるようなりました。アノテーションは、RAR モジュールを構成する クラス・ファイルで RAR モジュールのメタデータまたは構成データを指定する手段です。データ・アクセス API に対する拡張機能
シングル・データ・アクセス API により、ご使用のアプリケ ーションに完全なソリューションが提供されない場合、WebSphere Application Server 拡張機能を使用し、JCA と JDBC API の間のインターオ ペラビリティーを実現してください。エクスポートされた表データ定義言語からのデータベース表の再作成
WebSphere Application Server デプロイメント・ツールは、コンテナー管理パーシスタンス (CMP) エンタープライズ Bean を含む EJB JAR ファイルをデプロイする場合、ターゲット・データベースを選択し、対応する Table.ddl ファイルを作成します。 このファイルには、ご使用の CMP Bean のデータベース・テーブルを生成するのに必要な SQL ステートメントが含まれます。コンテナー管理パーシスタンスの Bean 関連テクノロジー
WebSphere Application Server では、Enterprise JavaBeans (EJB) 仕様で設定された標準を超えるコンテナー管理パーシスタンス (CMP) サービスが提供されます。エンティティー Bean およびデータ・ストアの同期の操作
環境変数またはマーカー・インターフェースを使用すると、特定の Enterprise JavaBeans (EJB) 型について、各 findBy 呼び出しの前にその状態を永続ストレージと同期させないように指示することができます。修正していない EntityBean インスタンス上での ejbStore 呼び出しの回避
現在のトランザクション中に EntityBean インスタンスを修正していない場合、ejbStore メソッドの呼び出しを回避するようにそれらの EntityBean インスタンスを構成することができます。リソース参照の利点
WebSphere Application Server では、コードによるアプリケーション・サーバー・リソース (データ・ソース や J2C 接続ファクトリーなど) の参照は、Java Naming and Directory Interface (JNDI) 名前空間内の リソースに直接アクセスするのではではなく、論理名を使用して行う必要があります。 これらの論理名は、リソース参照 と呼ばれます。Java EE コネクター・アーキテクチャーによるデータへのアクセス
WebSphere Application Server で Java EE コネクター・アーキテクチャー (JCA) 準拠のアプリケーションからデータにアクセスするには、 リソース・アダプターおよび接続ファクトリーを構成して使用します。JDBC アプリケーション開発のヒント
JDBC 照会の効率の最大化に役立つベスト・プラクティスを使用することにより、 アプリケーションのパフォーマンスが向上する可能性があります。JDBC アプリケーションのカーソル保持機能のサポート
カーソル保持機能 (Cursor holdability) は、リレーショナル・データベースとの JDBC の対話のオーバーヘッドを減少させるため、 アプリケーション・パフォーマンスの向上につながります。Data Access Bean のタイプ
データ・アクセス・プログラミングが簡単になるように、WebSphere Application Server により、Java Database Connectivity (JDBC) API の多くのメソッドを実装する特別なクラス・ライブラリーがユーザーに提供されます。 このライブラリーは、基本的にサービス・データ・オブジェクト (SDO) のセットです。アプリケーション・クライアントからのデータへのアクセス
Java Platform, Enterprise Edition (Java EE) アプリケーション・クライアントからデータベースに直接アクセスするには、 クライアント・デプロイメント記述子内に構成されたリソース参照から、 javax.sql.DataSource オブジェクトを検索します。このリソース参照は、 クライアント・アプリケーションのデプロイメント記述子の一部として構成され、 事前に構成されたデータ・ソース・オブジェクトへの参照を提供します。Service DataObjects API バージョン 1.0 および 2.01 によるデータ・アクセス
Service Data Objects (SDO) フレームワークは、XML が統合されたデータ中心の切断状態でのデータ・アクセス・メカニズムで、ソースに依存しない結果セットを提供します。データ・アクセスでの Java Database Connectivity データ・メディエーター・サービスの使用
次のステップではコード・サンプルを使用して、Java Database Connectivity (JDBC) データ・メディエーター・サービス (DMS) 向けのメタデータを作成する方法、 および DMS DataGraph をインスタンス化する方法について説明します。データ・アクセスでの EJB データ・メディエーター・サービスの使用
次のステップではコード・サンプルを使用して、Enterprise JavaBeans (EJB) データ・メディエーター・サービス (DMS) メタデータを作成する方法について簡単な例を説明します。カスタム DataStoreHelper クラスの開発
WebSphere 拡張機能である GenericDataStoreHelper クラスを適用して、アプリケーション・サーバーでサポートされないデータ・ソース用に、 独自のデータ・ストア・ヘルパーを作成します。このヘルパー・クラスにより、JDBC 構成は、トランザクション中にデータベース固有の機能を使用できます。MongoDB を使用する Liberty アプリケーションの完全プロファイルへの移植
MongoDB を使用する Liberty アプリケーションを移植し、WebSphere Application Server の完全プロファイルで実行することができます。RAR モジュール内の Bean Validation
WebSphere Application Server は、 Java コネクター・アーキテクチャー (JCA) バージョン 1.6 仕様に 従って、リソース・アーカイブ (RAR) JavaBeans 制約の妥当性検査を行います。JCA 1.6 による RAR モジュールでのアノテーションのサポート
Java コネクター・アーキテクチャー (JCA) バージョン 1.6 の仕様では、RAR (リソース・アーカイブ) モジュールで Java アノテーションがサポートされるようなりました。アノテーションは、RAR モジュールを構成する クラス・ファイルで RAR モジュールのメタデータまたは構成データを指定する手段です。データ・アクセス API に対する拡張機能
シングル・データ・アクセス API により、ご使用のアプリケ ーションに完全なソリューションが提供されない場合、WebSphere Application Server 拡張機能を使用し、JCA と JDBC API の間のインターオ ペラビリティーを実現してください。エクスポートされた表データ定義言語からのデータベース表の再作成
WebSphere Application Server デプロイメント・ツールは、コンテナー管理パーシスタンス (CMP) エンタープライズ Bean を含む EJB JAR ファイルをデプロイする場合、ターゲット・データベースを選択し、対応する Table.ddl ファイルを作成します。 このファイルには、ご使用の CMP Bean のデータベース・テーブルを生成するのに必要な SQL ステートメントが含まれます。コンテナー管理パーシスタンスの Bean 関連テクノロジー
WebSphere Application Server では、Enterprise JavaBeans (EJB) 仕様で設定された標準を超えるコンテナー管理パーシスタンス (CMP) サービスが提供されます。エンティティー Bean およびデータ・ストアの同期の操作
環境変数またはマーカー・インターフェースを使用すると、特定の Enterprise JavaBeans (EJB) 型について、各 findBy 呼び出しの前にその状態を永続ストレージと同期させないように指示することができます。修正していない EntityBean インスタンス上での ejbStore 呼び出しの回避
現在のトランザクション中に EntityBean インスタンスを修正していない場合、ejbStore メソッドの呼び出しを回避するようにそれらの EntityBean インスタンスを構成することができます。リソース参照の利点
WebSphere Application Server では、コードによるアプリケーション・サーバー・リソース (データ・ソース や J2C 接続ファクトリーなど) の参照は、Java Naming and Directory Interface (JNDI) 名前空間内の リソースに直接アクセスするのではではなく、論理名を使用して行う必要があります。 これらの論理名は、リソース参照 と呼ばれます。Java EE コネクター・アーキテクチャーによるデータへのアクセス
WebSphere Application Server で Java EE コネクター・アーキテクチャー (JCA) 準拠のアプリケーションからデータにアクセスするには、 リソース・アダプターおよび接続ファクトリーを構成して使用します。JDBC アプリケーション開発のヒント
JDBC 照会の効率の最大化に役立つベスト・プラクティスを使用することにより、 アプリケーションのパフォーマンスが向上する可能性があります。JDBC アプリケーションのカーソル保持機能のサポート
カーソル保持機能 (Cursor holdability) は、リレーショナル・データベースとの JDBC の対話のオーバーヘッドを減少させるため、 アプリケーション・パフォーマンスの向上につながります。Data Access Bean のタイプ
データ・アクセス・プログラミングが簡単になるように、WebSphere Application Server により、Java Database Connectivity (JDBC) API の多くのメソッドを実装する特別なクラス・ライブラリーがユーザーに提供されます。 このライブラリーは、基本的にサービス・データ・オブジェクト (SDO) のセットです。アプリケーション・クライアントからのデータへのアクセス
Java Platform, Enterprise Edition (Java EE) アプリケーション・クライアントからデータベースに直接アクセスするには、 クライアント・デプロイメント記述子内に構成されたリソース参照から、 javax.sql.DataSource オブジェクトを検索します。このリソース参照は、 クライアント・アプリケーションのデプロイメント記述子の一部として構成され、 事前に構成されたデータ・ソース・オブジェクトへの参照を提供します。Service DataObjects API バージョン 1.0 および 2.01 によるデータ・アクセス
Service Data Objects (SDO) フレームワークは、XML が統合されたデータ中心の切断状態でのデータ・アクセス・メカニズムで、ソースに依存しない結果セットを提供します。データ・アクセスでの Java Database Connectivity データ・メディエーター・サービスの使用
次のステップではコード・サンプルを使用して、Java Database Connectivity (JDBC) データ・メディエーター・サービス (DMS) 向けのメタデータを作成する方法、 および DMS DataGraph をインスタンス化する方法について説明します。データ・アクセスでの EJB データ・メディエーター・サービスの使用
次のステップではコード・サンプルを使用して、Enterprise JavaBeans (EJB) データ・メディエーター・サービス (DMS) メタデータを作成する方法について簡単な例を説明します。カスタム DataStoreHelper クラスの開発
WebSphere 拡張機能である GenericDataStoreHelper クラスを適用して、アプリケーション・サーバーでサポートされないデータ・ソース用に、 独自のデータ・ストア・ヘルパーを作成します。このヘルパー・クラスにより、JDBC 構成は、トランザクション中にデータベース固有の機能を使用できます。


http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=tdat_impdatacc
ファイル名:tdat_impdatacc.html