java - GlassFish 5 中的 2PC 事务(交叉事务)

标签 java mysql glassfish

有人知道 GlassFish 5 是否支持通过 2PC(XA 协议(protocol))使用全局事务?但无需安装额外的工具。

我在 GlassFish“开源 Java EE 引用实现”页面中查找了信息,我在其中下载了应用程序服务器(以及其他页面),但我没有运气。

我尝试在两个微服务中执行事务,在数据库中插入两个值。我已经使用“com.mysql.jdbc.jdbc2.optional.MysqlXADataSource”配置了 GlassFish 的 JNDI,它看起来可以工作,但是当我检查数据库时,仅添加了一项服务的值。 (与2PC的全局交易不起作用)。我开始认为 GlassFish 不支持 2PC。

我读到它可以用 tomcat 来做到这一点,但我需要添加像atomikos、bitronix 等工具。这个想法是可以用 glassfish 来做到这一点,而无需安装任何其他东西。

问候。

最佳答案

Does someone know if GlassFish 5 has support to use global transactions with 2PC (XA protocol)? but without install extra tools.

Glassfish 5 支持使用 XA 数据源的事务。您可以创建一个程序来执行组合多个数据库上的操作的事务。例如,您可以创建一个对 Oracle 和 IBM DB2 数据库执行操作的事务。如果事务中的一项操作失败,则其他操作(在同一数据库和其他数据库中)将不会执行或回滚。

I try doing transactions in two microservices that insert two values in the data base. I have configured the GlassFish's JNDI with "com.mysql.jdbc.jdbc2.optional.MysqlXADataSource" and it looks like working, but when I check the data base only is added a value of one service.

如果您的程序在事务中调用 REST/Web 服务,则其他 REST/Web 服务执行的操作不会加入到该事务中。程序中的错误不会导致已调用的 REST/webservice 执行的操作发生回滚。

关于java - GlassFish 5 中的 2PC 事务(交叉事务),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46028845/

相关文章:

java - 爆炸的 Artifact 无法用 glassfish 上传

java - 问题 Glassfish 4 不出现 glassfish-web

java - LibGDX - 窗口不是每帧都被清理

java - 如何从字符串中删除特殊字符?

Mysql窗口函数的解决方法

mysql - 两个应用程序共享同一个数据库 Rails

java - 定期 JavaFX 服务

java - 如何使用 pivot 作为最左边的键对其进行排序?

mysql - 错误 1045 (28000) : Access denied for user 'root' @'localhost' (using password: YES) on linux 16. 04

java - 此 Glassfish3+ CORBA 错误消息意味着什么?