liuyangming / ByteJTA

ByteJTA is a distributed transaction manager based on the XA/2PC mechanism. It’s compatible with the JTA specification. User guide: https://github.com/liuyangming/ByteJTA/wiki
http://www.bytesoft.org
GNU Lesser General Public License v3.0
211 stars 110 forks source link

Isolation Support #6

Closed wujun8 closed 6 years ago

wujun8 commented 6 years ago

5 这个 pr 希望 merge 下,或者考虑其它方案适配对 Isolation 的支持

liuyangming commented 6 years ago

LocalXADataSource并非ByteJTA根据具体数据源自动封装的,而是需要业务系统来封装,比如:

<bean id="doNotUseThisDataSourceDirectly" class="org.apache.commons.dbcp.BasicDataSource">
    <!-- ...... -->
</bean>

<bean id="dataSource" 
      class="org.bytesoft.bytejta.supports.jdbc.LocalXADataSource">
    <property name="dataSource" ref="doNotUseThisDataSourceDirectly" />
</bean>

如果需要设置隔离级别,可以考虑将业务需要配置的数据源封装在IsolationLevelDataSourceAdapter中之后,再设置到LocalXADataSource; JtaTransactionManager.allowCustomIsolationLevels属性也可以直接在JtaTransactionManager的bean定义中设置。

以上两处调整,如果加在框架中,反而会限制了框架的适用场景,因此不倾向于添加。 ByteJTA/ByteTCC内置的配置只是方便新手使用。使用熟练、需要定制参数时,更推荐在此基础上自行配置。

wujun8 commented 6 years ago

THX