`

小配下分布式事务管理

阅读更多
      由于项目要求, 需要配置下分布式事务管理.问题是这样的, 两个系统A和B, 这两个系统分别有不同的数据库dbA和dbB(这两个数据库里数据大量冗余), 
以前是A系统访问dbA中的数据,B是dbB.
可现在由于业务逻辑有变, 针对一个User类所描述的信息, A系统要数据库dbB里User表里的数据. 
    

    
这是第一次配置分布式事务管理,问了同事后开始在网上找相关的例子, 找到的第一个是这个链接
, 它介绍的是通过Spring + JBossTS的方式来配置的. 
把它的例子下载下来后, 按它的说明一步步做, 成功了. 成功是成功了, 但有一些问题,还是存在的:
    
    
1, 当用Oracle时实现DynamicClass的问题. 例子用的是Mysql, DynamicClass有一个Mysql的实现, 但自己能不能写一个基于Oracle的实现呢? 
    
    
2, 自己参照着那个Mysql的DynamicClass实现,也写了一个Oracle的实现, 当用两个不同的Database时, 没问题, 也成功.(详细例子见名为OracleXA_JBossTS.rar附件) 
    
    
3, 可现在项目中用的并非是独立的Database, 而是以schema区分的. 也就是说配置数据库连接时的URL一样, 只是用户名和密码不同.

    
以JBossTS配置两个schema,不行. 第二个事务打不开. 
    
...........
    郁闷了, 连Oracle数据库怎么出了个
schema的问题, 在Oracle中schema与database有什么不同? 

    
想过: 既然是在同一个database中,通过schema.tableName的方式来做,那样也就不用再配置什么分布式事务管理了. 可不行, 两个schema的用户名密码不同, 得
配两个database, 既然两个database, 就得用到分布式事务管理吧? 
    
........
    
郁闷中,再上网搜, 找到这么一个叫JOTM的东东
, 照着说明改了自己的配置试试. 成功了! (详细例子见名为OracleXA_JOTM.rar附件,所需jar包可自己下载)在Oracle中的database下的两个schema里可以了, 两个schema,两个dataSource.
分享到:
评论
1 楼 xieyongwei 2009-03-13  
很好  虽然没用过
但是解决我一直对于schema与database下JTA事务管理的疑问

相关推荐

Global site tag (gtag.js) - Google Analytics