`
longgangbai
  • 浏览: 7330248 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Mule ESB 学习笔记(10)mule事务配置

阅读更多

       在mule的事务可能为jdbc事务,jms事务,xa事务等,多种事务.这里讲解事务的几个动作:

相关的文档:

https://www.mulesoft.org/documentation-3.2/display/MULE2USER/Transaction+Management

transaction可以使用的动作为:

NONE - Never participate in a transaction.(不采用事务)
ALWAYS_BEGIN - Always start a new transaction when receiving a message. If a previous transaction exists, it commits that transaction.(接收消息时候必须有一个新的事务,如果事务已经存在,则先commit,在创建新事务.)
BEGIN_OR_JOIN - If a transaction is already in progress when an event is received, join the transaction, otherwise start a new transaction.(采用事务,如果事务存在,直接使用,如果不存在,创建新事务)
ALWAYS_JOIN - Always expects a transaction to be in progress when an event is received. If there is no transaction, an exception is thrown.(在接收消息时候总是期望有一个事务,如果事务不存在,抛出异常信息)
JOIN_IF_POSSIBLE - Will join the current transaction if one is available. Otherwise, no transaction is created (如果事务存在则使用事务,如果事务不存在,则不创建事务)

 

 

 

举例:

jms-queue-with-transaction.xml

 

 

 

<?xml version="1.0" encoding="UTF-8"?>
<mule xmlns="http://www.mulesoft.org/schema/mule/core"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:jms="http://www.mulesoft.org/schema/mule/jms"
    xmlns:vm="http://www.mulesoft.org/schema/mule/vm"
    xmlns:spring="http://www.springframework.org/schema/beans" 
    xmlns:tx="http://www.springframework.org/schema/tx"
    xsi:schemaLocation="http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/current/mule.xsd
        http://www.mulesoft.org/schema/mule/jms http://www.mulesoft.org/schema/mule/jms/current/mule-jms.xsd
        http://www.mulesoft.org/schema/mule/vm http://www.mulesoft.org/schema/mule/vm/current/mule-vm.xsd
        http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-current.xsd
        http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.1.xsd">

    <vm:connector name="VMQueue"/>
     
     <!-- 创建链接 -->
    <jms:activemq-connector name="jmsConnector" maxRedelivery="1">
        <dispatcher-threading-profile doThreading="false"/>
    </jms:activemq-connector>
    
    <!-- 定义压缩转换器 -->
    <gzip-compress-transformer name="Compress"/>
    <gzip-uncompress-transformer name="Uncompress"/>
    
  
    <!-- 定义输入队列 -->
    <endpoint name="in" address="jms://queue/in" exchange-pattern="one-way"/>
    
    <!-- see MULE-3342 for what this test is supposed to check -->
    <model name="model">
        <service name="vm-to-jms-queue">
            <inbound>
                <inbound-endpoint address="vm://in" exchange-pattern="one-way"/>
            </inbound>
            <outbound>
                <pass-through-router>
                    <outbound-endpoint ref="in" >
                        <jms:transaction action="ALWAYS_BEGIN" timeout="3000"/>
                    </outbound-endpoint>
                </pass-through-router>
            </outbound>
        </service>
        
        <service name="jms-to-vm">
            <inbound>
                <inbound-endpoint ref="in"/>
            </inbound>
            <outbound>
                <pass-through-router>
                    <outbound-endpoint address="vm://out" exchange-pattern="one-way"/>
                </pass-through-router>
            </outbound>
        </service>
    </model>
</mule>

 

测试代码:

 

 

 

public class MuleJMSMain {
    public static void main(String[] args)  {
        try {
            String configFile = "jms-queue-with-transaction.xml";
            String[] configFileArr = new String[] {configFile };
            MuleContextFactory muleContextFactory = new DefaultMuleContextFactory();
            MuleContext context = muleContextFactory
                    .createMuleContext(new SpringXmlConfigurationBuilder(configFileArr));
            context.start();
            LocalMuleClient client = context.getClient();
            client.send("vm://in", new DefaultMuleMessage("i love china ", context));

            MuleMessage response = client.request("vm://out", 100000);
            System.out.println("payload as string :"+response.getPayloadAsString());
            
            
        } catch (Exception e) {
            e.printStackTrace();
        }
        
    }
}

 

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    mule -esb 源码

    `mule-spring-configuration.dtd`和`mule-configuration.dtd`是Mule ESB的XML配置文件的DTD(文档类型定义),它们规定了XML配置文件的结构和元素。Spring是Mule ESB的核心组件之一,负责管理对象的生命周期和依赖...

    Mule ESB手册-中文版

    根据提供的文件内容,以下是关于Mule ESB手册-中文版的知识点: 1. Mule ESB简介 ...通过这些知识点的学习,可以加深对Mule ESB的使用方法的理解,并通过实例加深对ESB概念的理解,对新手来说非常有帮助。

    Mule ESB 学习笔记(13)CSV数据文件到数据库

    在本篇“Mule ESB 学习笔记(13)CSV数据文件到数据库”中,我们将探讨如何使用Mule ESB(Enterprise Service Bus,企业服务总线)处理CSV(Comma Separated Values,逗号分隔值)数据,并将其有效地导入到数据库中...

    MULE ESB-4.1企业版运行环境

    在描述中提到,“MULE ESB-4.1企业版运行环境”意味着这是一个完整的、预配置的环境,用户可以直接在其上运行由AnyPoint Studio开发的Mule应用。AnyPoint Studio是MuleSoft提供的一个集成开发环境(IDE),用于创建...

    ESB原理及Mule ESB实践

    4. **Mule ESB的安装与配置** - MuleESB有两个版本:社区版和企业版。社区版免费,适合初学者和小型项目;企业版提供了更多高级特性和支持服务,适合大型企业和复杂项目。 - 下载并安装MuleESB后,可以通过Mule ...

    mule IDE (mule ESB)

    Mule ESB 是一个轻量级的基于java的企业服务总线和集成平台, 使得开发人员可以快速,简单的连接多个应用, 使得它们可以交换数据。 Mule ESB 容易集成现有异构系统,包括:JMS, Web Services, JDBC, HTTP, 等. ESB...

    MuleEsb开源框架简介.pdf

    Mule 通过 Transports/Connectors 与外围的异构系统连接,提供 Routing(路由)、Transaction Management(事务管理)、Transformation(转换) 、Message Broker(消息代理) 、Transportation Management(传输...

    MuleESB帮助文档

    五、学习和使用Mule ESB "MuleESB3"这个文件名可能指的是Mule ESB的第三个主要版本。在该版本中,用户可以期待更完善的特性和改进。对于初学者,建议首先通过官方文档了解Mule ESB的基本概念和工作原理,然后使用Any...

    MuleESB_3.0_中文教程

    1. **安装与配置**:教程将引导你完成Mule ESB 3.0的安装,以及如何在Mule Studio中创建新项目。 2. **创建第一个Mule应用**:从简单的HTTP监听器和响应者开始,了解如何定义流和组件。 3. **连接器使用**:学习...

    MuleESB3.0中文教程

    ### MuleESB3.0中文教程知识点梳理 #### 一、Mule ESB 3.0概述 - **定位**:Mule ESB 3.0是一款轻量级的消息框架和整合平台,旨在帮助企业轻松地集成不同的系统和服务。 - **核心特性**:基于EIP(Enterprise ...

    mule esb开发手册

    《Mule ESB 开发手册》是一份详尽的指南,专为希望深入了解并掌握 Mule ESB(Enterprise Service Bus)技术的...通过深入学习和实践,开发者可以充分利用 Mule ESB 的强大功能,实现高效、可靠的企业级集成解决方案。

    mule esb cookbook 随书源码

    通过这个源码库,读者可以实际操作这些示例,加深对Mule ESB工作原理的理解,学习如何解决实际问题,从而提升在企业集成项目中的技能。记住,理论知识和实践经验相结合是掌握复杂技术的关键。因此,仔细研究这些源码...

    mule esb 项目 例子 入门

    本教程将带您入门Mule ESB项目,通过实例学习其核心概念和操作。 首先,我们需要理解ESB的基本概念。ESB作为一个中间件,它的主要作用是提供一种松耦合的方式,使得各个系统之间可以通过标准接口进行通信,而不是...

    mule esb 的简单介绍

    Mule ESB,全称Mule ...综上所述,Mule ESB是一个强大的集成工具,它简化了企业应用之间的复杂交互,提供了灵活的连接选项,支持多种通信模式,并具备高度的可扩展性和可配置性,是构建和维护分布式系统的关键组件。

    mule ESB 3 user guider

    总结来说,《Mule ESB 3用户指南》为用户提供了一个全面的、步骤详细的、实践导向的指导,从基础的配置、服务集成到开发、测试、文档编写和云服务集成,覆盖了使用Mule ESB进行企业级集成应用开发的各个阶段。

    MULE ESB-4.1社区办运行环境

    MULE ESB-4.1社区版是Mulesoft为开发者提供的免费版本,它包含了基本的ESB功能,适合学习、开发和小规模项目部署。 在MULE ESB-4.1社区版中,主要包含以下几个关键组件和概念: 1. **AnyPoint Studio**: AnyPoint ...

    MuleESB学习笔记

    图整体结构从上图可见,Mule通过Transports/Connectors与外围的异构系统连接,提供Routing(路由)、TransactionManagement(事务管理)、Transformation(转换)、MessageBroker(消息代理)、...

    Mule ESB开发工具以及相匹配的英文手册和中文手册(翻译狗充值翻译)

    在学习和使用Mule ESB时,理解其基本概念和架构至关重要。`APDevFundamentals3.8_studentManual_20jun2016.pdf` 和 `APDevFundamentals3.8_studentManual_20jun2016【翻译狗www.fanyigou.com】.pdf` 这两个文件是...

Global site tag (gtag.js) - Google Analytics