パッケージjavax.ejb:
インタフェース:
public interface EJBContext
public interface EJBHome
public interface EJBMetaData
public interface EJBObject
public interface EnterpriseBean
public interface EntityBean
public interface EntityContext
public interface Handle
public interface SessionBean
public interface SessionContext
public interface SessionSynchronization
public class CreateException
public class DuplicateKeyException
public class FinderException
public class ObjectNotFoundException
public class RemoveException
クラス:
public class AccessControlEntry
public class ControlDescriptor
public class DeploymentDescriptor
public class EntityDescriptor
public class SessionDescriptor
public interface javax.ejb.EJBContext { public abstract Identity getCallerIdentity(); public abstract EJBHome getEJBHome(); public abstract Properties getEnvironment(); public abstract boolean getRollbackOnly(); public abstract UserTransaction getUserTrasaction(); public abstract boolean isCallerInRole(Identity role); public abstract void setRollbackOnly(); }
インタフェースEJBContextは,エンタプライズBeanインスタンスのコンテナ提供実行時文脈にアクセスするインスタンスを提供する。
このインタフェースは,インタフェースSessionContext及びインタフェースEntityContextによって拡張され,エンタプライズBean型に固有の付加的なメソッドを提供する。
public abstract Identity getCallerIdentity()
発信者のjavax.security.Identityを獲得する。
返却値:
public abstract EJBHome getEJBHome()
エンタプライズビーンのホームインタフェースを獲得する。
返却値:
public abstract Properties getEnvironment()
エンタプライズビーンの環境特性を獲得する。
注:エンタプライズビーンに環境特性がない場合,このメソッドは空のjava.util.Propertiesオブジェクトを返す。このメソッドはnullを返さない。
返却値:
public abstract boolean getRollbackOnly()
トランザクションがロールバックだけに関してマークされているかどうかをテストする。例えば,エンタプライズビーンインスタンスはこの操作を使用して,例外をとらえた後,現トランザクション側で計算を続行するのが無意味かどうかをテストすることができる。
返却値:
現トランザクションがロールバックに関してマークされている場合は真。そうでない場合は偽とする。
public abstract UserTransaction getUserTransaction()
throws IllegalStateException
トランザクション区分インタフェースを獲得する。
返却値:
例外:IllegalStateException
public abstract boolean isCallerInRole(Identity role)
発信者が一定の役割をもつかどうかをテストする。
仮引数:
public abstract void setRollbackOnly()
ロールバックに関して現トランザクションをマークする。トランザクションは永続的にロールバックに関してマークされることになる。ロールバックに関してマークされたトランザクションは確定できない。
public interface javax.ejb.EJBHome extends java.rmi.Remote { public abstract EJBMetaData getEJBMetaDeta(); public abstract void remove(Handle handle); public abstract void remove(Object primaryKey); }
インタフェースEJBHomeは,すべてのエンタプライズBeanのホームインタフェースによって拡張される。エンタプライズBeanのホームインタフェースは,クライアントがEJBオブジェクトを生成,発見,除去できるメソッドを定義する。
エンタプライズBeanはそれぞれホームインタフェースをもつ。ホームインタフェースは,インタフェースjavax.ejb.EJBHomeを拡張し,生成メソッド及びファインダメソッド固有のエンタプライズBean型を定義する(セションBeansはファインダメソッドをもたない。)。
ホームインタフェースは,エンタプライズBean提供者によって定義され,エンタプライズBeanコンテナによって実装される。
public abstract EJBMetaData getEJBMetaData()
throws RemoteException
エンタプライズBeanに対応するインタフェースEJBMetaDataを獲得する。インタフェースEJBMetaDataによって,クライアントはエンタプライズBeanに関する情報を獲得できる。
インタフェースEJBMetaDataを介して獲得できる情報は,ツールによる使用を想定している。
返却値:
public abstract void remove(Handle handle)
throws RemoteException, RemoveException
ハンドルで識別されるEJBオブジェクトを除去する。
例外:RemoveException
例外:RemoteException
public abstract void remove(Object primaryKey)
throws RemoteException, RemoveException
一次キーによって識別されるEJBオブジェクトを除去する。
例外:RemoveException
例外:RemoteException
public interface javax.ejb.EJBMetaData { public abstract EJBHome getEJBHome(); public abstract Class getHomeInterfaceClass(); public abstract Class getPrimaryKeyClass(); public abstract Class getRemoteInterfaceClass(); public abstract boolean isSession(); }
インタフェースEJBMetaDataは,クライアントにエンタプライズBeanのメタデータ情報を獲得させる。
メタデータは,配置されたエンタプライズBeansを使用するアプリケーションの構築のために使用される開発ツール及びクライアントがスクリプティング言語を使用してエンタプライズBeanをアクセスすることを想定している。
EJBMetaDataは遠隔インタフェースではないことに注意すること。このインタフェースを実装するクラス(このクラスは通常はコンテナツールによって生成される)は,直列化可能でなければならず,有効なRMI/IDL値の型でなければならない。
public abstract EJBHome getEJBHome()
エンタプライズBeanのホームインタフェースを獲得する。
public abstract Class getHomeInterfaceClass()
エンタプライズBeanのホームインタフェースに対応するClassオブジェクトを獲得する。
public abstract Class getPrimaryaKeyClass()
エンタプライズBeanの一次キークラスに対応するClassオブジェクトを獲得する。
public abstract Class getRemoteInterfaceClass()
エンタプライズBeanの遠隔インタフェースに対応するClassオブジェクトを獲得する。
public abstract boolean isSession()
エンタプライズBeanの型が“セション”であるかどうかをテストする。
返却値:
public interface javax.ejb.EJBObject extends java.rmi.Remote { public abstract EJBHome getEJBHome(); public abstract Handle getHandle(); public abstract Object getPrimaryKey(); public abstract boolean isIdentical(EJBObject obj); public abstract void remove(); }
インタフェースEJBObjectは,すべてのエンタプライズBeanの遠隔インタフェースによって拡張される。エンタプライズBeanの遠隔インタフェースは,EJBオブジェクトのクライアントのビューを提供する。エンタプライズBeanの遠隔インタフェースは,クライアントが呼び出せる業務メソッドを定義する。
エンタプライズBeanはそれぞれ遠隔インタフェースをもつ。遠隔インタフェースは,インタフェースjavax.ejb.EJBObjectを拡張し,エンタプライズBean固有の業務メソッドを定義しなければならない。
エンタプライズBeanの遠隔インタフェースは,エンタプライズBean提供者によって定義され,エンタプライズBeanコンテナによって実装される。
public abstract EJBHome getEJBHome()
throws RemoteException
エンタプライズBeanのホームインタフェースを獲得する。ホームインタフェースはエンタプライズBeanの生成操作,発見操作,除去操作を定義する。
返却値:
例外:RemoteException
public abstract Handle getHandle()
throws RemoteException
EJBオブジェクトに対応するハンドルを獲得する。ハンドルは後にEJBオブジェクトへの参照を再獲得するため使用でき,異なるJava仮想計算機でも使用可能である。
返却値:
例外:
public abstract Object getPrimaryKey()
throws RemoteException
エンタプライズJavaBeans
EJBオブジェクトの一次キーを獲得する。
返却値:
public abstract boolean isIdentical(EJBObject obj)
throws RemoteException
一定のEJBオブジェクトが呼び出されたEJBオブジェクトと同一かどうかをテストする。
仮引数:
返却値:
例外:RemoteException
public abstract void remove()
throws RemoteException, RemoveException
EJBオブジェクトを除去する。
例外:RemoteException
public interface javax.ejb.EnterpriseBean extends java.io.Serializable { }
インタフェースEnterpriseBeanは,あらゆるエンタプライズBeanクラスによって実装されなければならない。インタフェースEnterpriseBeanは,インタフェースSessionBean及びインタフェースEntityBeanに共通のスーパインタフェースとする。
public interface javax.ejb.EntityBean extends javax.ejb.EnterpriseBean { public abstract void ejbActivate(); public abstract void ejbLoad(); public abstract void ejbPassivate(); public abstract void ejbRemove(); public abstract void ejbStore(); public abstract void setEntityContent(EntityContext ctx); public abstract void unsetEntityContext(); }
インタフェースEntityBeanは,すべての実体エンタプライズBeanクラスによって実装される。コンテナはメソッドEntityBean()を使用して,エンタプライズBeanインスタンスにインスタンスのライフサイクルイベントを知らせる。
実体エンタプライズBeanに対するサポートは,EJB1.0に従ったコンテナには任意となることに注意すること。実体に対するサポートは,EJB2.0に従ったコンテナでは必須となるだろう。
public abstract void ejbActivate()
throws RemoteException
コンテナは,利用可能インスタンスのプールからインスタンスを取り出す際にこのメソッドを呼び出し,固有のEJBオブジェクトと関連付けられるようになる。このメソッドは,インスタンスを動作可能状態へと移行する。
このメソッドは,指定されないトランザクション文脈で実行する。
例外:RemoteException
public abstract void ejbLoad()
throws RemoteException
コンテナは,このメソッドを呼び出して,使用中のデータベースからインスタンスの状態をロードしてその状態を同期化するようにインスタンスに指示する。
このメソッドは常に適正なトランザクション文脈で実行する。
例外:RemoteException
public abstract void ejbPassivate()
throws RemoteException
インスタンスが固有のEJBオブジェクトと分離されるようになる前に,コンテナはインスタンス上でこのメソッドを呼び出す。このメソッドの完了後に,コンテナは利用可能インスタンスのプールにインスタンスを入れる。
このメソッドは,指定されないトランザクション文脈で実行する。
例外:RemoteException
public abstract void ejbRemove()
throws RemoteException, RemoveException
コンテナは,現時点でインスタンスと関連付けられるEJBオブジェクトを除去する前に,このメソッドを呼び出す。このメソッドが呼び出されるのは,クライアントがエンタプライズBeanのホームインタフェース又はEJBオブジェクトの遠隔インタフェース上で除去操作を呼び出す場合とする。このメソッドは,インスタンスを動作可能状態から利用可能インスタンスのプールへと移行する。
このメソッドは,除去操作のトランザクション文脈で呼び出される。
例外:RemoteException
public abstract void ejbStore()
throws RemoteException
コンテナは,このメソッドを呼び出して,インスタンスを使用中のデータベースに記憶することによって,その状態を同期化することをインスタンスに指示する。
このメソッドは常に適正なトランザクション文脈で実行する。
例外:RemoteException
public abstract void setEntityContext(EntityContext ctx)
throws RemoteException
関連のある実体文脈を設定する。コンテナは,インスタンスの生成後,インスタンス上でこのメソッドを呼び出す。
このメソッドは指定されないトランザクション文脈で呼び出される。
仮引数:
public abstract void unsetEntityContext()
throws RemoteException
関連のある実体文脈を設定しない。コンテナはインスタンスの除去前にこのメソッドを呼び出す。
これは,コンテナがインスタンス上で呼び出す最後のメソッドである。Javaガーベジコレクタは最終的にインスタンス上でメソッドfinalize()を呼び出す。
このメソッドは指定されないトランザクション文脈で呼び出される。
例外:RemoteException
public interface javax.ejb.EntityContext extends javax.ejb.EJBContext { public abstract EJBObject getEJBObject(); public abstract Object getPrimaryKey(); }
インタフェースEntityContextは,実体エンタプライズBeanインスタンスのコンテナ提供実行時文脈へアクセスするインスタンスを提供する。インスタンス生成後,コンテナはインタフェースEntityContextを実体エンタプライズBeanインスタンスに渡す。インタフェースEntityContextは,インスタンスの存続時間中,インスタンスと関連付けられたままとする。インタフェースEntityContextを使用してインスタンスが獲得する情報(メソッドgetPrimaryKey()の結果など)は,コンテナがインスタンスのライフサイクル中に異なるEJBオブジェクトにインスタンスを割り当てるため,変更される可能性がある点に注意すること。
public abstract EJBObject getEJBObject()
throws IllegalStateException
現時点でインスタンスと関連付けられているEJBオブジェクトへの参照を獲得する。
実体エンタプライズBeanのインスタンスがこのメソッドを呼び出すことができるのは,インスタンスがメソッドejbActive,メソッドejbPassivate,メソッドPostCreate(),メソッドejbRemove(),メソッドejbLoad(),メソッドEJBStore()及び業務メソッドなどでEJBオブジェクト識別性と関連付けられる場合だけとする。
インスタンスは,メソッド引数又は結果で参照をインスタンス自体に渡したい場合などにこのメソッドを使用できる。
返却値:
public abstract Object getPrimaryKey()
throws IllegalStateException
現時点でこのインスタンスと関連付けられているEJBオブジェクトの一次キーを獲得する。実体エンタプライズBeanのインスタンスがこのメソッドを呼び出すことができるのは,インスタンスがメソッドejbActivate,メソッドejbPassivate(),メソッドejbPostCreate(),メソッドejbRemove(),メソッドejbLoad(),メソッドejbStore()及び業務メソッドなどでEJBオブジェクト識別性と関連付けられる場合だけとする。
このメソッドの結果は,getEJBObject(),getPrimaryKey()の結果と同じであることに注意すること。
返却値:
public interface javax.ejb.Handle { public abstract EJBObject getEJBObject(); }
インタフェースHandleは,すべてのEJBオブジェクトハンドルによって実装される。ハンドルはEJBオブジェクトへのネットワーク参照の抽象化である。ハンドルはEJBオブジェクトへの“ローバスト”永続的参照として使用されることを想定している。
ハンドル(通常はコンテナが提供する)に対応する実装クラスは,クライアントがハンドルオブジェクトを直列化できるjavax.io.Serializableでなければならない。
public abstract EJBObject getEJBObject()
throws RemoteException
このハンドルが表示するEJBオブジェクトを獲得する。
public interface javax.ejb.SessionBean extends javax.ejb.EnterpriseBean { public abstract void ejbActivate(); public abstract void ejbPassivate(); public abstract void ejbRemove(); public abstract void setSessionContext(SessionContext ctx); }
インタフェースSessionBeanは,あらゆるセションエンタプライズBeanクラスによって実装される。コンテナはメソッドSessionBean()を使用して,エンタプライズBeanインスタンスにインスタンスのライフサイクルイベントを知らせる。
public abstract void ejbActivate()
throws RemoteException
活性化メソッドは,インスタンスが“受動”状態から活性化される場合に呼び出される。インスタンスはメソッドejbPassivate()で事前にリリースした資源をすべて獲得しなければならない。
このメソッドはトランザクション文脈なしで呼び出される。
例外:RemoteException
public abstract void ejbPassivate()
throws RemoteException
非活性化メソッドは,インスタンスが“受動”状態に入る前に呼び出される。インスタンスは,メソッドejbActivate()で後に再獲得できる資源をすべてリリースしなければならない。
非活性化メソッド完了後,インスタンスは,コンテナがJava直列化プロトコルを使用してインスタンスの状態を外面化し,記憶できる状態でなければならない。
このメソッドはトランザクション文脈なしで呼び出される。
例外:RemoteException
public abstract void ejbRemove()
throws RemoteException
コンテナは,セションオブジェクトの寿命の終了前にこのメソッドを呼び出す。これは,クライアントが除去操作を呼び出した結果として発生するか,又はコンテナがタイムアウト後にセションオブジェクトの終了を決定する場合に発生する。
このメソッドはトランザクション文脈なしで呼び出される。
例外:RemoteException
public abstract void setSessionContext(SessionContext ctx)
throws RemoteException
関連するセション文脈を設定する。コンテナはインスタンス生成後にこのメソッドを呼び出す。エンタプライズBeanインスタンスは,インスタンス変数で文脈オブジェクトへの参照を記憶しなければならない。
このメソッドはトランザクション文脈なしで呼び出される。
仮引数:
public interface javax.ejb.SessionContext extends javax.ejb.EJBContext { public abstract EJBContext getEJBObject();< }
インタフェースSessionContextは,実行時セション文脈へのアクセスを提供する。コンテナは,セションエンタプライズBeanインスタンスに対応する実行時セション文脈を提供する。コンテナは,インスタンス生成後,インタフェースSessionContextをインスタンスに渡す。セション文脈は,インスタンスの存続時間の間,インスタンスと関連付けられたままである。
public abstract EJBObject getEJBObject()
throws IllegalStateException
現時点でインスタンスと関連付けられているEJBオブジェクトへの参照を獲得する。
セションエンタプライズBeanのインスタンスは,メソッドejbCreate()実行中及びメソッドejbRemove()実行中を含めて,両メソッド間であればいつでもこのメソッドを呼び出すことができる。
例えば,インスタンスはメソッド引数又は結果で参照をインスタンス自体に渡したい場合にこのメソッドを使用できる。
返却値:
public interface javax.ejb.SessionSynchronization { public abstract void afterBegin(); public abstract void afterCompletion(boolean committed); public abstract void beforeCompletion(); }
インタフェースSessionSynchronizationによって,トランザクション境界のコンテナがセションBeanインスタンスを通知することが可能になる。
セションBeanクラスは,このインタフェースを実装しなくてもよい。セションBeanクラスは,その状態をトランザクションで同期化したい場合にだけ,このインタフェースを実装しなければならない。
public abstract void afterBegin()
throws RemoteException
メソッドafterBegin()は,新しいトランザクションが起動したこと,及びインスタンス上で連続した業務メソッドがトランザクションの文脈で呼び出されることをセションBeanインスタンスに通知する。
例えば,インスタンスはこのメソッドを使用して,データベースからデータを読み取り,インスタンスフィールドのデータをキャッシュする。
このメソッドは適正なトランザクション文脈で実行する。
例外:RemoteException
public abstract void afterCompletion(boolean committed)
throws RemoteException
メソッドafterCompletion()は,トランザクション確定プロトコルが完了したことをセションBeanインスタンスに通知し,トランザクションが確定されたのか,又はロールバックされたのかをインスタンスに通知する。
このメソッドはトランザクション文脈なしで実行する。
仮引数:
public abstract void beforeCompletion()
throws RemoteException
メソッドbeforeCompletion()は,トランザクションが確定されようとしていることをセションBeanインスタンスに通知する。例えば,インスタンスはこのメソッドを使用してキャッシュされたデータをすべてデータベースに書き込む。
このメソッドは適正なトランザクション文脈で実行する。
インスタンスは,インスタンス文脈上でメソッドsetRollbackOnly()を呼び出すか,又は例外を投げることによって,コンテナにトランザクションをロールバックさせてもよいことに注意すること。
例外:RemoteException
public class javax.ejb.CreateException extends java.lang.Exception { public CreateException(); public CreateException(String message); }
例外CreateExceptionは,エンタプライズBeanの遠隔インタフェースで定義するすべてのメソッドcreate()のthrows節に含まれなければならない。
例外は,障害を報告する標準アプリケーションレベルの例外として使用され,実体EJBオブジェクトを生成する。
public CreateException()
詳細なメッセージを用いずにCreateExceptionを構成する。
public CreateException(String message)
指定された詳細なメッセージを用いてCreateExceptionを構成する。
public class javax.ejb.DuplicateKeyException extends javax.ejb.CreateException { public DuplicateKeyException(); public DuplicateKeyException(String message); }
同じキーを有するオブジェクトがすでに存在するため,実体EJBオブジェクトを生成できない場合,例外DuplicateKeyExceptionが投げられる。エンタプライズBeanのホームインタフェースで定義される生成メソッドがこの例外を投げる。
public DuplicateKeyException()
詳細なメッセージを用いずにDuplicateKeyExceptionを構成する。
public DuplicateKeyException(String message)
指定された詳細なメッセージを用いてDuplicateKeyExceptionを構成する。
public class javax.ejb.FinderException extends java.lang.Exception { public FinderException(); public FinderException(String message); }
例外FinderExceptionは,実体BeanのホームインタフェースのすべてのメソッドfindMETHOD()のthrows節に含まれなければならない。
例外は障害を報告する標準アプリケーションレベルの例外として使用され,要求されたEJBオブジェクトを一つ以上発見する。
public FinderException()
詳細なメッセージを用いずにFinderExceptionを構成する。
public FinderException(String message)
指定された詳細なメッセージを用いてFinderExceptionを構成する。
public class javax.ejb.ObjectNotFoundException extends javax.ejb.FinderException { public ObjectNotFoundException(); public ObjectNotFoundException(String message); }
例外ObjectNotFoundExceptionはfinderメソッドによって投げられ,指定されたEJBオブジェクトが存在しないことを示す。
単一のEJBオブジェクトを返すことを宣言されるファインダメソッドだけがこの例外を使用する。この例外は,EJBオブジェクトの集まりを返すファインダメソッドが投げてはならない。(ファインダメソッドは,代わりにnullを返さなければならない。)
public ObjectNotFoundException()
詳細なメッセージを用いずにObjectNotFoundExceptionを構成する。
public ObjectNotFoundException(String message)
指定された詳細なメッセージを用いてObjectNotFoundExceptionを構成する。
public class javax.ejb.RemoveException extends java.lang.Exception { public RemoveException(); public RemoveException(String message); }
例外RemoveExceptionは,エンタプライズBean又はコンテナがEJBオブジェクトを除去できない場合に,EJBオブジェクトを除去しようとするときに投げられる。
public RemoveException()
詳細なメッセージをもたないRemoveExceptionを構成する。
public RemoveException(String message)
指定された詳細なメッセージをもつRemoveExceptionを構成する。
public class javax.ejb.deployment.AccessControlEntry extends java.lang.Object implements java.io.Serializable { public AccessControlEntry(); public AccessControlEntry(Method method); public AccessControlEntry(Method method, Identity identities[]); public Identity[] getAllowedIdentities(); public Identity getAllowedIdentities(int index); public Method getMethod(); public void setAllowedIdentities(Identity values[]); public void setAllowedIdentities(int index, Identity value); public void setMethod(Method value); }
クラスAccessControlEntryは,セキュリティ識別性のリストとエンタプライズBeanのメソッドとを関連付ける。 エンタプライズBeanのメソッドを呼び出すために,指定された識別性を使用できる。
AccessControlEntryと関連付けられたMethodは, エンタプライズBeanクラスのMethodでなければならず, メソッドは, 業務メソッド,メソッドejbCreate(),メソッドfinder()又はメソッドejbDestroy() のいずれかでなければならない。
AccessControlEntryで使用されるMethodがnullの場合,AccessControlEntryは,全体Beanと関連付けられると考える。 BeanレベルのAccessControlEntryは,メソッドレベルのAccessControlEntryをもたないメソッドに対して, デフォルト値を提供する。
public AccessControlEntry()コンストラクタ。
public AccessControlEntry(Method method)指定されたエンタプライズBeanのメソッドに対してAccessControlEntryを構成する。 メソッドがnullの場合,エントリは, エンタプライズBeanに対するデフォルトAccessControlEntryと考えられる。
public AccessControlEntry(Method method, Identity idenities[])指定されたエンタプライズBeanのメソッドに対してAccessControlEntryを構成する。 メソッドがnullの場合には,エントリは,エンタプライズBeanに対するデフォルトAccessControlEntryと考えられる。
public Identity[] getAllowedIdentities()このメソッドの呼出しが許可されているIdentitiesの配列を獲得する。
public Identity getAllowedIdentities(int index)このメソッドの呼出しが許可されているIdentitiesの配列から,指定されたインデクスでIdentityを獲得する。
public Method getMethod()このAccessControlEntryが適用されるメソッドを獲得する。
public void setAllowedIdentities(Identity values[])このメソッドの呼出しが許可されているIdentitiesの配列を設定する。
public void setAllowedIdentities(int index, Identity value)このメソッドの呼出しが許可されているIdentitiesの配列内の指定されたインデクスにIdentityを設定する。
public void setMethod(Method value)このAccessControlEntryが適用されるメソッドを設定する。
public class javax.ejb.deployment.ControlDescriptor extends java.lang.Object implements java.io.Serializable { public final static int CLIENT_IDENTITY; public final static int SPECIFIED_IDENTITY; public final static int SYSTEM_IDENTITY; public final static int TRANSACTION_READ_COMMITTED; public final static int TRANSACTION_READ_UNCOMMITTED; public final static int TRANSACTION_REPEATABLE_READ; public final static int TRANSACTION_SERIALIZABLE; public final static int TX_BEAN_MANAGED; public final static int TX_MANDATORY; public final static int TX_NOT_SUPPORTED; public final static int TX_REQUIRED; public final static int TX_REQUIRES_NEW; public final static int TX_SUPPORTS; public ControlDescriptor(); public ControlDescriptor(Method method); public int getIsolationLevel(); public Method getMethod(); public Identity getRunAsIdentity(); public int getRunAsMode(); public int getTransactionAttribute(); public void setIsolationLevel(int value); public void setMethod(Method value); public void setRunAsIdentity(Identity value); public void setRunAsMode(int value); public void setTransactionAttribute(int value); }
ControlDescriptorは,エンタプライズBeanメソッドの実行時における実行と関連付けられるトランザクション及び セキュリティ属性を定義する。
ControlDescriptorで使用されるMethodがnullの場合,ControlDescriptorは,全体Beanと関連付けられると考える。 BeanレベルのControlDescriptorは,メソッドレベルのControlDescriptorをもたないメソッドに対して, デフォルト値を提供する。
クラスControlDescriptorのメソッドは, JavaBean特性設計パタンに従う。
public final static int CLIENT_IDENTITYクライアントのセキュリティ識別性をもつエンタプライズBeanメソッドを実行する。
public final static int SPECIFIED_IDENTITY指定されたユーザアカウントのセキュリティ識別性をもつエンタプライズBeanメソッドを実行する。
public final static int SYSTEM_IDENTITY“特権的アカウント”の識別性をもつエンタプライズBeanメソッドを実行する。 コンテナは,“特権的アカウント”の抽象的概念を,使用中のプラットフォーム上で,データベース管理者アカウント, オペレーティングシステム管理者アカウントなどの適当な特権的アカウントに対応付ける。
public final static int TRANSACTION_READ_COMMITTEDJDBC TRANSACTION_READ_COMMITTEDレベルと等価な分離度とする。
public final static int TRANSACTION_READ_UNCOMMITTEDJDBC TRANSACTION_READ_UNCOMMITTEDレベルと等価な分離度とする。
public final static int TRANSACTION_REPEATABLE_READJDBC TRANSACTION_REPEATABLE_READレベルと等価な分離度とする。
public final static int TRANSACTION_SERIALIZABLEJDBC TRANSACTION_SERIALIZABLEレベルと等価な分離度とする。
public final static int TX_BEAN_MANAGEDエンタプライズBeanは, インタフェースjavax.jts.CurrentTransactionを使用して, トランザクションの境界それ自体を管理する。
public final static int TX_MANDATORYエンタプライズBeanは,クライアント呼出しが大域的トランザクション適用範囲を含むことを要求する。 コンテナは,次に示すとおりに,エンタプライズBeanに関してトランザクション境界を管理する責任をもつ。
発信者がトランザクションと関連付けられる場合,エンタプライズBeanメソッドの実行は, 発信者のトランザクションと関連付けられる。
発信者がトランザクションと関連付けられない場合,コンテナは,javax.jts.TransactionRequiredException を発信者に投げる。
public final static int TX_NOT_SUPPORTEDエンタプライズBeanは, 大域的トランザクションをサポートしない。 コンテナは, 大域的トランザクションの適用範囲で,エンタプライズBeanのメソッドを呼び出してはならない。
public final static int TX_REQUIREDエンタプライズBeanは,大域的トランザクションでメソッドを実行することを要求する。
コンテナは,次に示すとおりに,エンタプライズBeanに関するトランザクション境界を管理する責任をもつ。
発信者がトランザクションと関連付けられる場合,エンタプライズBeanメソッドの実行は, 発信者のトランザクションと関連付けられる。
発信者がトランザクションと関連付けられない場合,コンテナは,新たな大域的トランザクションを開始し, そのトランザクションの適用範囲でエンタプライズBeanのメソッドを実行し, エンタプライズBeanのメソッドが完了するときに,トランザクションを確定(コミット)する。
public final static int TX_REQUIRES_NEWエンタプライズBeanは,新しい大域的トランザクション適用範囲で,メソッドを実行することを要求する。
コンテナは,次に示すとおりに,エンタプライズBeanに関するトランザクション境界を管理する責任をもつ。
コンテナは,新たなトランザクションを開始し,その新しいトランザクションの適用範囲でエンタプライズ Beanのメソッドを実行し,エンタプライズBeanのメソッドが完了するときに,新しいトランザクションを確定(コミット)する。
発信者がトランザクションと関連付けられる場合,現スレッドと発信者のトランザクションとの関連付けは, エンタプライズBeanのメソッド実行中には一時中断され,エンタプライズBeanのメソッドが完了するときに再開される。
public final static int TX_SUPPORTSエンタプライズBeanは,大域的トランザクション適用範囲でのメソッドの実行をサポートする。 コンテナは,次に示すとおりに,エンタプライズBeanに関するトランザクション境界を管理する責任をもつ。
発信者がトランザクションと関連付けられる場合,エンタプライズBeanメソッドの実行は, 発信者のトランザクションと関連付けられる。
発信者がトランザクションと関連付けられない場合,コンテナは, エンタプライズBeanのメソッドをトランザクションなしで実行する。
public ControlDescriptor()BeanレベルのControlDescriptorを構成する。
public ControlDescriptor(Method method)指定されたMethodに対応するControlDescriptorを構成する。
public int getIsolationLevel()トランザクションの分離レベルを獲得する。
public Method getMethod()このControlDescriptorと関連付けられるMethodを獲得する。
public Identity geRunAsIdentity()セキュリティ属性runAsIdentityの値を獲得する。属性runAsIdentityは, コンテナに, エンタプライズBeanメソッドの実行と関連付けられるセキュリティ識別性を通知する。
runAsIdentityの値は,runAsModeの値がSPECIFIED_IDENTITYの場合に限り,使用される。そうでない場合には,無視される。
public int getRunAsMode()セキュリティ属性runAsModeの値を獲得する。属性runAsModeは, コンテナに, エンタプライズBeanメソッドの実行と関連付けられるセキュリティ識別性を通知する。
public int getTransactionAttribute()トランザクション属性の値を獲得する。トランザクション属性は,エンタプライズBeanメソッド実行前及び 実行後にトランザクション適用範囲を管理する方法をコンテナに通知する。
public void setIsolationLevel(int value)トランザクションの分離レベルを設定する。
public void setMethod(Method value)このControlDescriptorが適用されるメソッドを設定する。
public void setRunAsIdentity(Identity value)セキュリティ属性runAsIdentityの値を設定する。 属性runAsIdentityは,エンタプライズBeanメソッドの実行と関連付けられるセキュリティ識別性をコンテナに通知する。
runAsIdentityの値は, runAsModeの値がSPECIFIED_IDENTITYの場合にだけ使用され,そうでない場合には,無視される。
public void setRunAsMode(int value)セキュリティ属性runAsModeの値を設定する。 属性runAsModeは, エンタプライズBeanメソッドの実行と関連付けられるセキュリティ識別性をコンテナに通知する。
public void setTransactionAttribute(int value)トランザクション属性の値を設定する。 トランザクション属性は,エンタプライズBeanメソッドの実行前及び実行後に, トランザクション適用範囲を管理する方法をコンテナに通知する。
public class javax.ejb.deployment.DeploymentDescriptor extends java.lang.Object implements java.io.Serializable { protected int versionNumber; public DeploymentDescriptor(); public AccessControlEntry[] getAccessControlEntries(); public AccessControlEntry getAccessControlEntries(int index); public Name getBeanHomeName(); public ControlDescriptor[] getControlDescriptors(); public ControlDescriptor getControlDescriptors(int index); public String getEnterpriseBeanClassName(); public Properties getEnvironmentProperties(); public String getHomeInterfaceClassName(); public boolean getReentrant(); public String getRemoteInterfaceClassName public boolean isReentrant(); public void setAccessControlEntries(AccessControlEntry values[]); public void setAccessControlEntries(int index, AccessControlEntry value); public void setBeanHomeName(Name value); public void setControlDescriptors(ControlDescriptor value[]); public void setControlDescriptors(int index, ControlDescriptor value); public void setEnterpriseBeanClassName(String value); public void setEnvironmentProperties(Properties value); public void setHomeInterfaceClassName(String value); public void setReentrant(boolean value); public void setRemoteInterfaceClassName(String value); }
クラスDeproymentDescriptorは,配置記述子クラスSessionDescriptor及びEntityDescriptorに共通の基底クラスとする。
クラスのメソッドは, JavaBeans特性設計パタンに適合する。
EntityDescriptor及びSessionDescriptorも参照すること。
protected int versionNumber
public DeploymentDescriptor()DeploymentDescriptorのインスタンスを生成する。
public AccessControlEntry[] getAccessControlEntries()エンタプライズBeanに対するオブジェクトAccessControlEntryを獲得する。オブジェクトAccessControlEntryは, エンタプライズBeanのメソッドとメソッドの呼出しが許可されているセキュリティ識別性のリストとを関連付ける。
public AccessControlEntry getAccessControlEntries(int index)指定されたインデクスで,オブジェクトAccessControlEntryを獲得する。オブジェクトAccessControlEntryは, エンタプライズBeanのメソッドとメソッドの呼出しが許可されているセキュリティ識別性のリストとを関連付ける。
public Name getBeanHomeName()JNDI名前空間におけるエンタプライズBeanと関連付けられる名前を獲得する。 コンテナは,エンタプライズBeanのホームインタフェースと,終わりの部分としてこの名前を含むJNDI名とを結び付ける。 このことは,コンテナは,任意のJNDIパスでgetBeanName()によって返された名前を先頭に付けることができることを意味する。
例えば,getBeanHomeName()が“bank/Account”を返す場合,コンテナは, JNDI名前空間のBeanのホームインタフェースと “mis/ejb-components/bank/Account”という名前とを結び付けることができる。
public ControlDescriptor[] getControlDescriptors()エンタプライズBeanの制御記述子の配列を獲得する。
public ControlDescriptor getControlDescriptors(int index)指定されたインデクスで制御記述子を獲得する。
public String getEnterpriseBeanClassName()エンタプライズBeanの完全クラス名を獲得する。
public Properties getEnvironmentProperties()エンタプライズBeanの環境特性を獲得する。
public String getHomeInterfaceClassName()エンタプライズBeanのホームインタフェースの完全名を獲得する。
public boolean getReentrant()このメソッドは,isReentrant()と同じ結果を返す。 このメソッドは, JavaBeans設計パタンとの互換性を保つために含まれる。
public String getRemoteInterfaceClassName()エンタプライズBeanの遠隔インタフェースの完全名を獲得する。
public boolean isReentrant()エンタプライズBeanが再入可能かどうかを検査する。実体Beansだけを再入可能として定義可能であって, セションBean配置記述子が真を返すのは誤りとする。
public void setAccessControlEntries(AccessControlEntry value[])エンタプライズBeanに対してオブジェクトAccessControlEntryを設定する。 オブジェクトAccessControlEntryは, エンタプライズBeanのメソッドと そのメソッドの呼出しを許されたセキュリティ識別性のリストとを関連付ける。
public void setAccessControlEntries(int index,AccessControlEntry value)指定されたインデクスの所に,オブジェクトAccessControlEntryを設定する。 オブジェクトAccessControlEntryは, エンタプライズBeanのメソッドと そのメソッド呼出しを許されたセキュリティ識別性のリストとを関連付ける。
public void setBeanHomeName(Name value)JNDI名前空間内で,エンタプライズBeanと関連付けられる名前を設定する。 コンテナは,エンタプライズのホームインタフェースと, 終わりの部分としてこの名前を含むJNDI名とを結び付ける。 これは, コンテナが,任意のJNDIパスでgetBeanName()によって返された名前を,先頭に付けることが可能なことを意味する。
型java.naming.Nameを使用すると,実際の命名システムが使用する構文から独立した名前の書式が作成されることに注意。
public void setControlDescriptors(ControlDescriptor value[])エンタプライズBeanの制御記述子の配列を設定する。
public void setControlDescriptors(int index,ControlDescriptor value)指定されたインデクスの所に制御記述子を設定する。
public void setEnterpriseBeanClassname(String value)エンタプライズBeanの完全クラス名を設定する。
public void setEnvironmentProperties(Properties value)エンタプライズBeanの環境特性を設定する。
public void setHomeInterfaceClassName(String value)エンタプライズBeanのホームインタフェースの完全名を設定する。
public void setReentrant(boolean value)エンタプライズBeanを再入可能とすることを指定する。実体Beanだけを再入可能として定義可能で, セションBean配置記述子が,Beanを再入可能に指定しようとするのは,誤りとする。
public void setRemoteInterfaceClassName(String value)エンタプライズBeanの遠隔インタフェースの完全名を設定する。
public class javax.ejb.deployment.EntityDescriptor extends javax.ejb.deployment.DeploymentDescriptor { public EntityDescriptor(); public Field[] getContainerManagedFields(); public Field getContainerManagedFields(int index); public String getPrimaryKeyClassName(); public void setContainerManagedFields(Field values[]); public void setContainerManagedFields(int index, Field value); public void setPrimaryKeyClassName(String value); }
クラスEntityDescriptorは,実体エンタプライズBeanに対する配置記述子を定義する。
クラスEntityDescriptorの直列化インスタンスは,ejb-jarファイル内に存在する実体エンタプライズBean の宣言配置属性を渡すための標準形式として使用する。
Bean提供者ツールは, 設定(set)関数を使用して,配置記述子のインスタンスを初期化する。その後,Bean提供者ツールは, ejb-jarファイルの中にインスタンスを直列化する。
獲得(get)間数は, 配置時にコンテナツールによって使用される。ツールは, ejb-jarファイルからインスタンスを非直列化し, 獲得関数を使用して,エンタプライズBeanに関する情報を獲得する。
エンタプライズJavaBeans体系は,実際の配置記述子クラスが,実行時にコンテナによって使用されるかどうかを規定しないこと に注意。そのため,コンテナは, 配置時に配置記述子から情報をインポートすることができ, コンテナ固有の形式で情報を記憶できる。しかし,エンタプライズJavaBeans規定によって規定されるとおりに, コンテナは, 実行時には宣言属性を強制することが必要となる。
エンタプライズBeanがコンテナにインストールされた後,配置属性の値を表示し変更するために, コンテナツールを使用できる。配置記述子の値の変更によって, 配置されたアプリケーションのセマンティクスが変わる場合もあるので,コンテナは, ある属性への変更を制限してもよい。
クラスEntityDescriptorのメソッドは,JavaBeans特性設計パタンに従う。
public EntityDescriptor()EntityDescriptorのインスタンスを生成する。
public Field[] getContainerManagedFields()コンテナ管理フィールドの配列を獲得する。
public Field getContainerManagedFields(int index)コンテナ管理フィールドの配列内の与えられたインデクスにおけるフィールドの名前を獲得する。
public String getPrimaryKeyClassName()エンタプライズBeanの一次キーの完全クラス名を獲得する。
public void setContainerManagedFields(Field values[])コンテナ管理フィールドの名前の配列を設定する。
public void setContainerManagedFields(int index,Field value)コンテナ管理フィールドの配列内の与えられたインデクスの所にフィールドを設定する。
public void setPrimaryKeyClassName(String value)エンタプライズBeanの一次キーの完全クラス名を設定する。
public class javax.ejb.deployment.SessionDescriptor extends javax.ejb.deployment.DeploymentDescriptor { public final static int STATEFUL_SESSION; public final static int STATELESS_SESSION; public SessionDescriptor(); public int getSessionTimeout(); public int getStateManagementType(); public void setSessionTimeout(int value); public void setStateManagementType(int value); }
クラスSessionDescriptorは,セションエンタプライズBeanに対する配置記述子を定義する。
クラスSessionDescriptorの直列化インスタンスは,ejb-jarファイルにおけるセションエンタプライズBean の宣言配置属性を渡すための標準形式として使用される。
Bean提供者ツールは, 設定(set)関数を使用して,配置記述子のインスタンスを初期化する。 その後,Bean提供者ツールは, ejb-jarファイルにインスタンスを直列化する。
獲得(get)関数は, 配置時にコンテナが使用する。ツールは, ejb-jarファイルからインスタンスを非直列化し, 獲得(get)関数を使用して,エンタプライズBeanに関する情報を獲得する。
エンタプライズJavaBeans体系は,実際の配置記述子クラスが,実行時にコンテナによって使用されるかどうかを 規定しないことに注意と。そのために,コンテナは, 配置時に配置記述子から情報をインポートすることでき, コンテナ固有の形式で情報を記憶することができる。しかし,エンタプライズJavaBeans規定によって規定されるとおりに, コンテナは, 実行時に宣言属性を強制することが必要となる。
エンタプライズBeanがコンテナにインストールされた後,配置属性の値を閲覧し変更するために,コンテナツールを使用できる。 配置記述子の値を変更すると,配置されたアプリケーションのセマンティクスが変わる場合があるので,コンテナは, ある属性への変更を制限してもよい。
クラスSessionDescriptorのメソッドは,JavaBeans特性設計パタンに従う。
public final static int STATEFUL_SESSIONセションBeanは,状態付きとする。状態付きセションBeanのインスタンスは, その寿命の間, セションEJBオブジェクトと関連付けられた状態にある。
public final static int STATELESS_SESSIONセションBeanは,無状態とする。 無状態セションBeanのインスタンスは, 複数のセションEJBオブジェクトのために再利用できる。
public SessionDescriptor()SessionDescriptorのインスタンスを生成する。
public int getSessionTimeout()秒単位でセションタイムアウト値を獲得する。 コンテナがコンテナ固有のデフォルト値を使用するほうがよい場合は,ゼロとする。
public int getStateManagementType()セションBeanの状態管理型を獲得する。
public void setSessionTimeout(int value)秒単位で,セションタイムアウト値を設定する。コンテナが,コンテナ固有のデフォルト値を使用するほうがよい場合には, ゼロ値とする。
public void setStateManagementType(int value)セションBeanの状態管理型を設定する。