• 検索結果がありません。

ejb.book

N/A
N/A
Protected

Academic year: 2021

シェア "ejb.book"

Copied!
431
0
0

読み込み中.... (全文を見る)

全文

(1)

BEA

WebLogic

Server

TM

WebLogic

エン タ ープ

ラ イズ

JavaBeans

(2)

著作権

Copyright © 2002, BEA Systems, Inc. All Rights Reserved.

限定的権利条項

本ソ フ ト ウ ェ アおよびマニ ュ アルは、 BEA Systems, Inc. 又は日本ビー ・ イー ・ エー ・ シ ス テムズ 株式会社 ( 以下、 「BEA」 と いい ます ) の使用許諾契約に基づいて提供さ れ、 その内容に同意する 場合にのみ使用する こ と ができ、 同契約の条項通 り にのみ使用ま たはコ ピーする こ と ができ ます。 同契約で明示的に許可さ れてい る以外の方法で同 ソ フ ト ウ ェ アを コ ピーする こ と は法律に違反し ます。 こ のマニ ュ アルの一部ま たは全部を、 BEA か ら の書面に よ る事前の同意な し に、 複写、 複 製、 翻訳、 あ る いはいかな る電子媒体ま たは機械可読形式への変換も行 う こ と はで き ません。 米国政府に よ る使用、 複製 も し く は開示は、 BEA の使用許諾契約、 および FAR 52.227-19 の 「Commercial Computer Software-Restricted Rights」 条項のサブパラ グ ラ フ (c)(1)、 DFARS 252.227-7013 の 「Rights in Technical Data and Computer Software」 条項のサブパ ラ グ ラ フ (c)(1)(ii) 、 NASA FAR 補遺 16-52.227-86 の 「Commercial Computer Software--Licensing」 条項のサ ブパ ラ グ ラ フ (d)、 も し く はそれ ら と 同等の条項で定め る制限の対象 と な り ます。 こ のマニ ュ アルに記載さ れてい る内容は予告な く 変更 さ れる こ と があ り 、 ま た BEA に よ る責務を 意味する も のではあ り ません。 本ソ フ ト ウ ェ アおよびマニ ュ アルは 「現状のま ま」 提供さ れ、 商 品性や特定用途への適合性を始め と する ( ただ し、 こ れ ら には限定 さ れない ) いかな る種類の保 証も与え ません。 さ ら に、 BEA は、 正当性、 正確 さ、 信頼性などについて、 本ソ フ ト ウ ェ アま た はマニ ュ アルの使用 も し く は使用結果に関し ていかな る確約、 保証、 あ るいは表明も行いません。

商標または登録商標

BEA、 Jolt、 Tuxedo、 および WebLogic は BEA Systems, Inc. の登録商標です。 BEA Builder、 BEA Campaign Manager for WebLogic、 BEA eLink、 BEA Manager、 BEA WebLogic Commerce Server、 BEA WebLogic Enterprise、 BEA WebLogic Enterprise Platform、 BEA WebLogic Express、 BEA WebLogic Integration、 BEA WebLogic Personalization Server、 BEA WebLogic Platform、 BEA WebLogic Portal、BEA WebLogic Server、BEA WebLogic Workshop および How Business Becomes E-Business は、 BEA Systems, Inc の商標です。

その他の商標はすべて、 関係各社がその権利を有し ます。 WebLogic エン タープ ラ イ ズ JavaBeans プ ロ グ ラ マーズ ガ イ ド

パー ト 番号 マニュアルの日付 ソ フ ト ウ ェ アのバージ ョ ン

(3)

目次

このマニュアルの内容

対象読者... xx e-docs Web サイト ... xx このマニュアルの印刷方法 ... xx 関連情報...xxi サポート情報 ...xxii 表記規則...xxiii

1.

WebLogic Server

エンタープライズ

JavaBean

の概要

エンタープライズ JavaBean の概要...1-1 EJB コンポーネント ...1-2 EJB の種類...1-2 Java 仕様の実装...1-3 J2EE 仕様...1-3 EJB 2.0 仕様 ...1-4 WebLogic Server EJB リソースの保護 ...1-4 WebLogic Server による EJB 2.0 のサポート ...1-4 EJB ロール...1-5 アプリケーション ロール...1-6 インフラストラクチャ ロール ...1-6 デプロイメントおよび管理ロール ...1-7 WebLogic Server 7.0 の EJB 機能の強化 ...1-7 動的クエリのサポート...1-8 メッセージ駆動型 Bean の移行サービスのサポート ...1-8 EJB CMP の複数のテーブル マッピングのサポート...1-8 EJB WebLogic QL 拡張サポート...1-9 オプティミスティックな同時実行性のサポート...1-9 ReadOnly エンティティの同時実行性のサポート...1-9 組み合わせキャッシングのサポート...1-10 リレーションシップ キャッシングのサポート ...1-10 EJB リンクのサポート...1-10

(4)

iv WebLogic エンタープライズ JavaBeans プログラマーズガイド 一括挿入のサポート...1-11 EJB 開発者向けツール...1-11 スケルトン デプロイメント記述子を作成する ANT タスク...1-11 WebLogic Builder ...1-12 EJBGen...1-12 weblogic.Deployer ...1-12 WebLogic EJB デプロイメント記述子エディタ ...1-13 XML エディタ...1-13

2.

EJB

の設計

セッション Bean の開発 ...2-1 エンティティ Bean の設計...2-2 エンティティ Bean のホーム インタフェース...2-2 エンティティ EJB は大まかにする...2-3 追加のビジネス ロジックをエンティティ EJB にカプセル化する ...2-3 エンティティ EJB のデータ アクセスを最適化する...2-3 メッセージ駆動型 Bean の設計...2-4 EJB での継承の使用...2-4 デプロイされた EJB へのアクセス...2-5 EJB にローカル クライアントからアクセスする場合とリモート クライ アントからアクセスする場合の違い...2-6 EJB インスタンスの同時アクセスに関する制限...2-7 EJB 参照のホーム ハンドルへの格納...2-7 ファイアウォールを介したホーム ハンドルの使用...2-8 トランザクション リソースの保持...2-8 トランザクションの管理をデータストアに許可する ...2-9 EJB に対して Bean 管理のトランザクションの代わりにコンテナ管理の トランザクションを使用する ...2-9 アプリケーションからトランザクションの境界を設定しない...2-10 コンテナ管理 EJB ではトランザクション対応データソースを常に使 用する ...2-10

3.

メッセージ駆動型

Bean

の設計

メッセージ駆動型 Bean とは...3-1 メッセージ駆動型 Bean と標準の JMS コンシューマとの違い ...3-2 メッセージ駆動型 Bean とステートレス セッション EJB との違い ...3-3

(5)

トピックとキューの並行処理 ...3-3 メッセージ駆動型 Bean の開発とコンフィグレーション...3-4 メッセージ駆動型 Bean クラスの必要条件 ...3-7 メッセージ駆動型 Bean コンテキストの使用...3-8 onMessage() によるビジネス ロジックの実装...3-8 ... 3-9 例外の処理...3-9 メッセージ駆動型 Bean の呼び出し ...3-9 Bean インスタンスの作成と削除 ...3-10 WebLogic Server でのメッセージ駆動型 Bean のデプロイ ...3-11 メッセージ駆動型 Bean でのトランザクション サービスの使用 ...3-11 メッセージの受信 ...3-12 メッセージの確認応答...3-13 メッセージ駆動型 Bean の移行サービス ...3-13 メッセージ駆動型 Bean の移行サービスの有効化 ...3-14 メッセージ駆動型 Bean の移行...3-14 非 BEA JMS プロバイダのメッセージ駆動型 Bean のコンフィグレーション 3-15 トランザクション対応 MDB の指定 ...3-16 トランザクション非対応 MDB の指定 ...3-16 JMS サーバまたは非 BEA サービス プロバイダへの再接続 ...3-17 JMS 分散送り先でリスンするための MDB のコンフィグレーション ...3-17 メッセージ駆動型 Bean のセキュリティ ID のコンフィグレーション ...3-18

4.

WebLogic Server EJB

コンテナとサポートされるサービ

EJB コンテナ ...4-1 EJB のライフサイクル...4-2 エンティティ Bean のライフサイクルとキャッシュおよびプール ...4-2 エンティティ EJB インスタンスの初期化 ( フリー プール ) ...4-3 READY および ACTIVE エンティティ EJB インスタンス ( キャッ

シュ ) ...4-3 キャッシュからの Bean の削除 ...4-5 エンティティ EJB のライフサイクルの遷移 ...4-6 ステートレス セッション EJB のライフサイクル...4-6

(6)

vi WebLogic エンタープライズ JavaBeans プログラマーズガイド ステートレス セッション EJB インスタンスを初期化する ...4-7 ステートレス セッション EJB をアクティブ化およびプールする.4-8 ステートフル セッション EJB のライフサイクル...4-8 ステートフル セッション EJB の作成...4-10 ステートフル セッション EJB のパッシベーション...4-10 パッシベーションの制御...4-10 ステートフル セッション Bean への同時アクセス ...4-13 エンティティ EJB に対する ejbLoad() と ejbStore() の動作 ...4-13 is-modified-method-name を使用した ejbStore() の呼び出しの制限 (EJB

1.1 のみ )...4-14 is-modified-method-name に関する警告 ...4-15 delay-updates-until-end-of-tx を使用した ejbStore() 動作の変更...4-15 EJB の同時方式 ...4-16 読み書き対応 EJB の同時方式 ...4-17 同時方式の指定...4-17 Exclusive 同時方式...4-18 Database 同時方式...4-18 Optimistic 同時方式 ...4-19 ReadOnly 同時方式 ...4-22 読み込み専用エンティティ Bean と ReadOnly 同時方式 ...4-23 ReadOnly 同時方式の制限...4-23 読み込み専用マルチキャストの無効化...4-23 read-mostly パターン ...4-25 エンティティ Bean の組み合わせキャッシング ...4-26 トランザクション間のキャッシング ...4-27 Exclusive 同時方式でのトランザクション間のキャッシング ...4-29 ReadOnly 同時方式でのトランザクション間のキャッシング...4-30 Optimistic 同時方式でのトランザクション間のキャッシング ...4-30 トランザクション間のキャッシングの有効化...4-30 トランザクション間のキャッシュを使用した ejbStore() の呼び出しの制 限...4-31 cache-between-transactions に関する制限...4-32 WebLogic Server クラスタにおける EJB...4-32 クラスタ化されたホームおよび EJBObject ...4-32 クラスタ化された EJB ホーム オブジェクト ...4-33

(7)

クラスタ化された EJBObject...4-34 さまざまなタイプの EJB に対するクラスタ化のサポート ...4-34 クラスタ内のステートレス セッション EJB...4-34 クラスタ内のステートフル セッション EJB...4-36 クラスタ内のエンティティ EJB ...4-39 クラスタ アドレス ...4-41 トランザクション管理...4-41 トランザクション管理の責任範囲 ...4-42 javax.transaction.UserTransaction の使い方...4-43 コンテナ管理 EJB に対する制限 ...4-43 トランザクションのアイソレーション レベル ...4-43 ユーザ トランザクションのアイソレーション レベルの設定 ...4-44 コンテナ管理トランザクションのアイソレーション レベルの設定 . 4-44 TransactionSerializable の制限 ...4-45 複数の EJB 間でのトランザクションの分散 ...4-46 単一トランザクション コンテキストから複数の EJB を呼び出す .. 4-46 複数操作トランザクションをカプセル化する ...4-47 WebLogic Server クラスタ内の複数の EJB 間でトランザクションを

分散する ...4-47 データベースの挿入サポート ...4-48 Delay-Database-Insert-Until ...4-49 一括挿入 ...4-49 リソース ファクトリ...4-50 JDBC データソース ファクトリの設定...4-51 URL 接続ファクトリの設定...4-53

5.

WebLogic Server

のコンテナ管理による永続性サービス

コンテナ管理による永続性サービスの概要 ...5-2 EJB の永続性サービス...5-3 WebLogic Server RDBMS 永続性の使い方...5-3 EJB 1.1 CMP の RDBMS 永続性用の記述 ...5-5 ファインダ シグネチャ...5-5 finder-list スタンザ...5-6 finder-query 要素 ...5-6

(8)

viii WebLogic エンタープライズ JavaBeans プログラマーズガイド EJB 1.1 CMP 用の WebLogic クエリ言語 (WLQL) の使用...5-7 WLQL 構文...5-7 WLQL 演算子...5-8 WLQL オペランド ...5-9 WLQL 式の例...5-9 CMP 1.1 ファインダ クエリとしての SQL の使用...5-11 EJB 2.0 用 EJB QL の使い方 ...5-12 EJB 2.0 Bean についての EJB QL の要件 ...5-12 WLQL から EJB QL への移行 ...5-13 EJB QL の EJB 2.0 WebLogic QL 拡張機能の使い方...5-14 upper 関数と lower 関数 ...5-14 SELECT DISTINCT の使用 ...5-15 ORDERBY の使用 ...5-15 サブクエリの使用 ...5-16 集約関数の使用...5-22 ResultSet を返すクエリの使用 ...5-23 Query インタフェースのプロパティベース メソッド...5-26 動的クエリの使用...5-27 動的クエリの有効化...5-27 動的クエリの実行 ...5-28 Oracle の SELECT HINT の使用...5-28 「get」および「set」メソッドの制限 ...5-29 Oracle DBMS の BLOB および CLOB DBMS カラムのサポート...5-29 デプロイメント記述子による BLOB の指定 ...5-30 デプロイメント記述子による CLOB の指定 ...5-30 WebLogic Server での EJB 1.1 CMP の調整更新...5-31 CMP 2.0 エンティティ Bean 向けに最適化されたデータベース更新...5-32 CMP キャッシュのフラッシュ...5-32 主キーの使用 ...5-33 1 つの CMP フィールドにマップされた主キー...5-34 1 つまたは複数の CMP フィールドをラップする主キー クラス...5-34 無名主キー クラス ...5-34 主キーの使用に関するヒント ...5-35 データベース カラムへのマッピング...5-36 EJB 2.0 CMP に対する自動主キー生成 ...5-36

(9)

有効なキー フィールド型...5-37 Oracle 用主キー サポートの指定 ...5-37 Microsoft SQL Server 用主キー サポートの指定...5-38 主キーの命名済シーケンス テーブル サポートの指定 ...5-39 EJB 2.0 CMP の複数のテーブル マッピング ...5-40 自動テーブル作成 ...5-41 コンテナ管理による関係 ...5-44 CMR について...5-44 要件と制限 ...5-44 関係のカーディナリティ...5-45 関係の方向 ...5-45 関係の削除 ...5-46 コンテナ管理による関係の定義 ...5-46 ejb-jar.xml での関係の指定 ...5-46 weblogic-cmp-jar.xml での関係の指定 ...5-49 CMR でのリレーションシップ キャッシングの使用...5-52 caching-element のネスト...5-54 リレーションシップ キャッシングの制限...5-54 カスケード削除 ...5-55 カスケード削除メソッド...5-55 データベース カスケード削除メソッド ...5-56 CMR とローカル インタフェース ...5-57 ローカル クライアントの使用...5-58 ローカル インタフェースに関するコンテナの変更...5-59 グループ...5-60 フィールド グループの指定...5-60 EJB リンクの使用 ...5-61 CMP フィールドの Java データ型 ...5-62

6.

WebLogic Server

コンテナ用の

EJB

のパッケージ化

EJB のパッケージ化に必要な手順...6-1 EJB コンポーネント ソース ファイルの見直し...6-2 WebLogic Server の EJB デプロイメント ファイル ...6-3 ejb-jar.xml ... 6-4 weblogic-ejb-jar.xml ... 6-4

(10)

x WebLogic エンタープライズ JavaBeans プログラマーズガイド weblogic-cmp-rdbms.xml ...6-4 デプロイメント ファイル間の関係...6-5 EJB デプロイメント記述子の指定と編集 ...6-6 デプロイメント ファイルの作成...6-7 EJB デプロイメント記述子の手動編集...6-7 EJB デプロイメント記述子エディタの使用 ...6-8 他の EJB およびリソースへの参照...6-9 外部 EJB の参照 ...6-9 アプリケーション スコープの EJB の参照 ...6-10 アプリケーション スコープの JDBC データソースの参照 ...6-11 デプロイメント ディレクトリへの EJB のパッケージ化...6-11 ejb.jar ファイル ...6-13 EJB クラスのコンパイルと EJB コンテナ クラスの生成 ...6-13 生成クラス名の衝突の可能性 ...6-15 WebLogic Server への EJB クラスのロード...6-15 ejb-client.jar の指定 ...6-16 マニフェスト クラスパス ...6-17

7.

WebLogic Server

への

EJB

のデプロイ

役割と分担...7-1 WebLogic Server 起動時の EJB のデプロイメント ...7-2 異なるアプリケーションへの EJB のデプロイメント ...7-3 動作中の WebLogic Server への EJB のデプロイ ...7-3 EJB デプロイメント名...7-4 動作中の環境への新しい EJB のデプロイメント...7-4 固定 EJB のデプロイメント - 特別な手順が必要 ...7-6 デプロイ済み EJB の表示 ...7-6 デプロイ済み EJB のアンデプロイ...7-7 EJB のアンデプロイメント ...7-7 EJB の再デプロイ...7-8 再デプロイ プロセス...7-8 再デプロイ手順 ...7-9 コンパイル済み EJB ファイルのデプロイ ...7-9 未コンパイルの EJB ファイルのデプロイ ...7-10 コンテナ管理による関係に関するデプロイメントの制限...7-11

(11)

8.

WebLogic Server EJB

のユーティリティ

EJBGen...8-1 EJBGen 構文...8-1 EJBGen の例...8-5 EJBGen タグ...8-7 @ejbgen:automatic-key-generation ...8-7 @ejbgen:cmp-field ... 8-7 @ejbgen:cmr-field ...8-8 @ejbgen:create-default-rdbms-tables ...8-8 @ejbgen:ejb-client-jar ...8-8 @ejbgen:ejb-local-ref ...8-9 @ejbgen:ejb-ref ... 8-9 @ejbgen:entity ...8-10 @ejbgen:env-entry...8-11 @ejbgen:finder ...8-12 @ejbgen:jndi-name ... 8-13 @ejbgen:local-home-method...8-13 @ejbgen:local-method ...8-13 @ejbgen:message-driven ...8-14 @ejbgen:primkey-field ...8-15 @ejbgen:relation ...8-15 @ejbgen:remote-home-method ... 8-16 @ejbgen:remote-method... 8-17 @ejbgen:resource-env-ref...8-17 @ejbgen:resource-ref... 8-18 @ejbgen:role-mapping ...8-18 @ejbgen:select ...8-19 @ejbgen:session ...8-19 @ejbgen:value-object ...8-21 ejbc ... 8-21 ejbc の利点...8-22 ejbc の構文...8-22 ejbc の引数...8-23 ejbc のオプション ...8-23 ejbc の例 ...8-25

(12)

xii WebLogic エンタープライズ JavaBeans プログラマーズガイド DDConverter ...8-26 DDConverter で利用できる変換オプション...8-26 DDConverter による EJB の変換...8-28 DDConverter の構文...8-29 DDConverter の引数...8-29 DDConverter のオプション ...8-29 DDConverter の例 ...8-30 weblogic.Deployer...8-30 weblogic.deploy...8-31 deploy の構文...8-31 deploy の引数...8-31 deploy のオプション ...8-32

9.

weblogic-ejb-jar.xml

文書型定義

EJB デプロイメント記述子 ...9-1 DOCTYPE ヘッダ情報...9-2 検証用 DTD (Document Type Definitions : 文書型定義 )...9-3 weblogic-ejb-jar.xml ...9-4 ejb-jar.xml ...9-4 2.0 の weblogic-ejb-jar.xml デプロイメント記述子ファイルの構造...9-5 2.0 の weblogic-ejb-jar.xml デプロイメント記述子要素...9-6 allow-concurrent-calls ...9-10 allow-remove-during-transaction ...9-11 cache-between-transactions ...9-12 cache-type...9-13 client-authentication ...9-14 client-cert-authentication...9-14 clients-on-same-server...9-15 concurrency-strategy ...9-16 confidentiality...9-17 connection-factory-jndi-name ...9-18 delay-updates-until-end-of-tx ...9-19 description ...9-20 destination-jndi-name ...9-21 ejb-name ...9-21

(13)

ejb-reference-description...9-22 ejb-ref-name ...9-23 例...9-23 ejb-local-reference-description... 9-24 enable-call-by-reference ...9-25 enable-dynamic-queries ...9-26 entity-cache ... 9-26 entity-cache-name ...9-28 entity-cache-ref... 9-29 entity-clustering...9-30 entity-descriptor ...9-31 estimated-bean-size ...9-32 externally-defined ...9-33 finders-load-bean... 9-33 global-role ...9-34 home-call-router-class-name ... 9-35 home-is-clusterable ...9-36 home-load-algorithm ...9-37 idempotent-methods ... 9-38 identity-assertion ... 9-39 idle-timeout-seconds ...9-40 iiop-security-descriptor ... 9-41 initial-beans-in-free-pool...9-42 initial-context-factory ...9-43 integrity ...9-44 invalidation-target ...9-44 is-modified-method-name ...9-45 isolation-level ...9-46 jms-polling-interval-seconds ... 9-47 jms-client-id ...9-48 jndi-name...9-49 local-jndi-name... 9-50 max-beans-in-cache...9-51 max-beans-in-free-pool ... 9-52 message-driven-descriptor ...9-53

(14)

xiv WebLogic エンタープライズ JavaBeans プログラマーズガイド method ...9-54 method-intf ...9-55 method-name ...9-55 method-param...9-56 method-params ...9-57 persistence ...9-58 persistence-use...9-59 persistent-store-dir...9-60 pool ...9-61 principal-name ...9-62 provider-url...9-62 read-timeout-seconds...9-63 reference-descriptor...9-64 relationship-description ...9-64 replication-type...9-65 res-env-ref-name...9-66 res-ref-name...9-66 resource-description ...9-67 resource-env-description ...9-68 role-name ...9-69 security-permission...9-69 security-permission-spec ...9-70 security-role-assignment...9-71 session-timeout-seconds ...9-72 stateful-session-cache ...9-73 stateful-session-clustering ...9-74 stateful-session-descriptor ...9-75 stateless-bean-call-router-class-name...9-76 stateless-bean-is-clusterable ...9-77 stateless-bean-load-algorithm...9-78 stateless-bean-methods-are-idempotent ...9-79 stateless-clustering...9-79 stateless-session-descriptor...9-80 transaction-descriptor ...9-81 transaction-isolation ...9-81

(15)

transport-requirements ...9-82 trans-timeout-seconds...9-83 type-identifier ...9-84 type-storage ... 9-85 type-version ... 9-86 weblogic-ejb-jar ...9-87 weblogic-enterprise-bean ... 9-87 5.1 の weblogic-ejb-jar.xml デプロイメント記述子ファイルの構造...9-88 5.1 の weblogic-ejb-jar.xml デプロイメント記述子要素...9-88 caching-descriptor ...9-89 max-beans-in-free-pool...9-89 initial-beans-in-free-pool ...9-89 max-beans-in-cache ...9-90 idle-timeout-seconds ...9-90 cache-strategy ... 9-90 read-timeout-seconds ... 9-91 persistence-descriptor...9-91 is-modified-method-name...9-92 delay-updates-until-end-of-tx ... 9-92 persistence-use ...9-93 db-is-shared...9-94 stateful-session-persistent-store-dir ...9-94 clustering-descriptor...9-94 home-is-clusterable ... 9-95 home-load-algorithm ... 9-95 home-call-router-class-name ...9-95 stateless-bean-is-clusterable... 9-96 stateless-bean-load-algorithm ... 9-96 stateless-bean-call-router-class-name ...9-96 stateless-bean-methods-are-idempotent...9-96 transaction-descriptor ...9-97 trans-timeout-seconds ...9-97 reference-descriptor ...9-97 resource-description ...9-98 ejb-reference-description ...9-98

(16)

xvi WebLogic エンタープライズ JavaBeans プログラマーズガイド enable-call-by-reference...9-98 jndi-name...9-99 transaction-isolation ...9-99 isolation-level...9-99 method...9-100 security-role-assignment ...9-101 ...9-101

10. weblogic-cmp-rdbms-jar.xml

文書型定義

EJB デプロイメント記述子 ...10-1 DOCTYPE ヘッダ情報...10-2 検証用 DTD (Document Type Definitions : 文書型定義 )...10-3 weblogic-cmp-rdbms-jar.xml...10-4 ejb-jar.xml ...10-4 2.0 の weblogic-cmp-rdbms-jar.xml デプロイメント記述子ファイルの構造 .. 10-5 2.0 の weblogic-cmp-rdbms-jar.xml デプロイメント記述子要素...10-6 automatic-key-generation ...10-9 caching-element...10-10 caching-name...10-11 check-exists-on-method...10-12 cmp-field...10-13 cmr-field ...10-14 column-map ...10-15 create-default-dbms-tables ...10-16 database-type ...10-17 data-source-name...10-18 db-cascade-delete ...10-19 dbms-column ...10-20 dbms-column-type...10-21 description ...10-22 delay-database-insert-until ...10-23 例 ...10-23 ejb-name ...10-24 enable-tuned-updates ...10-25

(17)

field-group ... 10-26 field-map ... 10-27 foreign-key-column ... 10-28 foreign-key-table ... 10-29 generator-name ... 10-30 generator-type... 10-31 group-name... 10-32 include-updates... 10-33 機能 ...10-33 key-cache-size ... 10-34 例...10-34 key-column ... 10-35 max-elements ... 10-36 method-name ... 10-37 method-param... 10-38 method-params ... 10-39 optimistic-column... 10-40 primary-key-table ... 10-41 query-method ... 10-42 relation-name... 10-43 relationship-caching ... 10-44 relationship-role-map ... 10-46 relationship-role-name ... 10-47 sql-select-distinct... 10-48 table-map ... 10-49 table-name ... 10-51 use-select-for-update ... 10-52 validate-db-schema-with ... 10-53 verify-columns ... 10-54 weblogic-ql... 10-55 weblogic-query... 10-56 weblogic-rdbms-bean ... 10-57 weblogic-rdbms-jar ... 10-58 weblogic-rdbms-relation ... 10-59 weblogic-relationship-role ... 10-60

(18)

xviii WebLogic エンタープライズ JavaBeans プログラマーズガイド 1.1 の weblogic-cmp-rdbms-jar.xml デプロイメント記述子ファイルの構造 .. 10-61 1.1 の weblogic-cmp-rdbms-jar.xml デプロイメント記述子要素...10-62 RDBMS 定義要素...10-62 pool-name...10-62 schema-name...10-62 table-name ...10-63 EJB フィールド マッピング要素 ...10-63 attribute-map ...10-63 object-link ...10-63 bean-field ...10-63 dbms-column...10-64 ファインダ要素 ...10-64 finder-list...10-64 finder ...10-65 method-name...10-65 method-params...10-65 method-param ...10-65 finder-query...10-66 finder-expression...10-66

(19)

このマニュ アルの内容

こ のマニ ュ アルでは、WebLogic Server 上でエン タープ ラ イ ズ JavaBeans (EJB) を 開発およびデプ ロ イする方法を説明し ます。 こ のマニ ュ アルの内容は以下の と お

り です。

 第 1 章 「WebLogic Server エン タープ ラ イ ズ JavaBean の概要」 では、 WebLogic Server でサポー ト さ れる EJB の機能の概要について説明し ます。  第 2 章 「EJB の設計」 では、 開発者が EJB を作成する ために使用で き る設計

手法の概要について説明し ます。

 第 3 章 「 メ ッ セージ駆動型 Bean の設計」 では、 メ ッ セージ駆動型 Bean を 開発し て WebLogic Server コ ンテナにデプ ロ イする方法について説明し ま す。

 第 4 章 「WebLogic Server EJB コ ンテナ と サポー ト さ れ るサービ ス」 では、 WebLogic Server コ ンテナを使って利用で き る サービ スについて説 明し ます。  第 5 章 「WebLogic Server の コ ンテナ管理によ る永続性サービ ス」 では、

WebLogic Server コ ンテナ内のエンテ ィ テ ィ EJB で利用で き る EJB のコ ンテ ナ管理によ る永続性サービ スについて説明し ます。

 第 6 章 「WebLogic Server コ ンテナ用の EJB のパ ッ ケージ化」 では、 EJB を パ ッ ケージ化し て WebLogic Server にデプ ロ イする ために必要な手順につい て説明し ます。

 第 7 章 「WebLogic Server への EJB のデプ ロ イ 」 では、 EJB コ ンテナに EJB をデプ ロ イする手順について説明し ます。

 第 8 章 「WebLogic Server EJB のユーテ ィ リ テ ィ 」 では、 EJB で使用する WebLogic Server に付属のユーテ ィ リ テ ィ について説明し ます。

 第 9 章 「weblogic-ejb-jar.xml 文書型定義」 では、 WebLogic Server に付属の weblogic-ejb-jar.xml フ ァ イルにあ る、 WebLogic 固有のデプロ イ メ ン ト 記述子について説明し ます。

(20)

xx WebLogic エ ン タ ープ ラ イズ JavaBeans プ ログラ マーズガ イ ド

 第 10 章 「weblogic-cmp-rdbms-jar.xml 文書型定義」 では、 WebLogic Server に付属の weblogic-cmp-rdbms-jar.xml フ ァ イ ルにあ る、 WebLogic 固有の デプ ロ イ メ ン ト 記述子について説明し ます。

対象読者

こ のマニ ュ アルは、 動的な Web ベースのアプ リ ケーシ ョ ンで使用するエン ター プ ラ イ ズ JavaBeans (EJB) の開発に関心のあ る アプ リ ケーシ ョ ン開発者を主な対 象 と し ています。 EJB アーキテ ク チャ、 XML コーデ ィ ング、 および Java プ ロ グ ラ ミ ングに読者が精通し てい る こ と を前提 と し て書かれてい ます。

e-docs Web

サイ ト

BEA WebLogic Server 製品の ド キ ュ メ ン ト は、 BEA の Web サ イ ト で入手でき ま す。 BEA のホーム ページで [ 製品の ド キ ュ メ ン ト ] を ク リ ッ ク し ます。

このマニュ アルの印刷方法

Web ブ ラ ウザの [ フ ァ イ ル|印刷 ] オプシ ョ ン を使用する と 、 Web ブ ラ ウザか ら こ のマニ ュ アルのフ ァ イルを一度に 1 つずつ印刷で き ます。

こ のマニ ュ アルの PDF 版は、 WebLogic Server の Web サ イ ト で入手でき ます。 PDF を Adobe Acrobat Reader で開 く と 、 マニ ュ アルの全体 ( ま たは一部分 ) を書 籍の形式で印刷でき ます。 PDF を表示する には、 WebLogic Server ド キ ュ メ ン ト のホーム ページ を開き、 [ ド キ ュ メ ン ト のダウ ン ロー ド ] を ク リ ッ ク し て、 印刷 する マニ ュ アルを選択し ます。

Adobe Acrobat Reader は Adobe の Web サ イ ト (http://www.adobe.co.jp) で無料で 入手でき ます。

(21)

関連情報

BEA の Web サ イ ト では、 WebLogic Server の全マニ ュ アルを提供し ています。 ま た、 WebLogic Server でエン タープ ラ イ ズ JavaBean を使用する際に役に立つ関 連情報を以下に示し ます。

 Sun Microsystems の EJB 仕様の詳細については、JavaSoft EJB 仕様を参照し

て く だ さ い。

 J2EE 仕様の詳細については、JavaSoft J2EE 仕様を参照し て く だ さ い。

 Sun Microsystems の EJB デプ ロ イ メ ン ト 記述子の詳細については、JavaSoft EJB 仕様を参照し て く だ さ い。

 WebLogic Server の weblogic-ejb-jar.xml フ ァ イ ルにあ るデプロ イ メ ン ト 記述 子の詳細については、「weblogic-ejb-jar.xml 文書型定義」 を参照し て く だ さ い。

 WebLogic Server の weblogic-cmp-rdbms-jar.xml フ ァ イルにあ るデプ ロ イ メ ン ト 記述子の詳細については、第 10 章 「weblogic-cmp-rdbms-jar.xml 文書型 定義」 を参照し て く だ さ い。

 ト ラ ンザ ク シ ョ ンの詳細については、 『WebLogic JTA プ ロ グ ラ マーズ ガ イ

ド』 を参照し て く だ さ い。

 WebLogic におけ る JavaSoft Remote Method Invocation (RMI) 仕様の実装の 詳細については、 以下を参照し て く だ さ い。

 JavaSoft Remote Method Invocation 仕様

 『WebLogic RMI プ ロ グ ラ マーズ ガ イ ド』

(22)

xxii WebLogic エ ン タ ープ ラ イズ JavaBeans プ ログラ マーズガ イ ド

サポー ト 情報

WebLogic Server の ド キ ュ メ ン ト に関する ユーザか ら のフ ィ ー ド バ ッ ク は弊社に と って非常に重要です。 質問や意見などがあれば、 電子 メ ールで

[email protected]までお送 り く だ さ い。 寄せられた意見について

は、WebLogic Server ド キ ュ メ ン ト を作成および改訂する BEA の専門の担当者が 直に目を通し ます。

電子 メ ールの メ ッ セージには、 ご使用の ソ フ ト ウ ェ アの名前 と バージ ョ ン、 およ び ド キ ュ メ ン ト の タ イ ト ル と 日付をお書き添え く だ さ い。

本バージ ョ ンの BEA WebLogic Server について不明な点があ る場合、 ま たは BEA WebLogic Server の イ ン ス ト ールおよび動作に問題があ る場合は、 BEA WebSUPPORT (www.bea.com) を通じ て BEA カ ス タ マ サポー ト までお問い合わ

せ く だ さ い。 カ ス タ マ サポー ト への連絡方法については、 製品パ ッ ケージに同 梱 さ れている カ ス タ マ サポー ト カー ド に も記載さ れています。 カ ス タマ サポー ト では以下の情報をお尋ねし ますので、 お問い合わせの際はあ ら か じ めご用意 く だ さ い。  お名前、 電子 メ ール ア ド レ ス、 電話番号、 フ ァ ク ス番号  会社の名前 と 住所  お使いの機種 と コー ド 番号  製品の名前 と バージ ョ ン  問題の状況 と 表示 さ れる エ ラー メ ッ セージの内容

(23)

表記規則

こ のマニ ュ アルでは、 全体を通し て以下の表記規則が使用 さ れています。 表記法 適用 〔Ctrl〕 + 〔Tab〕 複数のキーを同時に押す こ と を示す。 斜体 強調ま たは書籍の タ イ ト ルを示す。 等幅テキスト コー ド サンプル、 コ マ ン ド と そのオプシ ョ ン、 データ 構造体 と そ の メ ン バー、 デー タ型、 デ ィ レ ク ト リ 、 およ びフ ァ イル名 と その 拡張子を示す。 等幅テ キ ス ト はキーボー ド か ら 入力す る テ キ ス ト も 示す。 例 :

#include <iostream.h> void main ( ) the pointer psz chmod u+w * \tux\data\ap .doc tux.doc BITMAP float 斜体の等幅テ キスト コー ド 内の変数を示す。 : String expr すべて大文 字のテ キ ス ト デバ イ ス名、 環境変数、 お よび論理演算子を示す。 例 : LPT1 SIGNON OR { } 構文の中で複数の選択肢を示す。 実際には、 こ の括弧は入力 し な い。

(24)

xxiv WebLogic エ ン タ ープ ラ イズ JavaBeans プ ログラ マーズガ イ ド

[ ] 構文の中で任意指定の項目を示す。 実際には、 こ の括弧は入力 し ない。

例 :

buildobjclient [-v] [-o name ] [-f file-list]...[-l file-list]... | 構文の中で相互に排他的な選択肢を区切る 。 実際には、 こ の記号 は入力 し ない。 ... コ マ ンド ラ イ ンで以下のいずれか を示す。  引数を複数回繰 り 返す こ と がで き る。  任意指定の引数が省略 さ れてい る 。  パ ラ メ ータ や値な ど の情報を追加入力で き る。 実際には、 こ の省略符号は入力 し ない。 例 :

buildobjclient [-v] [-o name ] [-f file-list]...[-l file-list]... . . . コ ー ド サンプルま たは構文で項目が省略 さ れてい る こ と を示す。 実際には、 こ の省略符号は入力 し ない。 表記法 適用

(25)

1

WebLogic Server

エンタープライ

JavaBean

の概要

WebLogic Server には、Sun Microsystems の仕様で定義されているエンタープラ イズ JavaBean (EJB) アーキテクチャが実装されています。

注意: WebLogic Server は Sun の J2EE 仕様、EJB 1.1 仕様、および、EJB 2.0 仕

様に準拠しています。EJB の機能および動作の説明箇所で、EJB 1.1 また は EJB 2.0 向けと明記されている場合を除いては、このマニュアルのす べての情報は両方の実装に関連したものです。既存の EJB 1.1 Bean をこ のバージョンの WebLogic Server にデプロイできます。ただし、新しい

Bean を開発する場合、EJB 2.0 Bean を開発することをお勧めします。

以下の節では、WebLogic Server のエンタープライズ JavaBean の実装で導入され た EJB の機能と変更点について概説します。

 エンタープライズ JavaBean の概要

 Java 仕様の実装

 WebLogic Server による EJB 2.0 のサポート

 EJB ロール

 WebLogic Server 7.0 の EJB 機能の強化

 EJB 開発者向けツール

エンタープライズ

JavaBean

の概要

エンタープライズ JavaBean は、ビジネス ロジックを実装する再利用可能な Java コンポーネントで、コンポーネントベースの分散ビジネス アプリケーションの 開発を可能にします。EJB は EJB コンテナに収められ、永続性、セキュリティ、

(26)

1 WebLogic Server エンタープライズ JavaBean の概要

1-2 WebLogic エンタープライズ JavaBeans プログラマーズガイド

トランザクション、同時実行性などの標準セットのサービスを提供します。エン タープライズ JavaBean は、サーバサイド コンポーネントを定義するための標準 規格です。WebLogic Server のエンタープライズ JavaBean コンポーネント アー キテクチャの実装は、Sun Microsystems の EJB 仕様に基づいています。

EJB

コンポーネント

EJB は、主に次の 3 つのコンポーネントで構成されます。  リモートインタフェース。 こ の イ ン タ フ ェースは、 ク ラ イ アン ト に対し て ビ ジネ ス ロ ジ ッ ク を公開し ます。  ホームインタフェース。EJB ファクトリ。クライアントは、このインタ フェースを使用して、EJB インスタンスを作成、検索、および削除します。  Bean クラス。このインタフェースは、ビジネス ロジックを実装します。 EJB を作成するには、分散アプリケーションのビジネス ロジックを EJB の実装 クラスにコーディングし、デプロイメント記述子ファイルのデプロイメント パ ラメータを指定し、EJB を JAR ファイルにパッケージ化します。EJB を

WebLogic Server にデプロイするには、JAR ファイルから個別にデプロイする方

法と、他の EJB および Web アプリケーションと一緒に EAR ファイルにパッ ケージ化して EAR ファイルをデプロイする方法があります。クライアント アプ リケーションは、Bean のホーム インタフェースを使用して EJB を見つけたり、 Bean のインスタンスを作成したりすることができます。クライアントは、EJB のリモート インタフェースを使用して EJB のメソッドを呼び出せるようになり ます。 WebLogic Server は、EJB コンテナを管理し、データベース管理、セキュ リティ管理、トランザクション サービスなどのシステムレベルのサービスへの アクセスを提供します。

EJB

の種類

EJB 仕様では、以下の 4 種類のエンタープライズ JavaBean を定義しています。  ステートレスセッション。この非永続 EJB のインスタンスは、メソッド間 の対話または交信ステートを保存しないサービスを提供します。任意のイン スタンスを任意のクライアントで使用できます。ステートレス セッション

(27)

Java 仕様の実装 Bean は、コンテナ管理または Bean 管理のどちらかのトランザクション境界 定義を使用できます。  ステートフルセッション。この非永続 EJB のインスタンスは、メソッド間 およびトランザクション間で状態を保持します。各セッションは特定のクラ イアントに関連付けられます。ステートフル セッション Bean は、コンテナ 管理または Bean 管理どちらかのトランザクション境界定義を使用できます。  エンティティ。この永続 EJB のインスタンスは、通常はデータベース内の行 であるデータのオブジェクト ビューを表します。エンティティ Bean は一意 の識別子として主キーを持ちます。エンティティ Bean の永続性は、コンテ ナ管理でも Bean 管理でもかまいませんが、コンテナ管理によるトランザク ションの境界設定のみを使用します。

 メッセージ駆動型。この EJB のインスタンスは Java Message Service (JMS) に統合されて、標準の JMS コンシューマとして動作し、サーバと JMS 間の 非同期処理を実行するメッセージ駆動型 Bean の機能を提供します。

WebLogic Server コンテナは、必要に応じて Bean のインスタンスを作成し、 JMS メッセージをインスタンスに渡すことによってメッセージ駆動型 Bean と直接対話します。メッセージ駆動型 Bean は、コンテナ管理または Bean 管 理のどちらかのトランザクション境界定義を使用できます。

注意: メッセージ駆動型 Bean は、Sun Microsystems EJB 2.0 仕様の一部です。

EJB 1.1 仕様には含まれていません。

Java

仕様の実装

WebLogic Server は、次のような Java 仕様に準拠しています。

J2EE

仕様

(28)

1 WebLogic Server エンタープライズ JavaBean の概要

1-4 WebLogic エンタープライズ JavaBeans プログラマーズガイド

EJB 2.0

仕様

WebLogic Server は、エンタープライズ JavaBeans 2.0 の実装に完全に準拠してお り、それをプロダクション段階で使用することができます。

WebLogic Server EJB

リソースの保護

大部分のビジネス アプリケーションでは、特定のユーザだけがある条件の下で アプリケーション リソースにアクセスできるように、リソースの保護措置がと られています。WebLogic Server には、このように EJB リソースを保護するため の堅牢な機能が含まれています。

『WebLogic リソースのセキュリティ』では、アプリケーションに関する背景情

報と、EJB を含む WebLogic Server アプリケーション リソースの保護について説 明しています。

WebLogic Server

による

EJB 2.0

のサポー

WebLogic Server は、Sun Microsystems の EJB 2.0 仕様の実装をサポートしてお り、Sun Microsystems の EJB 1.1 仕様に準拠しています。ほとんどの場合、この バージョンの WebLogic Server で EJB 1.1 Bean を使用することができます。ただ し、既存の EJB デプロイメントを、旧バージョンの WebLogic Server からこの バージョンの EJB コンテナに移行しなければならない場合があります。その場 合は、8-26 ページの「DDConverter」で Bean の変換手順を参照してください。

Sun Microsystems の EJB 2.0 仕様では、以下の新機能がサポートされています。  Java Messaging Service (JMS) コンシューマであるメッセージ起動型 Bean と

いう新しいタイプの EJB。詳細については、第 3 章「メッセージ駆動型

(29)

EJB ロール  コンテナ管理の永続性を新しい方法で処理する、新しいエンティティ EJB コ ンテナ管理の永続性モデル。詳細については、第 5 章「WebLogic Server の コンテナ管理による永続性サービス」を参照してください。  エンティティ EJB 間のコンテナ管理による関係を作成するモデルでは、実装 クラスの Bean とデプロイメント記述子の間の関係を定義できます。詳細に ついては、第 5 章「WebLogic Server のコンテナ管理による永続性サービス」 を参照してください。  EJB とそのプロパティをクエリするための EJB-QL という新しい標準クエリ 言語。詳細については、第 5 章「WebLogic Server のコンテナ管理による永 続性サービス」を参照してください。  新しい ejbSelect メソッド。このメソッドを使用すると、エンティティ EJB では、EJB-QL クエリを使用して、デプロイメント記述子に定義されて いるプロパティを内部的にクエリできます。詳細については、第 5 章 「WebLogic Server のコンテナ管理による永続性サービス」を参照してくださ い。  セッションおよびエンティティ Bean 用のローカル インタフェース。EJB の 関係は、ローカル インタフェースに基づいています。関係に関わる EJB に は、ローカル インタフェースが必要です。詳細については、第 5 章 「WebLogic Server のコンテナ管理による永続性サービス」を参照してくださ い。  エンティティ Bean の特定のインスタンスに固有ではないホーム ビジネス メ ソッドを実行することを可能にするホーム メソッド。エンティティ Bean に 対して 1 つまたは複数のホーム メソッドを定義するには、ホーム インタ フェースを使用します。詳細については、第 2 章「EJB の設計」を参照して ください。

EJB

ロール

EJB の開発プロセスは、以下のロールに明確に分けられます。

(30)

1 WebLogic Server エンタープライズ JavaBean の概要 1-6 WebLogic エンタープライズ JavaBeans プログラマーズガイド

アプリケーション

ロール

 エンタープライズ Bean プロバイダ - エンタープライズ Bean プロバイダは EJB を生成します。生成されるのは、1 つまたは複数の EJB が入った ejb.jar ファイルです。プロバイダは、このマニュアルで説明されている設

計プロセスを使用して、WebLogic Server 環境にデプロイする EJB を設計し ます。 設計プロセスの詳細については、第 2 章「EJB の設計」を参照してくださ い。  アプリケーションアセンブラ - アプリケーション アセンブラは、EJB を JAR、EAR、WAR などのデプロイ可能なユニットにまとめます。EJB とア プリケーション アセンブリに関する指示を含む JAR、EAR、または WAR ファイルが作成されます。これらの指示は、デプロイメント記述子によって 設定されます。アセンブラは、設計プロセスと EJB デプロイメント記述子の 要素に従って、デプロイメント ユニットをアセンブルします。 設計プロセスの詳細については、第 2 章「EJB の設計」を参照してくださ い。 アセンブリ プロセスの詳細については、第 6 章「WebLogic Server コン テナ用の EJB のパッケージ化」を参照してください。 デプロイメント記述子 の詳細については、第 9 章「weblogic-ejb-jar.xml 文書型定義」と第 10 章 「weblogic-cmp-rdbms-jar.xml 文書型定義」を参照してください。

インフラストラクチャ

ロール

 コンテナプロバイダ - コンテナ プロバイダは EJB のデプロイメント ツー ル、コンテナの監視および管理用ツール、デプロイされた EJB インスタンス の実行時のサポートを提供します。このサポートには、トランザクション管 理、セキュリティ管理、クライアントのネットワーク分散、スケーラビリ ティなどのサービスが含まれます。コンテナ プロバイダは、このマニュアル で説明されているコンテナ管理プロセスを使用して、コンテナを提供しま す。

コンテナ管理プロセスの詳細については、第 4 章「WebLogic Server EJB コ ンテナとサポートされるサービス」を参照してください。

 永続性マネージャプロバイダ - 永続性マネージャ プロバイダは、EJB がコ

(31)

WebLogic Server 7.0 の EJB 機能の強化 の永続性サポートを担当します。このサポートは、EJB とデータベース間で データをやり取りするコードを生成するために、デプロイメント時に提供さ れます。永続性マネージャ プロバイダは、このマニュアルで説明されている デプロイ プロセスおよびコンテナ管理による永続性 (CMP) 情報を使用して、 コンテナ管理による永続性を提供します。 コンテナ管理による永続性の詳細については 第 5 章「WebLogic Server のコ ンテナ管理による永続性サービス」を、デプロイ プロセスの詳細については

第 6 章「WebLogic Server コンテナ用の EJB のパッケージ化」を参照してく ださい。

デプロイメントおよび管理ロール

 デプロイヤ - デプロイヤは、デプロイメント記述子のアプリケーション アセ

ンブリ指示に従って、JAR、EAR、または WAR ファイルに収められている

EJB を対象の環境にデプロイします。対象の環境には、WebLogic Server 環

境とコンテナが含まれます。デプロイヤによって、EJB が対象の環境に合わ せてカスタマイズされ、特定の EJB コンテナにデプロイされます。デプロイ ヤは、このマニュアルで説明されているデプロイ プロセスを使用して、EJB をデプロイします。

デプロイ プロセスの詳細については、第 7 章「WebLogic Server への EJB の デプロイ」を参照してください。  システム管理者 - システム管理者は、WebLogic Server およびコンテナが含 まれるコンピューティングおよびネットワーキング インフラストラクチャの コンフィグレーションと管理を行います。システム管理者は、『管理者ガイ ド』と WebLogic Server オンライン ヘルプに説明されている管理プロセスを 使用して、デプロイ済みアプリケーションを実行時に管理します。 システム管理者のタスクの詳細については、『管理者ガイド』を参照してく ださい。

WebLogic Server 7.0

EJB

機能の強化

このリリースの WebLogic Server では、EJB の以下の拡張機能が新しく導入され ています。

(32)

1 WebLogic Server エンタープライズ JavaBean の概要 1-8 WebLogic エンタープライズ JavaBeans プログラマーズガイド

動的クエリのサポート

動的クエリを使用すると、アプリケーション コードでプログラム的にクエリを 作成したり実行できるようになります。そのため、どのファインダ クエリも静 的なものにもはや留まらず、EJB のデプロイメント記述子にハードコーディング する必要がありません。新たなクエリを作成し実行するのに EJB を更新し再デ プロイしなくて済み、EJB のデプロイメント記述子のサイズが縮小します。動的 クエリの詳細については、5-27 ページの「動的クエリの使用」を参照してくだ さい。

メッセージ駆動型

Bean

の移行サービスのサポート

メッセージ駆動型 Bean 移行サービスを使用すると、メッセージ駆動型 Bean お よび Java Messaging Service (JMS) サーバを同じクラスタ内の別のサーバに移行 でき、その結果、メッセージ駆動型 Bean の回復が促進されます。WebLogic Server の以前のバージョンには、サーバ障害時における JMS サーバとメッセー ジ駆動型 Bean の回復メカニズムは備わっていませんでした。メッセージ駆動型 Bean 移行サービスの詳細については、3-13 ページの「メッセージ駆動型 Bean の移行サービス」を参照してください。

EJB CMP

の複数のテーブル

マッピングのサポート

複数のテーブル マッピングを利用することにより、1 つの EJB を 1 つの DBMS データベース内の複数のテーブルにマッピングできるようになります。 WebLogic Server 固有の CMP コンテナ XML デプロイメント記述子を使用する と、複数の DBMS テーブルおよび列を EJB および EJB フィールドにマッピング できます。複数のテーブル マッピングの詳細については、5-40 ページの「EJB 2.0 CMP の複数のテーブル マッピング」を参照してください。

(33)

WebLogic Server 7.0 の EJB 機能の強化

EJB WebLogic QL

拡張サポート

WebLogic Server のこのリリースでの EJB WebLogic QL 拡張サポートには、

WebLogic QL クエリ言語に対する一連の拡張が含まれます。WebLogic QL は、

EJB QL と呼ばれている EJB 2.0 クエリ言語を WebLogic Server 独自に拡張したも のです。この拡張では次のような機能をサポートしています。

 サブクエリ

 集約関数

 ResultSet を返すクエリ

WebLogic の EJB QL 拡張の詳細については、5-12 ページの「EJB 2.0 用 EJB QL の使い方」を参照してください。

 NO WAIT を伴う SELECT FOR UPDATE

TRANSACTION_READ_COMMITTED UPDATES の WebLogic の EJB QL

拡張の詳細については、4-45 ページの「Oracle データベースに関する特別な 注意」を参照してください。

オプティミスティックな同時実行性のサポート

オプティミスティックな同時実行性のサポートは、WebLogic Server が提供する 新たな同時方式です。キャッシング付きまたはキャッシングなしのオプティミス ティックなサポートを提供します。WebLogic Server はトランザクションをコ ミットする前に、データが変更されていないことを確かめることにより、データ の一貫性を保証します。この機能の詳細については、4-19 ページの「Optimistic 同時方式」を参照してください。

ReadOnly

エンティティの同時実行性のサポート

読み込み専用エンティティ Bean の同時実行性のサポートにより、WebLogic Server では、Bean への同時アクセスを必要とするトランザクションごとに、 別々の読み込み専用 Bean インスタンス をアクティブ化できます。これにより、 EJB コンテナでの排他的ロックの必要性がなくなり、同時に同じ Bean にアクセ

(34)

1 WebLogic Server エンタープライズ JavaBean の概要 1-10 WebLogic エンタープライズ JavaBeans プログラマーズガイド スするリクエストを並列処理できます。読み込み専用エンティティ Bean の キャッシングについては、4-22 ページの「ReadOnly 同時方式」を参照してくだ さい。

組み合わせキャッシングのサポート

組み合わせキャッシングのサポートにより、1 つのキャッシュを複数エンティ ティ Bean で使用するようにコンフィグレーションできます。これまでは、アプ リケーションの一部である各エンティティ Bean ごとに別々のキャッシュをコン フィグレーションする必要がありました。組み合わせキャッシングの詳細につい ては、4-26 ページの「エンティティ Bean の組み合わせキャッシング」を参照し てください。

リレーションシップ

キャッシングのサポート

リレーションシップ キャッシングのサポートにより、関係する複数のエンティ ティ Bean を 1 つのキャッシュにロードすることができ、エンティティ Bean の パフォーマンスが向上します。また、関係する複数の Bean に結合クエリを発行 することによってクエリの回数を減らせます。リレーションシップ キャッシン グの詳細については、4-27 ページの「エンティティ Bean のリレーションシップ キャッシング」を参照してください。

EJB

リンクのサポート

EJB リンクのサポートにより、アプリケーションコンポーネント内で宣言した

EJB 参照を、同じ J2EE アプリケーションに含まれているエンタープライズ Bean

にリンクできるようになります。EJB リンクの詳細については、5-61 ページの

(35)

EJB 開発者向けツール

一括挿入のサポート

一括挿入のサポートにより、コンテナ管理による永続性 (CMP) Bean の作成にお ける効率が向上します。 EJB コンテナが 1 つの SQL 文で CMP Bean での複数回の データベース挿入を実行できるようになるためです。この機能により、コンテナ が何度もデータベースの挿入をしなくて済みます。この機能の詳細については、 4-48 ページの「データベースの挿入サポート」を参照してください。

EJB

開発者向けツール

BEA では、EJB の作成とコンフィグレーションを支援するツールを提供してい ます。

スケルトン

デプロイメント記述子を作成する

ANT

タスク

スケルトン デプロイメント記述子を作成するときに、WebLogic ANT ユーティ リティを利用できます。ANT ユーティリティは WebLogic Server 配布キットと 共に出荷されている Java クラスです。ANT タスクによって、EJB を含むディレ

クトリが調べられ、その ejb.jar ファイルを基にデプロイメント記述子が作成

されます。ANT ユーティリティは、個別の EJB に必要なコンフィグレーション やマッピングに関する情報をすべて備えているわけではないので、ANT ユー ティリティによって作成されるスケルトン デプロイメント記述子は不完全なも のです。ANT ユーティリティがスケルトン デプロイメント記述子を作成した後 で、テキスト エディタ、XML エディタ、または Administration Console の EJB デプロイメント記述子エディタを使ってデプロイメント記述子を編集し、EJB の コンフィグレーションを完全なものにします。

ANT ユーティリティを使ってデプロイメント記述子を作成する方法の詳細につ

いては、『WebLogic Server アプリケーションの開発』の「エンタープライズ

(36)

1 WebLogic Server エンタープライズ JavaBean の概要 1-12 WebLogic エンタープライズ JavaBeans プログラマーズガイド

WebLogic Builder

WebLogic Builder は、ビジュアル環境を提供する開発ツールであり、アプリケー ションのデプロイメント記述子 XML ファイルを編集できます。XML ファイル を編集する際、WebLogic Builder のインタフェース上で XML ファイルを見るこ とができます。 この際、XML ファイルをテキスト編集する必要はありません。 WebLogic Builder ツールの使い方については、 『WebLogic Builder』を参照して

ください。

EJBGen

EJBGenは、エンタープライズ JavaBeans 2.0 のコード ジェネレータです。Bean

クラス ファイルに javadoc タグで注釈を付けた後、 EJBGenを使って EJB アプリ

ケーションのリモート クラス、ホーム クラス、デプロイメント記述子ファイル を生成することができます。EJBGen とサポートされている javadoc タグの詳細

については、8-1 ページの「EJBGen」を参照してください。

weblogic.Deployer

weblogic.Deployer コマンドライン ユーティリティは、削除された

weblogic.deploy ユーティリティに置き換わり、WebLogic Server 7.0 で新たに

加わったユーティリティです。weblogic.Deployer ユーティリティを使うと、

コマンドライン、シェル スクリプト、または、Java 以外の自動化されたあらゆ る環境からデプロイメントを開始できるようになります。

weblogic.Deployer の使い方とコマンド リストについては、「WebLogic Server デ

(37)

EJB 開発者向けツール

WebLogic EJB

デプロイメント記述子エディタ

WebLogic Server Administration Console には、EJB デプロイメント記述子エディ タが統合されています。この統合エディタを使用する前に、少なくとも ejb.jar ファイルに追加する次のデプロイメント記述子ファイルのスケルトン を作成する必要があります。  ejb-jar.xml  weblogic-ejb-jar.xml  weblogic-cmp-rdbms-jar.xml 詳細については、6-6 ページの「EJB デプロイメント記述子の指定と編集」を参 照してください。

XML

エディタ

XML エディタは Ensemble が提供する、XML ファイルの作成と編集のための簡 単で使いやすいツールです。このツールを使うと、指定した DTD または XML スキーマに従って XML コードの有効性を検証できます。XML エディタは Windows または Solaris マシンで使用でき、Dev2Dev Onlineからダウンロードで

(38)

1 WebLogic Server エンタープライズ JavaBean の概要

(39)

2

EJB

の設計

以下の節では、 WebLogic Server エン タープ ラ イ ズ JavaBean (EJB) を設計する た めのガ イ ド ラ イ ンを示し ます。 一部の ヒ ン トは、 EJB と 同じ よ う に リ モー ト オ ブジ ェ ク ト モデル と Remote Method Invocation (RMI) に も適用でき ます。  セ ッ シ ョ ン Bean の開発  エンテ ィ テ ィ Bean の設計  メ ッ セージ駆動型 Bean の設計  EJB での継承の使用  デプ ロ イ さ れた EJB へのア ク セス  ト ラ ンザ ク シ ョ ン リ ソ ースの保持

セ ッ シ ョ ン

Bean

の開発

セ ッ シ ョ ン Bean の設計方法のひ と つに、 モデル / ビ ュー設計の使用があ り ます。 ビ ューがグ ラ フ ィ カル ユーザ イ ン タ フ ェース (GUI) フ ォームであ り 、 モデルは GUI にデータ を供給する コー ド です。 典型的な ク ラ イ アン ト / サーバ シ ス テ ム では、 モデルはビ ュー と 同じ サーバに存在し、 サーバ と 通信し ます。 モデルは、 セ ッ シ ョ ン Bean の形態でサーバに配置し ます。 それは、 モデル セ ッ シ ョ ン Bean が最終的な表示に影響し ない こ と を除けば、 HTML フ ォームのサ ポー トを提供するサーブレ ッ トを配置する こ と に似ています。 GUI フ ォーム イ ン ス タ ン ス ( サーバでフ ォームの型 と し て機能する ) ご と に 1 つのモデル セ ッ シ ョ ン Bean イ ン ス タ ン スが必要です。 た と えば、 フ ォームに表示する 100 個の ネ ッ ト ワー ク ノ ー ド があ る場合は、 それ ら の ノ ー ド に相当する値の配列を返す getNetworkNodes() と い う メ ソ ッ ド を対応する EJB に用意し ます。

(40)

2 EJB の設計 2-2 WebLogic エ ン タ ープ ラ イズ JavaBeans プ ログラ マーズガ イ ド こ のアプ ローチでは、 全体的な トラ ンザ ク シ ョ ンの時間が短 く な り 、 ネ ッ トワー ク の帯域幅が最小限で済みます。 それに対し て、 GUI フ ォームでエンテ ィ テ ィ EJB のフ ァ イ ンダ メ ソ ッ ド を呼び出し、 100 個のネ ッ トワーク ノ ー ド の参照を 個別に取 り 出すアプ ローチを考えてみて く だ さ い。 それ ら の参照の 1 つ 1 つで、 ク ラ イ アン ト ではデータ ス ト アに戻ってデータ を取 り 出 さ なければな ら ないた め、 かな り のネ ッ トワー ク帯域幅が消費 さ れ、 パフ ォーマン スが許容でき ないほ ど低下する場合があ り ます。

エンテ ィ テ ィ

Bean

の設計

エンテ ィ テ ィ Bean を使用し た RDBMS データ の読み書きは、 貴重なネ ッ トワー ク リ ソース を消費し ます。 ネ ッ トワー ク ト ラ フ ィ ッ ク は、 WebLogic Server と 基 底のデータ ス トアの間だけでな く 、 ク ラ イ アン トと WebLogic Server の間で も発 生する場合があ り ます。 以下のア ド バ イ スに従っ てエンテ ィ テ ィ EJB データ を 適切にモデル化し、 不要なネ ッ トワーク ト ラ フ ィ ッ ク を防止し て く だ さ い。

エンテ ィ テ ィ

Bean

のホーム

イ ン タ フ ェ ース

コ ンテナは、 コ ンテナにデプ ロ イ さ れる各エンテ ィ テ ィ Bean のホーム イ ン タ フ ェースの実装を提供し、 ク ラ イ アン ト が JNDI を通じ てホーム イ ン タ フ ェース にア ク セ スで き る よ う に し ます。 エンテ ィ テ ィ Bean のホーム イ ン タ フ ェース を 実装する オブジ ェ ク トは EJBHome オブジ ェ ク トと 呼ばれます。 エンテ ィ テ ィ Bean のホーム イ ン タ フ ェース を通じ て、 ク ラ イ アン ト は以下の処理を行 う こ と がで き ます。  create() メ ソ ッ ド を使用し て、 ホーム内に新し いエンテ ィ テ ィ オブジ ェ ク トを作成する  finder() メ ソ ッ ド を使用し て、 ホーム内の既存のエンテ ィ テ ィ オブジ ェ ク トを検索する  remove() メ ソ ッ ド を使用し て、 ホームか ら エンテ ィ テ ィ オブジ ェ ク トを削 除する  特定のエンテ ィ テ ィ Bean の イ ン ス タ ン スに固有でないホーム メ ソ ッ ド を実 行する

(41)

エ ン テ ィ テ ィ Bean の設計

エンテ ィ テ ィ

EJB

は大まかにする

シ ス テムのすべてのオブジ ェ ク トをエンテ ィ テ ィ EJB と し てモデル化し ないで く だ さ い。 特に、 ほんの数バ イ トの小 さ なデータ をエンテ ィ テ ィ EJB にする こ と は避けて く だ さ い ( ネ ッ ト ワー ク リ ソ ースの ト レー ド オフが成立し ないため )。 た と えば、 スプレ ッ ド シー トのセルな どは細かすぎ る ので、 ネ ッ ト ワー ク経由で 頻繁にア ク セ スする こ と は避け る必要があ り ます。 ただ し、 イ ンボ イ ス の項目の 論理的なグループやスプレ ッ ド シー トのセルの集合は、 ビ ジネ ス ロ ジ ッ ク が必 要な場合は、 エンテ ィ テ ィ EJB と し てモデル化で き ます。

追加のビジネス

ロジ ッ ク をエンテ ィ テ ィ

EJB

にカ

プセル化する

大まかなオブジ ェ ク トであ って も、 ビ ジネス ロ ジ ッ ク が不要であれば、 エン テ ィ テ ィ EJB と し てモデル化するのは適切ではあ り ません。 た と えば、 エン テ ィ テ ィ EJB の メ ソ ッ ド の機能がデータ値の設定ま たは読み込みだけの場合は、 モデル化に RDBMS ク ラ イ アン ト で JDBC 呼び出し を使用する か、 ま たはセ ッ シ ョ ン EJB を使用する方が適切です。 エンテ ィ テ ィ EJB では、 モデル化し たデータに対し て ビジネ ス ロ ジ ッ ク を カプ セル化し ます。 た と えば、 「プ ラチナ」 と 「ゴール ド 」 の顧客で別々のビジネ ス ルールを使用するバンキング アプ リ ケーシ ョ ンでは、 すべての顧客の口座がエ ンテ ィ テ ィ EJB と し てモデル化 さ れます。 その場合、 EJB メ ソ ッ ド では特定の 顧客タ イ プのデータ フ ィ ール ド を設定するか、 読み込む と き に適切なビ ジネ ス ロ ジ ッ ク を適用で き ます。

エンテ ィ テ ィ

EJB

のデータ

ア ク セ スを最適化する

エンテ ィ テ ィ EJB では、 結局は、 データ ス トアのフ ィ ール ド がモデル化さ れま す。 で き る限 り エンテ ィ テ ィ EJB を最適化し て、 データベース ア ク セ ス を合理 化し、 最小限に抑え る必要があ り ます。 特に、 以下の点に注意し ます。

(42)

2 EJB の設計 2-4 WebLogic エ ン タ ープ ラ イズ JavaBeans プ ログラ マーズガ イ ド  EJB データ に対し て結合の複雑 さ を制限し ます。  データ ス トアでデ ィ ス ク ア ク セスが必要 と な る 長時間の処理を避け ます。  ク ラ イ アン ト と データ ス ト ア間の往復回数を最低限に抑え る ために、 EJB メ ソ ッ ド ででき る限 り 多 く のデータが返さ れ る よ う に し ます。 た と えば、 EJB ク ラ イ アン ト でデータ フ ィ ール ド を読み込む場合は、 一括処理の get/setAttributes() メ ソ ッ ド を使用し てネ ッ トワーク ト ラ フ ィ ッ ク を最 小限に抑え ます。

メ ッ セージ駆動型

Bean

の設計

メ ッ セージ駆動型 Bean は、 WebLogic JMS メ ッ セージ ング シ ス テムで メ ッ セー ジ コ ンシ ューマ と し て機能し ます。 メ ッ セージ駆動型 Bean の設計の詳細につい ては、 第 3 章 「メ ッ セージ駆動型 Bean の設計」 を参照し て く だ さ い。

EJB

での継承の使用

共通の コー ド を共有する互いに関連する Bean のグループを ビル ド する場合は、 継承を利用する こ と をお勧め し ます。 ただ し、 EJB の実装に適用さ れ る継承の制 限に注意する必要があ り ます。

Bean 管理のエンテ ィ テ ィ EJB の場合、ejbCreate() メ ソ ッ ド では主キーが返さ れなければな り ません。 Bean 管理の EJB ク ラ スか ら継承する どの ク ラ ス も、 Bean 管理の EJB ク ラ スが返す も の と は異な る主キー ク ラ ス を返す ejbCreate()

メ ソ ッ ド を実装する こ と はで き ません。 こ の制限は、 新し い ク ラ スが基本の EJB の主キー ク ラ スか ら派生する場合で も適用 さ れます。 ま た、 こ の制限は、 Bean の ejbFind() メ ソ ッ ド に も適用 さ れます。 ま た、 その他の EJB 実装か ら継承する EJB はイ ン タ フ ェース を変更し ます。 た と えば、 次の図は、 リ モー トか ら ア ク セス でき る新し い メ ソ ッ ド が派生 Bean で 追加さ れ る状況を説明し ています。

図 4-1    同時方式別のエンティティ  EJB  のキャッシング動作
図 4-3    ステートレス セッション  EJB  のライフサイクルを示す  WebLogic  Server フリー プール
図 4-11 では、WebLogic Server クラスタ環境での読み書き対応エンティティ EJB  の動作を示しています。ホーム スタブ上の 3 つの矢印は 3 つのサーバすべてを 指し、複数のクライアント アクセスを示しています。
Table 5-2  は、関係の各 Bean の  cmr-field の内容を、その関係のカーディナリ ティに基づいて示しています。 表 5-2   カーディナリティと  cmr-field-type 関係の方向の指定 CMR  の方向は、関係のそれぞれの側の  ejb-relationship-role スタンザで  cmr-field を設定する、またはしないことでコンフィグレーションします。 双方向の CMR では、関係の両側の  ejb-relationship-role スタンザに  cmr-f
+3

参照

関連したドキュメント

マイクロソフト ユニファイド エンタープライズ サポート サービス (以下「サポート サービス」といいます) は、IT

概要/⑥主要穀物の生産量.

Oracle WebLogic Server の脆弱性 CVE-2019-2725 に関する注 意喚起 ISC BIND 9 に対する複数の脆弱性に関する注意喚起 Confluence Server および Confluence

参加者:黒崎雅子 ( 理事:栃木、訪問看護ステーション星が丘 ) 、杉原幸子 ( 役員:君津中央病院医療連携室 ) 、大桐 四季子 ( 役員:ふたわ訪問看護ステーション

実験の概要(100字程度)

平成 14 年 6月 北区役所地球温暖化対策実行計画(第1次) 策定 平成 17 年 6月 第2次北区役所地球温暖化対策実行計画 策定 平成 20 年 3月 北区地球温暖化対策地域推進計画

朝日新聞デジタル  LGBTの就活・就労について考えるカンファレンス「RAINBOW CROSSING TOKYO

現状では、3次元CAD等を利用して機器配置設計・配 管設計を行い、床面のコンクリート打設時期までにファ