Apdesigner プログラマーズガイド
目次 索引 前ページ次ページ

第2部 アプリケーション開発編> 第3章 Enterprise JavaBeans (EJB)を開発する> 3.3 EJBのプログラミング

3.3.1 Session Beanのプログラミング

++Session Beanの処理を記述する

Session Beanでは、ejbCreateメソッド、ビジネスメソッドなどの処理を記述します。
以下にメソッドと記述する処理を示します。

[メソッドと処理の対応]

メソッド

処理

備考

コンストラクタ

 

フィールドの初期化処理などはejbCreateに記述し、コンストラクタには記述しません。

ejbCreate

ビジネスメソッドを使用するための初期化処理を記述します。

 

setSessionContext

引数に指定されたSessionContextを他のメソッドで利用できるようにSession Beanのフィールドとして保存します。

Enterprise Bean生成ウィザードでは、自動的に左記の処理を生成します。

ejbRemove

ビジネスメソッドを使用後の終了時の処理を記述します。

 

ejbActivate

活性化されたときの処理を記述します。

Interstage EJBサービスでは活性化/非活性化はサポートされていません。

ejbPassivate

非活性化されたときの処理を記述します。

afterBegin

新しいトランザクションが開始されたときの処理を記述します。

SessionSynchronizationインタフェースを実装する場合に必要なメソッドです。

BeforeCompletion

トランザクションをコミットする前の処理を記述します。

afterCompletion

トランザクションがコミットされた後またはロールバックされた後の処理を記述します。トランザクションがコミットされたか、ロールバックされたかは、メソッドの引数に渡されます。

ビジネスメソッド

クライアントから呼び出されるメソッドの処理を記述します。

 

++Session Beanからデータベースにアクセスする

ここでは、Session Beanからデータベースアクセスする場合について説明します。
Session Beanからデータベースアクセスを行う場合、Session種別(STATEFUL、STATELESS)により注意する必要があります。

トランザクションの制御を行うには、javax.transaction.UserTransactionインタフェースを使用します。詳細は、"Entity Beanのプログラミング"を参照してください。
メソッド単位にトランザクションを制御する場合には、javax.transaction.UserTransactionインタフェースを使わずに、EJBコンテナにトランザクション制御を行わせることができます。EJBコンテナにトランザクション制御を行わせる場合には、deployment descriptorのトランザクション管理種別をContainerにし、該当するメソッドについてトランザクション属性を指定してください。トランザクション管理種別と属性については、"Interstage Application Server J2EEユーザーズガイド"を参照してください。

通常、Enterprise Bean からデータベースにアクセスするには、Entity Bean を使います。

Session Beanの属性がSTATEFULの場合

Session Beanの属性がSTATEFULの場合、複数のメソッドを1トランザクションで処理することができます。

[Session Bean(STATEFUL)とトランザクションの関係]

Session Beanの属性がSTATELESSの場合

Session Beanの属性がSTATELESSの場合、1メソッドを1トランザクションで処理します。

[Session Bean(STATELESS)とトランザクションの関係]


目次 索引 前ページ次ページ

All Rights Reserved, Copyright (C) 富士通株式会社 1998-2006