データ・アクセス・アプリケーションの開発

データ・アクセス・アプリケーションを使用すれば、 外部ソースからのデータを操作して、アプリケーション・サービス環境内で使用することができます。

このタスクについて

以下に挙げるさまざまな方法でデータにアクセスできます。
  • 標準または拡張 API の使用
  • コンテナー管理パーシスタンス Bean の使用
  • Bean 管理パーシスタンス Bean、セッション Bean、または Web コンポーネントの使用
  • サービス・データ・オブジェクト (SDO) の使用

手順

  1. データ・アクセスの実装方法を決定します。

    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 の開発』トピックを参照してください。
    ヒント:
    • [AIX Solaris HP-UX Linux Windows][z/OS]リレーショナル・データベースに対するアプリケーション要求の効率を最大にするには、BMP Bean および CMP Bean を開発する際に Structured Query Language in Java™ (SQLJ) を使用することを検討してください。 このオプションは、DB2® JDBC Universal Driver を使用して DB2 データベースにアクセスするアプリケーションに使用できます。

      [z/OS]このドライバーの要件に対する唯一の例外は、 DB2 for z/OS® にアクセスする SQLJ バックエンド BMP Bean に適用されます。 このスキーマでは、DB2 for z/OS のレガシー・ドライバー (DB2 for z/OS のローカル JDBC プロバイダー RRS に必須) が必要となります。

    • [AIX Solaris HP-UX Linux Windows][z/OS]また、パフォーマンス向上のためにカーソル保持機能の使用も検討してください。 詳しくは、『JDBC アプリケーションのカーソル保持機能のサポート』トピックを参照してください。
    • [IBM i]リレーショナル・データベースに対するアプリケーション要求の効率を最大化するために、カーソル保持機能の使用を検討してください。

    エンティティー Bean を開発する方法に対する代替方法として、サービス・データ・オブジェクト (SDO) フレームワークを使用することができます。これは、 データ・アプリケーション開発の統一フレームワークです。 SDO を使用すると、データにアクセスおよび使用する際に、技術固有の API に精通する必要がなくなります。 SDO API という 1 つの API を理解するだけで済みます。この API を使用すると、複数のソース (リレーショナル・データベース、エンティティー EJB コンポーネント、XML ページ、Web サービス、Java コネクター・アーキテクチャー、JavaServer Pages など) からのデータを処理することができます。

  2. リソース参照を使用して、データ・ソースまたは接続ファクトリーを検索します。 詳しくは、『リレーショナル・アクセスのリソース参照によるデータ・ソースの検索』トピックを参照してください。 ただし、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 は、伝搬されたコンテキスト・タイプをサポートしている 場合は、提供されたコンテキストを作業インスタンスの実行コンテキストとしてその実行中に設定 します。

  3. データ・ソースまたは接続ファクトリーへの接続を取得します。 詳しくは、『接続のライフサイクル』トピックの『接続の取得』セクションを参照してください。 ただし、CMP Bean を処理している場合、 このステップを実行しないでください。 EJB コンテナーが CMP Bean 用に同プロセスを処理します。

    エンタープライズ情報システム (EIS) に対するリレーショナル・アクセスおよびプロシージャー型アクセスの接続管理アーキテクチャーは、 Java EE コネクター・アーキテクチャー (JCA) 仕様に基づいています。 接続マネージャー (CM) は、アプリケーション・サーバー内の接続をプールおよび管理するもので、JCA 仕様で定義されているリソース・アダプター (RA) と JDBC 拡張仕様で定義されているデータ・ソースの両方によって取得される接続を管理することができます。

  4. [z/OS]スレッド ID を使用して接続に所有者を割り当てます。 詳しくは、『スレッド ID サポートの使用』トピックを参照してください。

トピックのタイプを示すアイコン タスク・トピック



タイム・スタンプ・アイコン 最終更新: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=tdat_impdatacc
ファイル名:tdat_impdatacc.html