2009-09-01 14 views
0

ejb-jar.xml、EJB 1.1)のデプロイメント記述子に複数のBeanを別名で宣言できますか?例えば同じHomeクラスとRemoteクラスの複数のEJB宣言を持つことはできますか?

私は orion-ejb-jar.xmlファイルに高い分離レベルを設定したい RestrictiveAccountFacadeについて
<session> 
    <ejb-name>AccountFacade</ejb-name> 
    <home>com.something.ejb.AccountFacadeHome</home> 
    <remote>com.something.ejb.AccountFacadeRemote</remote> 
    <ejb-class>com.something.ejb.AccountFacadeBean</ejb-class> 
    <session-type>Stateless</session-type> 
    <transaction-type>Bean</transaction-type> 
</session> 

<session> 
    <ejb-name>RestrictiveAccountFacade</ejb-name> 
    <home>com.something.ejb.AccountFacadeHome</home> 
    <remote>com.something.ejb.AccountFacadeRemote</remote> 
    <ejb-class>com.something.ejb.AccountFacadeBean</ejb-class> 
    <session-type>Stateless</session-type> 
    <transaction-type>Bean</transaction-type> 
</session> 

、何かのように:

<entity-deployment name="AccountFacade" location="AccountFacade"> 
    <resource-ref-mapping location="..." name="jdbc/..."/> 
</entity-deployment> 

<entity-deployment name="RestrictiveAccountFacade" location="RestrictiveAccountFacade" isolation="serializable"> 
    <resource-ref-mapping location="..." name="jdbc/..."/> 
</entity-deployment> 

はこれを行うことに伴うリスクがあり、いずれの側エフェクトまたは不特定の動作?

+1

ejb-jar.xmlでは、エンティティBeanとしてorion-ejb-jar.xmlにセッションBeanとして宣言しました。サーバーはそれについて文句を言っていませんでしたか? – rodrigoap

+0

これは単なる例です。私はそのように実際に構成していませんでした。私の部分からはコピー・ペースト・エラーです。しかし、あなたの観察は私に何かを実現させました。 "session-deployment"タグ(これは "entity-deployment"の代わりに上記の例にある)には、 "isolation"属性のようなものはありません。では、セッションBeanの分離レベルをどのように(またはどこで)指定するのですか? (P.S.私は現時点で例を変えずに残す) –

+0

この場合、そのような属性のための場所が1つあれば、それはdata-sources.xmlでなければならない。 – rodrigoap

答えて

0

これはあなたが上記のようにそれを持っていることは全く問題ありません。コンテナごとに、AccountFacadeRestrictiveAccountFacadeは全く関係のない2つのセッションBeanになります。

RestrictiveAccountFacadeは、同じjdbcリソースへのトランザクションのシリアライズ可能なアクセスがAccountFacadeとなっているため、トランザクション分離レベルでのみ相互に干渉します。

AccountFacadeは、取引に参加したのと同じレコードにRestrictiveAccountFacadeがアクセスする必要がある場合、ブロックされることがあります。

同様にRestrictiveAccountFacadeトランザクションはAccountFacadeによって使用されているのと同じレコードでブロックされます。

関連する問題