- I have searched the issues of this repository and believe that this is not a duplicate.
Ⅰ. Issue Description
如果用户不分服务,操作同库,jdbcurl相同,导致通过resourceId获取数据源错误,获取不到链接,二阶段下发commit/rollback报错xaer_nota错误; #5034 ,虽然这个pr在一阶段hold了所有链接,如果在oracle同库不同用户下,在一阶段完成后,二阶段服务重启,导致holder没值,可能会造成ORA-24774问题
所以我认为resourceId可能得唯一,才能根本上解决问题
由于我对AT模式代码不太熟悉,这里就暂且不讨论了。
Ⅱ. Describe what happened
If there is an exception, please attach the exception trace:
Just paste your stack trace here!
Ⅲ. Describe what you expected to happen
Ⅳ. How to reproduce it (as minimally and precisely as possible)
- xxx
- xxx
- xxx
Minimal yet complete reproducer code (or URL to code):
Ⅴ. Anything else we need to know?
Ⅵ. Environment:
- JDK version(e.g.
java -version
): - Seata client/server version:
- Database version:
- OS(e.g.
uname -a
): - Others:
3条答案
按热度按时间mbyulnm01#
@slievrly
This problem should exist, our resourceid is url and cannot distinguish between different users of the same library
这个问题应该存在,我们的resourceid是url,无法区分同个库不同的用户
fxnxkyjh2#
我们应该讨论下是否要支持这种多数据源,并且还是同个库,不同用户的情况,理论上同个库还有权限问题是所操作的表不同,这种应该只出现在提前划分业务模块,还未拆分成微服务架构,只能靠多数据源来做隔离的阶段。
同个库不同用户权限不同的多个数据源,这种我个人认为不太符合开发规范
dwbf0jvd3#
在看AT/XA模式针对resourceId的取值时,发现AT模式针对不同数据库resourceId取值方式都不同,但是在XA模式下,resourceId都是jdbcUrl问号截取前的;我认为AT模式可能用户较多,经过了几次bug修复调整了resourceId的取值方式,XA模式,目前存在隐藏问题可能是AT模式暴露过的,要不要同步这两者的resourceId取值规则