使用 JTA 处理 DB2 UDB 和 Informix Dynamic Server 中的分布式事务

http://tech.ddvip.com   2008年08月26日    社区交流

内容摘要:如果您正在使用 Java™ 开发数据库应用程序,并在寻找用于实现跨数据库的分布式事务解决方案,那么您应该评估一下 Java Transaction API(JTA)。本文将向您介绍分布式事务,以及如何在 Java 中使用 JTA 处理它们 —— 具体来说是在使用 DB2® UDB 或 Informix® Dynamic Server 的时候。

  本文示例源代码或素材下载

  简介

  在现代企业环境中,用多个数据库和多种品牌的数据库来存储公司数据已经不足为奇。最终,这些数据将会在不同数据库外进行比较、合并。

  如果您有一个异构的数据库环境,并且计划将不同数据库中的数据收集到一个单独的应用程序中,那么您就应该可以使用传统技术执行该任务。在使用 Java 时,您将通过 JDBC 处理所有的数据库操作。清单 1 展示了在 Java 应用程序中如何连接 DB2 UDB 和 IDS 的代码片断。

  清单 1. 使用 JDBC 建立到不同数据库的连接

 1 try { // load JDBC drivers
2   Class.forName (JDBC_DRIVER_DB2);
3   Class.forName (JDBC_DRIVER_IDS);
4 }
5 catch (Exception e) {
6   // error handling
7 }
8
9 try { // establish connection and proceed with operation
10   con_db2 = DriverManager.getConnection (DBURL_DB2);
11   con_ids = Drivermanager.getConnection (DBURL_IDS);
12
13   Statement stmt_db2 = con_db2.createStatement ();
14   Statement stmt_ids = con_ids.createStatement ();
15
16   ResultSet rs_db2 = stmt_db2.executeQuery (SQL);
17   ResultSet rs_ids = stmt_ids.executeQuery (SQL);
18
19   // do something very important with the result sets...
20 }
21 catch (SQLException e) {
22   // error handling
23 }

  两阶段提交协议简介

  清单 1 中的演示允许您修改不同数据库中的数据。代替执行查询,它可以使用 JDBC 方法 executeUpdate() 执行数据修改。

来源:developerWorks    作者:Uwe Weber    责编:豆豆技术应用

正在加载评论...