读书人

spring+hibernate+jotm分布式事宜配置

发布时间: 2012-06-27 14:20:08 作者: rapoo

spring+hibernate+jotm分布式事务配置总结
在前段开拓的体系 中,应用到了两个差别 网域的oracle数据库,必要 处理赏罚 之间的事宜,于是选择了spring+hibernate+jotm组合,现粘贴我的设置,看看人人有什么更优的设置或写法,谢谢。

一、环境 及框架
Tomcat+spring+hibernate+jotm,尚有 就是struts、Oracle等
二、需求阐发
体系 里有2套差别 网域的oracle数据库,之间的数据必要 举办交互。
三、Dao设置
1、界说 jtom Bean?
xml 代码


1. <bean id="jotm" />?


2、界说数据源
xml 代码


1. <bean id="dataSourceA" destroy-method="shutdown">?
2.???? <property name="dataSource">?
3.???????? <bean destroy-method="shutdown">?
4.???????????? <property name="transactionManager">?
5.???????????????? <ref local="jotm" />?
6.???????????? </property>?
7.???????????? <property name="driverName">?
8.???????????????? <value>oracle.jdbc.driver.OracleDriver</value>?
9.???????????? </property>?
10.???????????? <property name="url">?
11.???????????????? <value>jdbc:oracle:thin:@192.168.0.10:1521:A</value>?
12.???????????? </property>?
13.???????? </bean>?
14.???? </property>?
15.???? <property name="user">?
16.???????? <value></value>?
17.???? </property>?
18.???? <property name="password">?
19.???????? <value> </value>?
20.???? </property>?
21. </bean>??
22.??
23.??
24. <bean id="dataSourceB" destroy-method="shutdown">?
25.???? <property name="dataSource">?
26.???????? <bean destroy-method="shutdown">?
27.???????????? <property name="transactionManager">?
28.???????????????? <ref local="jotm" />?
29.???????????? </property>?
30.???????????? <property name="driverName">?
31.???????????????? <value>oracle.jdbc.driver.OracleDriver</value>?
32.???????????? </property>?
33.???????????? <property name="url">?
34.???????????????? <value>jdbc:oracle:thin:@192.168.0.10:1521:B</value>?
35.???????????? </property>?
36.???????? </bean>?
37.???? </property>?
38.???? <property name="user">?
39.???????? <value> </value>?
40.???? </property>?
41.???? <property name="password">?
42.???????? <value> </value>?
43.???? </property>?
44. </bean>??


3、界说 sessionFactory
xml 代码


1. <bean id="sessionFactoryA" />?
4.???? </property>?
5.???? <property name="mappingDirectoryLocations">?
6.???????? <list>?
7.???????????? <value>classpath:/org/testa/hibernate/model/</value>?
8.???????? </list>?
9.???? </property>?
10.???? <property name="hibernateProperties">?
11.???????? <props>?
12.???????????? <prop key="hibernate.dialect">org.hibernate.dialect.Oracle9Dialect</prop>?
13.???????????? <prop key="hibernate.show_sql">true</prop>?
14.???????????? <prop key="hibernate.jdbc.batch_size">50</prop>?
15.???????????? <prop key="hibernate.cache.use_query_cache">true</prop>?
16.???????????? <prop key="hibernate.cache.provider_class">org.hibernate.cache.EhCacheProvider</prop>?
17.???????? </props>?
18.???? </property>?
19.???? <property name="jtaTransactionManager">?
20.???????? <ref bean="jotm" />?
21.???? </property>?
22.???? <property name="lobHandler" ref="lobHandler"/>?
23. </bean>??????
24.??????????
25. <bean id="sessionFactoryB" />?
28.???? </property>?
29.???? <property name="mappingDirectoryLocations">?
30.???????? <list>?
31.???????????? <value>classpath:/org/testb/hibernate/model/</value>?
32.???????? </list>?
33.???? </property>?
34.???? <property name="hibernateProperties">?
35.???????? <props>?
36.???????????? <prop key="hibernate.dialect">org.hibernate.dialect.Oracle9Dialect</prop>?
37.???????????? <prop key="hibernate.show_sql">true</prop>?
38.???????????? <prop key="hibernate.jdbc.batch_size">50</prop>?
39.???????????? <prop key="hibernate.cache.use_query_cache">true</prop>?
40.???????????? <prop key="hibernate.cache.provider_class">org.hibernate.cache.EhCacheProvider</prop>?
41.???????? </props>?
42.???? </property>?
43.???? <property name="jtaTransactionManager">?
44.???????? <ref bean="jotm" />?
45.???? </property>?
46.???? <property name="lobHandler" ref="lobHandler"/>?
47. </bean>?

4、事宜管理 设置
xml 代码


1. <bean id="myTransactionManager"?
2.???? />?
5.???? </property>?
6. </bean>?


5、dao的设置
xml 代码


1. <bean id="testADaoTarget" sessionFactoryA "/>?
4. </property>?
5. </bean>?
6.??
7. <bean id="testADao" sessionFactoryB "/>?
21. </property>?
22. </bean>?
23.??
24. <bean id="testBDao" class="org.springframework.aop.framework.ProxyFactoryBean">?
25. <property name="proxyInterfaces">?
26.?? <value>org.testA.hibernate.dao.ITestBDAO</value>?
27. </property>?
28. <property name="interceptorNames">?
29.?? <list>?
30.???? <value> testBDaoTarget </value>?
31.?? </list>?
32. </property>?
33. </bean>?



四、留意事项
1、spring已经整合了jotm,假如你应用 spring自带的jotm,也许会提醒某些类找不到,下载一个最新的jotm包,把lib目次里的全部 jar包拷贝到lib目次。

2、假如体系 中应用 jndi,则原有的jndi做事也许会无效,提醒 NameNotFoundException非常,此时在src目次下添加一个carol.properties的属性文件,添加如下内容:


1. # do not use CAROL JNDI wrapper?
2. carol.start.jndi=false?
3.??
4. # do not start a name server?
5. carol.start.ns=false?
6.??
7. # Naming Factory?
8. carol.jndi.java.naming.factory.url.pkgs=org.apache.naming?

读书人网 >开源软件

热点推荐