OceanBase_CE-v4.2.1.10 XA事物不支持?

【 使用环境 】生产环境 or 测试环境
【 OB or 其他组件 】OB
【 使用版本 】服务器版本: OceanBase 5.7.25-OceanBase_CE-v4.2.1.10,通过docker部署
【问题描述】配合atomikos使用XA事物,开启事物是报错
无论使用com.oceanbase.jdbc.OceanBaseDataSource还是com.oceanbase.jdbc.OceanBasePoolDataSource两种数据源都无法正常运行事物。
【复现路径】开启事物时,发送命令
XA START 0x3139322E3136382E33312E3235312E746D313734333032393631373532353030303039,0x3139322E3136382E33312E3235312E746D39,0x41544F4D

【附件及日志】Caused by: com.oceanbase.jdbc.internal.util.exceptions.OceanBaseSqlException: You have an error in your SQL syntax; check the manual that corresponds to your OceanBase version for the right syntax to use near ‘0x3139322E3136382E33312E3235312E746D313734333032383836343538353030303038,0x31393’ at line 1
[172.17.0.3:2882] [2025-03-26 22:51:34.003409] [YB42AC110003-0006301391626B4A-0-0]
at com.oceanbase.jdbc.internal.util.exceptions.OceanBaseSqlException.of(OceanBaseSqlException.java:79)
at com.oceanbase.jdbc.internal.protocol.AbstractQueryProtocol.exceptionWithQuery(AbstractQueryProtocol.java:205)
at com.oceanbase.jdbc.internal.protocol.AbstractQueryProtocol.executeQuery(AbstractQueryProtocol.java:329)
at com.oceanbase.jdbc.OceanBaseStatement.executeInternal(OceanBaseStatement.java:489)
… 111 common frames omitted
Caused by: java.sql.SQLException: You have an error in your SQL syntax; check the manual that corresponds to your OceanBase version for the right syntax to use near ‘0x3139322E3136382E33312E3235312E746D313734333032383836343538353030303038,0x31393’ at line 1
[172.17.0.3:2882] [2025-03-26 22:51:34.003409] [YB42AC110003-0006301391626B4A-0-0]
at com.oceanbase.jdbc.internal.protocol.AbstractQueryProtocol.readErrorPacket(AbstractQueryProtocol.java:2366)
at com.oceanbase.jdbc.internal.protocol.AbstractQueryProtocol.readPacket(AbstractQueryProtocol.java:2229)
at com.oceanbase.jdbc.internal.protocol.AbstractQueryProtocol.getResult(AbstractQueryProtocol.java:2117)
at com.oceanbase.jdbc.internal.protocol.AbstractQueryProtocol.executeQuery(AbstractQueryProtocol.java:324)
… 112 common frames omitted

【备注】@论坛小助手

1 个赞

根因分析场景: SQL 执行出错
根因分析命令: obdiag rca run --scene=sql_execution_error --env “{db_connect=’-h127.0.0.1 -P2881 -utest@test -p****** -Dtest’, trace_id=‘Yxx’}”
日志采集场景: SQL 执行出错
日志采集命令: obdiag gather scene run --scene=observer.sql_err --env “{db_connect=’-h127.0.0.1 -P2881 -utest@test -p****** -Dtest’, trace_id=‘Yxx’}”

为了更好地帮助您定位问题,请按照以下步骤操作:

  1. 使用上述 obdiag rca run 命令进行根因分析,输入具体的错误信息(如完整的错误消息和错误码),以便我们更准确地定位问题。
  2. 使用上述 obdiag gather scene run 命令采集相关日志,并将生成的日志压缩包提供给我们进一步分析。

另外,为了确定具体的问题,在此需要您提供一些额外的信息:

  1. 您能否提供完整的 SQL 语句以及执行该语句的上下文?
  2. 您是否在其他版本或环境中测试过相同的 XA 事务逻辑?如果有,结果如何?
  3. 您是否可以确认 atomikos 配置是否正确,例如连接池配置、事务管理器设置等?
  4. 报错时是否有特定的负载或并发场景?如果是,请描述当时的负载情况。
  5. 是否有其他相关的错误日志或异常信息可以提供?

附上敏捷诊断工具 obdiag 使用帮助链接

1 个赞

社区版不支持XA事务。
这里有说明

https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000002012644

2 个赞

@论坛小助手

您好,您提到的问题似乎与 OceanBase 没有关联,我无法回答,敬请谅解! 如果您有其他 OceanBase 相关问题,欢迎继续提问。