首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2EE开发 >

spring注入多个远程sessionbean,调用其多个方法,怎么控制事务

2014-01-03 
spring注入多个远程sessionbean,调用其多个方法,如何控制事务结构如图所示,ejb容器中,单个session,我可以

spring注入多个远程sessionbean,调用其多个方法,如何控制事务
spring注入多个远程sessionbean,调用其多个方法,怎么控制事务

结构如图所示,
ejb容器中,单个session,我可以用容器管理事务。但现在将session注入到客户端spring管理的普通bean中,在该普通bean的方法中,调用多个sessionbean的多个方法,我如何控制事务。

求教各位大牛,完成后追加50分。

我无法将在不同机器上的多个session bean注入到本地的session bean中(在图中,session bean3和session bean 4注入到sessionbean1中),该怎么处理能顺利注入?

远程Ejb一般只能通过lookup获得吧。。。我之前的意思是你可以将服务器c中的sessionbean1和sessionbean2组合到一个新的sessionbean0中(sessionbean0仍然部署在服务器c中,sessionbean0的操作与你现在在action中的操作相同) ,然后你在action中调用sessionbean0,这样action就只调用一个sessionbean了。

另外,这种情况下,肯定会涉及到分布式事务,我使用的是<datasources>
  <xa-datasource>类型的数据源,在不同机器上分别放置了oracle-xa-ds.xml,但事务并不起作用。
我想知道,这几台服务器上的数据源文件是不是应该一模一样?具体怎么配置?

再把我的oracle-xa-ds.xml附上:

<?xml version="1.0" encoding="UTF-8"?>
<datasources>
  <xa-datasource>
    <jndi-name>MyOracleDS</jndi-name>


    <isSameRM-override-value>false</isSameRM-override-value>
    <xa-datasource-class>oracle.jdbc.xa.client.OracleXADataSource</xa-datasource-class>

      <!--服务器249 -->
    <xa-datasource-property name="URL">jdbc:oracle:thin:@192.168.24.249:1521:ORCL</xa-datasource-property>
    <xa-datasource-property name="User">gxpt1</xa-datasource-property>
    <xa-datasource-property name="Password">gxpt1</xa-datasource-property>
    <exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.OracleExceptionSorter</exception-sorter-class-name>
    <no-tx-separate-pools/>
      <metadata>
         <type-mapping>Oracle9i</type-mapping>
      </metadata>
  </xa-datasource>
  
  <xa-datasource>
    <jndi-name>JcOracleDS</jndi-name>
    <isSameRM-override-value>false</isSameRM-override-value>
 <!--服务器252 -->
    <xa-datasource-class>oracle.jdbc.xa.client.OracleXADataSource</xa-datasource-class>
    <xa-datasource-property name="URL">jdbc:oracle:thin:@192.168.24.252:1521:ORCL</xa-datasource-property>
    <xa-datasource-property name="User">gxpt1</xa-datasource-property>
    <xa-datasource-property name="Password">gxpt1</xa-datasource-property>

    <exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.OracleExceptionSorter</exception-sorter-class-name>
    <no-tx-separate-pools/>
      <metadata>
         <type-mapping>Oracle9i</type-mapping>
      </metadata>
  </xa-datasource>

  
  <mbean code="org.jboss.resource.adapter.jdbc.vendor.OracleXAExceptionFormatter" 
         name="jboss.jca:service=OracleXAExceptionFormatter">
    <depends optional-attribute-name="TransactionManagerService">jboss:service=TransactionManager</depends>
  </mbean>

</datasources>



jboss服务器我用的不多,这么具体配置,我也看不出啥问题来。。。

热点排行