从 z/OS 批处理作业运行 XA/JTA 事务
Posted
技术标签:
【中文标题】从 z/OS 批处理作业运行 XA/JTA 事务【英文标题】:running XA/JTA transactions from z/OS batch jobs 【发布时间】:2015-01-13 17:35:53 【问题描述】:使用JZOS启动器批量执行java程序。
用于 JDBC 的 DB2 驱动程序支持 XA 事务,但似乎只有当进程在“事务管理器”的控制下运行时才能使用它们(运行 WebSphere/CICS 进程时会发生什么)
有没有办法批量使用这种交易?
目标是在单个提交/回滚中混合 DB2/Oracle 插入/更新
【问题讨论】:
【参考方案1】:ibm 站点提供了an example(参见图 3 - 使用 JTA 的分布式事务示例),其中包含事务管理逻辑
这似乎只有在使用类型 4(远程)连接到 DB2 时才有可能
【讨论】:
【参考方案2】:SimpleJTA 是一个可以直接用于解决问题或作为有目的封装的参考的项目:
SimpleJTA 实现了一个独立的符合 JTA 的事务 经理。它主要设计为在没有 J2EE 服务器时使用 例如,在 Servlet 应用程序或独立 Java 中可用 程序。
但它应该适应/配置为使用 DB2
SimpleJTA 正在使用 Oracle 9i 和 Apache 进行开发和测试 Derby 数据库管理系统。添加支持相当容易 对于其他支持 XA 接口的数据库系统。
【讨论】:
【参考方案3】:一个更复杂的问题是使用到 DB2 的类型 2(本机/DLL)连接来完成这项工作,因为它不支持分布式事务。如果您想在分布式事务中集成来自 JNI 调用的 COBOL 程序的更新,这可能是必要的
也许可以构建类似于 WebSphere 的last participant support extension 的解决方案:
最后参与者支持是对事务服务的扩展 允许单个单阶段资源参与两阶段 与一个或多个两阶段资源的交易。
【讨论】:
以上是关于从 z/OS 批处理作业运行 XA/JTA 事务的主要内容,如果未能解决你的问题,请参考以下文章