0

ejb-jar.xml( EJB 1.1の) デプロイメント記述子で複数の Bean を異なる名前で宣言できますが、背後には同じクラスがありますか?

例えば:

<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>

RestrictiveAccountFacadeファイルの分離レベルを高く設定したい場合はorion-ejb-jar.xml、次のようにします。

<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>

これを行うことに伴うリスク、副作用、または特定されていない動作はありますか?

4

1 に答える 1

0

これは、上記のように持っていればまったく問題ありません。AccountFacadeコンテナごとに関係がありRestrictiveAccountFacade、2 つのまったく無関係なセッション Bean になることに注意してください。

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

したがってAccountFacade、 のトランザクションに参加しているレコードと同じレコードにアクセスする必要がある場合、ブロックされる可能性がありますRestrictiveAccountFacade

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

于 2010-01-15T16:57:44.033 に答える