`
madrocket
  • 浏览: 17303 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

全局事务jta小探(三)

阅读更多

附录:

 

<%@page contentType="text/html;charset=GB2312" %>

<%@page import="java.sql.*" %>

<%@page import="javax.sql.*" %>

<%@page import="javax.naming.*" %>

<%@page import="javax.transaction.UserTransaction" %>

<%@ page import="com.eway.framework.basecomponent.Framework" %>

<%@ page import="com.eway.framework.basecomponent.services.calendar.BusinessDayService" %>

<%@ page import="com.eway.framework.basecomponent.services.calendar.Overtime" %>

<%@ page import="com.eway.workflow.client.services.DraftBoxService" %>

<%@ page import="com.eway.workflow.client.po.DraftItem" %>

<%

        ResultSet rs = null;

        Statement stmt = null;

        UserTransaction ut = null;

        Connection conn = null;

        try {

            Context initCtx = new InitialContext();

            ut = (UserTransaction) initCtx.lookup("java:comp/UserTransaction");

            Context envCtx = (Context) initCtx.lookup("java:comp/env");

            DataSource ds = (DataSource) envCtx.lookup("jdbc/wfmsDataSource");

            out.println("<<< before lookup(\"java:comp/UserTransaction\" >>>");

           // ut = (UserTransaction) initCtx.lookup("java:comp/UserTransaction");

            out.println("<br/>");

            out.println("<br/>");

            out.println("<<< before beginning the transaction >>>");

            out.println("<br/>");

            conn = ds.getConnection();

            ut.begin();

 

            DraftBoxService draftBoxService = (DraftBoxService) Framework.getEngine().getContainer().getComponent("draftBoxService");

            Object sdf = new Object();

           

            DraftItem draftItem = new DraftItem();

            draftItem.setBusinessId("businessid11");

            draftItem.setTitle("title11");

            draftItem.setDraftsman("userid11");

            draftItem.setCreatedTime(new Timestamp((new java.util.Date()).getTime()));

            draftItem.setEntityClassName("com.eway.workflow.sample.po.BusinessData");

            draftItem.setModuleId("moduleId");

            draftItem.setModuleName("moduleName");

            draftItem.setTemplateId("templateId");

            draftItem.setState(0);

            draftItem.setProcessUrl("processUrl");

            draftBoxService.saveDraftItem(draftItem);

           

            BusinessDayService businessDayService = (BusinessDayService) Framework.getEngine().getContainer().getComponent("businessDayService");

            businessDayService.saveOvertime(new Overtime());

            stmt = conn.createStatement(

                    ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE);

            rs = stmt.executeQuery("SELECT  name FROM jta_test ");

            rs.next();

            out.println(rs.getString("name"));

            out.println("<br/>");

            PreparedStatement pstmt = conn.prepareStatement("insert into  jta_test(id,name) values('asddddddddsdfsf','ddddd')");

            pstmt.executeUpdate();

            rs = stmt.executeQuery("SELECT  name FROM jta_test where id='asdddf' ");

            rs.next();

            out.println(rs.getString("name"));

            ut.commit();

            out.println("<h1>commit ok</h>");

        } catch (Exception e) {

            if (ut != null) {

                ut.rollback();//Or ut.commit();

                out.println("rollback");

            } else {

                System.out.println("<<< ut is null >>>");

            }

            e.printStackTrace();

        }

%>

分享到:
评论

相关推荐

    多数据源事务jta测试

    3. **开始事务**:通过UT接口启动一个新的全局事务。 4. **执行操作**:在事务内对每个数据源执行相应的操作。 5. **提交或回滚**:根据操作结果,决定是提交还是回滚事务。 博客可能还讨论了以下几个关键点: - **...

    分布式事务JTA之实践:Spring+ATOMIKOS

    本篇文章将探讨如何在Java环境中,利用Spring框架和Atomikos这样的第三方工具实现分布式事务管理,即JTA(Java Transaction API)的实践。 JTA是Java平台提供的一种标准API,用于管理跨越多个资源(如数据库、消息...

    事务处理:JTA事务

    JTA(Java Transaction API) 为 J2EE 平台提供了分布式事务服务。  要用 JTA 进行事务界定,应用程序要调用 javax.transaction.UserTransaction 接口中的方法。

    JDBC事务 JTA事务 传播特性 隔离级别

    在2PC中,事务处理监视器(TPM)先询问所有资源管理器(如数据库)是否准备好提交,然后再决定全局提交或回滚。JTA事务更复杂,但能保证分布式事务的一致性。 最后,我们提到的是**事务的传播特性**,这是Spring...

    Springboot 动态多数据源 jta分布式事务

    JTA是Java平台中处理分布式事务的标准API,它允许应用程序在一个全局事务中操作多个资源(如数据库、消息队列等)。Spring Boot支持JTA事务管理,主要通过以下组件实现: 1. Atomikos:这是一个开源的JTA实现,提供...

    使用JTA实现跨库事务

    它定义了三种主要的角色:事务管理器(Transaction Manager)、资源管理器(Resource Manager)和用户事务(User Transaction)。 1. **事务管理器**:这是JTA的核心,负责协调参与事务的各个资源管理器,确保ACID...

    JDBC事务和JTA(XA)事务

    JDBC事务和JTA(XA)事务 JDBC事务和JTA(XA)事务是两种常见的数据库事务类型,它们都可以用来管理数据库事务,确保数据库的一致性和可靠性。 JDBC事务 JDBC事务是Java Database Connectivity(JDBC)的事务机制,它...

    JTA分布式事务使用示例代码

    此外,JTA还支持两阶段提交(2PC)协议,以协调不同资源的提交过程,确保全局一致性。 总之,JTA分布式事务的示例代码展示了如何在Java环境中处理跨多个数据源的事务,保证在分布式系统中的数据一致性。理解和掌握...

    Spring配置JTA事务管理

    Spring框架在企业级Java应用中广泛用于实现事务管理,而JTA(Java Transaction API)是Java平台上的标准事务处理API,适用于分布式环境。本篇文章将深入探讨如何在Spring中配置JTA事务管理,以实现跨数据库和资源的...

    03_传智播客JPA详解_搭建JPA开发环境和全局事务介绍

    在JPA中,我们可以使用JTA(Java Transaction API)来处理全局事务。 **全局事务的应用**: 1. **声明式事务管理**:在Spring框架中,可以通过@Transactional注解实现声明式事务管理,只需在需要事务的方法上添加此...

    分布式事务操作之Spring+JTA+mybatis源码

    - **Atomikos、Bitronix等JTA实现**:这些第三方库实现了JTA规范,可以用来管理分布式事务。 6. **配置Spring JTA事务**:在Spring的配置文件中,你需要配置 `UserTransaction` 和 `TransactionManager`,并启用...

    tomcat 配置JTA事务

    在tomcat 中配置JTA 事务,方便管理web项目

    JTA事务源码示例

    Spring+iBatis+JOTM实现JTA事务: 如何处理跨库事物:spring + jtom 的jta事务是个很好的选择. 这个源码示例非常不错,包括所有的源码和jar包,下载后eclipse 或 myeclipse 导入就能用。 里面有详细的说明和注释,...

    多数据源事务之解决方案jta+atomikos

    Atomikos不仅仅是一个简单的JTA实现,它还包含了一些高级特性,如事务超时、事务恢复、事务日志、以及基于JMX的监控工具,这使得开发者可以更方便地处理复杂的分布式事务场景。 使用JTA和Atomikos进行多数据源事务...

    springboot整合JTA组件,多数据源事务管理

    XA协议是数据库层面的一套分布式事务管理的规范,JTA是XA协议在Java中的实现,多个数据库或是消息厂商实现JTA接口,开发人员只需要调用SpringJTA接口即可实现JTA事务管理功能。 JTA事务比JDBC事务更强大。一个JTA事务...

    jta.jar包;jta.jar包

    Local Transactions**: JTA允许在单一应用服务器内部进行局部事务,也可以跨越不同应用服务器和资源进行全局事务。 9. **Exception Handling**: JTA定义了异常层次结构,如`SystemException`和`UserException`,...

    spring + JTA + JOTM实现分布式事务

    JTA是Java平台的标准事务API,它允许应用程序进行跨多个数据源(如数据库或消息队列)的全局事务处理。通过JTA,开发者可以编写不关心具体事务管理细节的代码,这样就提高了代码的可移植性和可维护性。 JOTM则是JTA...

    spring+jotm+ibatis+mysql实现JTA分布式事务

    在JTA分布式事务的场景下,iBATIS作为数据访问层,参与到事务处理中,其执行的SQL操作会受到JTA的控制,确保在事务中的所有数据库操作要么全部成功,要么全部回滚。 MySQL是广泛使用的开源关系型数据库管理系统,它...

    java实现JTA简单例子

    4. **Xid**:代表一个全局事务的唯一标识,由三部分组成:全局事务ID、分支事务ID和格式ID。在`ChildXid.java` 文件中,可能定义了一个自定义的`Xid`实现,用于在事务中识别和跟踪资源。 5. **XADataSource**:这是...

    在Spring中使用JTA事务管理

    在Spring框架中,JTA(Java Transaction API)事务管理是一种用于处理分布式事务的高级机制,它允许应用程序在多个数据源之间进行协调的事务操作。本文将详细介绍如何在Spring中使用JTA事务管理,包括通过集成JOTM...

Global site tag (gtag.js) - Google Analytics