`

一个不错的MULE主文件

    博客分类:
  • SOA
阅读更多
mule & seda 的使用每分钟处理5000单,发帖纪念 .
<mule xmlns="http://www.mulesource.org/schema/mule/core/2.2"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:spring="http://www.springframework.org/schema/beans"
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:jdbc="http://www.mulesource.org/schema/mule/jdbc/2.2" xmlns:xm="http://www.mulesource.org/schema/mule/xml/2.2"
    xmlns:stdio="http://www.mulesource.org/schema/mule/stdio/2.2" xmlns:vm="http://www.mulesource.org/schema/mule/vm/2.2"
    xmlns:cxf="http://www.mulesource.org/schema/mule/cxf/2.2"
    xsi:schemaLocation="
       http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
       http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd
       http://www.mulesource.org/schema/mule/core/2.2 http://www.mulesource.org/schema/mule/core/2.2/mule.xsd
       http://www.mulesource.org/schema/mule/jdbc/2.2 http://www.mulesource.org/schema/mule/jdbc/2.2/mule-jdbc.xsd
       http://www.mulesource.org/schema/mule/xml/2.2 http://www.mulesource.org/schema/mule/xml/2.2/mule-xml.xsd
       http://www.mulesource.org/schema/mule/vm/2.2 http://www.mulesource.org/schema/mule/vm/2.2/mule-vm.xsd
       http://www.mulesource.org/schema/mule/cxf/2.2 http://www.mulesource.org/schema/mule/cxf/2.2/mule-cxf.xsd
       http://www.mulesource.org/schema/mule/stdio/2.2 http://www.mulesource.org/schema/mule/stdio/2.2/mule-stdio.xsd">

    <context:property-placeholder location="classpath:conf/webserviceClientUrl.properties" />
    <stdio:connector name="SystemStreamConnectorActive"
        promptMessageCode="3" messageDelayTime="1000" />

    <spring:beans>
        <spring:import resource="classpath:conf/applicationContext.xml" />
    </spring:beans>

    <configuration>
        <default-dispatcher-threading-profile
            maxThreadsActive="50" maxThreadsIdle="25" threadWaitTimeout="1000" threadTTL="60000" />
        <default-receiver-threading-profile
            maxThreadsActive="50" maxThreadsIdle="25" threadWaitTimeout="1000" threadTTL="60000" />
        <default-service-threading-profile
            maxThreadsActive="50" maxThreadsIdle="25" threadWaitTimeout="1000" threadTTL="60000" />            
    </configuration>

    <jdbc:connector name="jdbcConnectorActive" pollingFrequency="1200" dataSource-ref="dataSource">
    
        <!-- 激活 -->    
        <jdbc:query key="orderQry"
            value="select /*+index(c IDX_VSOP_CUST_ORDER_STATUS)*/ c.cust_order_id
                  from customer_order c
                 where exists (select /*+index(b IDX_ORDER_ITEM_STATUS)*/ b.cust_order_id
                          from order_item b
                         where b.order_item_cd = 'T20'
                           and b.status = '1501'
                           and b.cust_order_id = c.cust_order_id)
                   and c.status = '040'
                   and rownum between 0 and 100" />
        <jdbc:query key="orderQry.ack"
            value="update CUSTOMER_ORDER set STATUS='110'  where CUST_ORDER_ID = #[map-payload:CUST_ORDER_ID] " />
            
        <!-- 竣工 -->
        <jdbc:query key="orderCompletionQry"
            value="select a.cust_order_id from customer_order a where a.status = '120' and rownum between 0 and 100" />
        <jdbc:query key="orderCompletionQry.ack"
            value="update CUSTOMER_ORDER set STATUS='899'  where CUST_ORDER_ID = #[map-payload:CUST_ORDER_ID] " />
        
        <!-- 用户状态同步下发 -->    
        <jdbc:query key="userInfoSynQry"
            value="select a.user_info_syn_id,
                       a.system_id,
                       a.action_type,
                       a.prod_spec_code,
                       a.product_no,
                       a.old_product_no,
                       a.user_state,
                       a.user_pay_type,
                       a.state
                  from user_info_syn a where a.state = '100'
                   and rownum between 0 and 100" />
        <jdbc:query key="userInfoSynQry.ack"
            value="update user_info_syn t set t.state = '200' where t.user_info_syn_id = #[map-payload:user_info_syn_id] " />
            
        <!-- 服开回单 -->
        <jdbc:query key="pfOrderQry"
            value="SELECT T.WORK_ORDER_ID workOrderId,
                     T.CUST_ORDER_ID custOrderId,
                     T.STATE state,
                     T.ADD_TIME addTime,
                     T.REMARK remark,
                     T.ORDER_STATE orderState
                FROM RETURN_WORK_ORDER T
               WHERE T.STATE='0' and rownum between 0 and 100" />
         <jdbc:query key="pfOrderQry.ack"
            value="update RETURN_WORK_ORDER set STATE='9' where CUST_ORDER_ID = #[map-payload:custOrderId] "/>
    </jdbc:connector>

    <endpoint name="CustomerOrderItemRequests" address="vm://customerOrderitem.requests" />
    <vm:connector name="vmConnector" queueEvents="true" />

    <model name="jdbcInboundActionModel">
    <!-- 集团改造 -->
    <!-- 激活流程    start -->
      <service name="jdbcService">
            <inbound>
                <jdbc:inbound-endpoint queryKey="orderQry" />
            </inbound>
            <!-- 使用对象池技术,在系统启动时就会先创建一批对象(本配置为50个)放在对象池里,等发起调用时,系统不会创建新的对象,because the component will reused -->
            <pooled-component class="com.tydic.mule.component.OrderProcessComponent">
            <pooling-profile exhaustedAction="WHEN_EXHAUSTED_WAIT" initialisationPolicy="INITIALISE_ALL"
            maxActive="100" maxIdle="200" maxWait="300" />
            </pooled-component>
            <outbound>
                <pass-through-router>
                    <vm:outbound-endpoint address="vm://orders" />
                </pass-through-router>
            </outbound>
        </service>
        
        <service name="creatXMLService">
               <inbound>
                <vm:inbound-endpoint address="vm://orders" />
            </inbound>
            <!-- 使用对象池技术,在系统启动时就会先创建一批对象(本配置为50个)放在对象池里,等发起调用时,系统不会创建新的对象,because the component will reused -->
            <pooled-component class="com.tydic.mule.component.ActiveXMLBuilderComponent">
            <pooling-profile exhaustedAction="WHEN_EXHAUSTED_WAIT" initialisationPolicy="INITIALISE_ALL"
            maxActive="600" maxIdle="700" maxWait="800" />
            </pooled-component>
            <outbound>
                <pass-through-router>
                    <vm:outbound-endpoint address="vm://activeXML" />
                </pass-through-router>
            </outbound>
            <threading-profile maxThreadsActive="300" maxThreadsIdle="200" threadWaitTimeout="1000" threadTTL="60000" poolExhaustedAction="RUN"></threading-profile>
        </service>
     
        <service name="sendXMLService">
               <inbound>
                <vm:inbound-endpoint address="vm://activeXML" />
            </inbound>
            <!-- 使用对象池技术,在系统启动时就会先创建一批对象(本配置为50个)放在对象池里,等发起调用时,系统不会创建新的对象,because the component will reused -->
            <pooled-component class="com.tydic.mule.component.ActiveXMLSendComponent">
            <pooling-profile exhaustedAction="WHEN_EXHAUSTED_WAIT" initialisationPolicy="INITIALISE_ALL"
            maxActive="600" maxIdle="700" maxWait="800" />
            </pooled-component>
            <threading-profile maxThreadsActive="300" maxThreadsIdle="200" threadWaitTimeout="1000" threadTTL="60000"></threading-profile>
        </service>
    <!-- 激活流程    end -->    
        
    <!-- 竣工流程    start -->          
    <service name="jdbcCompletionService">
            <inbound>
                <jdbc:inbound-endpoint queryKey="orderCompletionQry" />
            </inbound>
            <!-- 使用对象池技术,在系统启动时就会先创建一批对象(本配置为50个)放在对象池里,等发起调用时,系统不会创建新的对象,because the component will reused -->
            <pooled-component class="com.tydic.mule.component.OrderCompletionComponent">
            <pooling-profile exhaustedAction="WHEN_EXHAUSTED_WAIT" initialisationPolicy="INITIALISE_ALL"
            maxActive="100" maxIdle="200" maxWait="300" />
            </pooled-component>
    </service>
    <!-- 竣工流程    end -->        
    
    
    <!-- 用户状态同步下发 -->
    <service name="jdbcUserInfoSynService">
            <inbound>
                <jdbc:inbound-endpoint queryKey="userInfoSynQry" />
            </inbound>
            <!-- 使用对象池技术,在系统启动时就会先创建一批对象(本配置为50个)放在对象池里,等发起调用时,系统不会创建新的对象,because the component will reused -->
            <pooled-component class="com.tydic.mule.component.UserInfoSynXMLBuilderComponent">
            <pooling-profile exhaustedAction="WHEN_EXHAUSTED_WAIT" initialisationPolicy="INITIALISE_ALL"
            maxActive="600" maxIdle="700" maxWait="800" />
            </pooled-component>
            <outbound>
                <pass-through-router>
                    <vm:outbound-endpoint address="vm://userInfoSynXML" />
                </pass-through-router>
            </outbound>
            <threading-profile maxThreadsActive="200" maxThreadsIdle="100" threadWaitTimeout="1000" threadTTL="60000" poolExhaustedAction="RUN"></threading-profile>
    </service>

    <service name="userInfoSynSendXMLService">
               <inbound>
                <vm:inbound-endpoint address="vm://userInfoSynXML" />
            </inbound>
            <!-- 使用对象池技术,在系统启动时就会先创建一批对象(本配置为50个)放在对象池里,等发起调用时,系统不会创建新的对象,because the component will reused -->
            <pooled-component class="com.tydic.mule.component.UserInfoSynXMLSendComponent">
            <pooling-profile exhaustedAction="WHEN_EXHAUSTED_WAIT" initialisationPolicy="INITIALISE_ALL"
            maxActive="200" maxIdle="300" maxWait="400" />
            </pooled-component>
    </service>
    <!-- 用户状态同步下发     end-->


    <!-- 服开回单服务 -->
    <service name="jdbcInboundPFReturnService">
        <inbound>
            <jdbc:inbound-endpoint queryKey="pfOrderQry" />
        </inbound>
        <pooled-component class="com.tydic.mule.component.PFReturnXMLBuilderComponent">
        <pooling-profile exhaustedAction="WHEN_EXHAUSTED_WAIT" initialisationPolicy="INITIALISE_ALL" 
        maxActive="600" maxIdle="700" maxWait="800" />
        </pooled-component>
        <outbound>
             <pass-through-router>
                 <vm:outbound-endpoint address="vm://pfReturnXMLOrders" />
             </pass-through-router>
         </outbound>
         <threading-profile maxThreadsActive="150" maxThreadsIdle="75" threadWaitTimeout="1000" threadTTL="60000" poolExhaustedAction="RUN"></threading-profile>   
    </service>

    <service name="pfReturnSendXMLService">
        <inbound>
            <vm:inbound-endpoint address="vm://pfReturnXMLOrders" />
        </inbound>
        <pooled-component class="com.tydic.mule.component.PFReturnXMLSendComponent">
        <pooling-profile exhaustedAction="WHEN_EXHAUSTED_WAIT" initialisationPolicy="INITIALISE_ALL" 
        maxActive="600" maxIdle="700" maxWait="800" />
        </pooled-component>
        <threading-profile maxThreadsActive="200" maxThreadsIdle="100" threadWaitTimeout="1000" threadTTL="60000" poolExhaustedAction="RUN"></threading-profile>
    </service>
    <!-- 服开回单服务    end -->
    
    <!-- 
        <service name="jdbcInboundActionService">
            <inbound>
                <jdbc:inbound-endpoint queryKey="orderQry" />
            </inbound>
            <component class="com.muleinaction.MuleDataServiceComponent" />
            <outbound>
                <pass-through-router>
                    <vm:outbound-endpoint address="vm://orders" />
                </pass-through-router>
            </outbound>
        </service>
        <service name="ThreeWebService">
            <inbound>
                <vm:inbound-endpoint address="vm://orders" />
            </inbound>
            <component class="com.muleinaction.ThreeWebServiceComponent" />
        </service>
        <service name="ClientWebService">
            <inbound>
                <vm:inbound-endpoint ref="CustomerOrderItemRequests" />
            </inbound>
            <component class="com.muleinaction.ClientCXFWebServiceComponent">
            </component>
        </service>
     -->
    </model>
</mule>

分享到:
评论
2 楼 hamlzf 2011-11-03  
fortianwei 写道
这东东,现在用的人多么?09年毕业设计就弄得这个,之后就搁下了,平时很少听到有关esb啊,mule的消息了。。。

soa这玩意用的少,但不见得没用处。SSH倒是到处都用,但实在没啥新意。
1 楼 fortianwei 2011-11-02  
这东东,现在用的人多么?09年毕业设计就弄得这个,之后就搁下了,平时很少听到有关esb啊,mule的消息了。。。

相关推荐

    Mule ESB开发一个小例子

    项目创建完成后,你会在flows文件夹中看到一个名为"Basic Tutorial.flow"的文件,以及src目录下的"mule-project.xml"配置文件。 我们的目标是构建一个简单的Mule流,它能接收HTTP请求,记录日志,修改负载,然后...

    在tomcat中部署mule项目

    在IT行业中,Mule ESB(企业服务总线)是一个流行的开源集成平台,用于构建连接应用程序和服务的系统。本文将详细介绍如何在Apache Tomcat服务器上部署Mule项目,这是一个常见的需求,因为Tomcat是一个广泛使用的轻...

    MULE ESB官方例子研究

    这包括添加"MULE_LIB"用户库,包含所有MULE主目录下lib\mule的jar包,以及添加"M2_REPO"变量,指向Maven下载库的路径。 一旦工程配置完成,可以运行"Hello"例子。在Eclipse中,选择"Run &gt; Run Configurations",...

    Mule ESB 开发例子

    本部分将详细介绍如何在 Mule Studio 中创建一个新的项目,并构建一个简单的 Mule 流。 ##### 1. 创建新项目 1. **打开 Mule Studio**,点击 `File &gt; New &gt; Mule Project`。 2. **填写项目信息**: - 项目名称:`...

    mule-transport-quartz-3.5.0-M4.zip

    标题 "mule-transport-quartz-3.5.0-M4.zip" 提供的信息表明,这是一个与Mule ESB(企业服务总线)相关的组件,具体是Quartz定时任务运输器的一个版本。Mule ESB是一款流行的开源集成平台,用于构建和运行连接应用...

    mule 3.2 节点详解

    一个标准的 Mule 应用由一个编排 XML 文件和相关的 JAR 包组成。这些文件通常会被部署在 Mule 服务器的 `apps` 目录下。有两种主要的部署方式: 1. **ZIP 文件部署**:可以直接将 Mule 应用打包成 ZIP 文件放置于 `...

    mule-module-jersey-3.8.0.zip

    【标题】"mule-module-jersey-3.8.0.zip" 提供的是MuleSoft的Jersey模块,这是Mule ESB(企业服务总线)的一个组件,用于集成RESTful服务。Jersey是Java JAX-RS(Java API for RESTful Web Services)规范的实现,它...

    MULE esb 节点使用说明中文文档

    - **MULE 应用组成**:一个MULE应用主要由一个编排XML文件和相关的JAR包组成。这些文件通常部署在MULE服务器的`apps`目录下。MULE服务器版本号为3.1.2。应用可以打包成ZIP文件直接放置于`apps`目录,服务器启动时会...

    Mule ESB WebService Consumer 结合 DataMapper的使用

    在Mule ESB中,为了接收来自客户端的HTTP请求,首先需要配置一个HTTP监听器。 - **XML配置示例**: ```xml ``` - **流程中引用**: ```xml ``` 2. **配置WebService Consumer** - **选择...

    mule_training:骡子训练

    【压缩包子文件的文件名称列表】"mule_training-master"很可能是一个包含整个训练材料的Git仓库或者是一个解压后的课程包。"master"分支通常代表项目的主分支,可能包含课程大纲、课件、示例代码、练习和解决方案等...

    mule:存储库,以存储截止日期之前提供的所有即用型解决方案

    在压缩包子文件的文件名称列表中,我们看到“mule-master”这一项,这可能表示的是该存储库的主分支或者源代码库的顶层目录。通常,“master”分支代表了一个项目的主线,包含最新的、经过验证的代码。 Mule ESB的...

    test-mule-activiti:通过 http 和 REST API 连接到 Activei 的 Mule 集成应用程序

    这个文件名表明这是一个Git仓库的主分支,可能包含了整个Mule项目的所有源代码、配置文件和资源。通常,这样的文件结构会包括如下部分: 1. `pom.xml`:这是Maven项目的配置文件,用于管理依赖、构建过程等。 2. `...

    mule_spring_hibernate_demo:Spring和Hibernate的Mule持久性示例

    【标题】"mule_spring_hibernate_demo"是一个基于Mule ESB(企业服务总线)、Spring框架和Hibernate ORM(对象关系映射)的实战项目,展示了如何在Mule应用程序中实现数据持久化。这个例子旨在帮助开发者理解如何将...

    wsl-usecases:Whiteskylabs Mule 用例

    【标题】:“wsl-usecases:...综上,这个压缩包文件包含了一套关于Whiteskylabs Mule集成解决方案的实践案例,对于想要学习和掌握Mule ESB以及在WSL环境下的Java应用开发者来说,这是一个极好的学习和参考材料。

    master(3)_1111_sellfme_unlessryi_

    【压缩包子文件的文件名称列表】"tool-muleesb-master" 这个文件名表明压缩包内包含了名为"tool-muleesb"的项目主分支代码。"tool"可能表示这是一个工具集或者与Mule ESB相关的工具模块。"master"再次确认了这是项目...

    test-mvn clean install -Dmaven.test.skip=true dependency:sources

    压缩文件 "mule-example-2" 可能是一个包含Mule ESB(企业服务总线)示例项目的压缩包,Mule ESB是一个开源的集成平台,用于构建应用程序和服务的连接。这个示例可能演示了如何使用Maven来构建、测试和管理Mule项目...

    mule-end-to-end-test-demo:演示显示骡子端到端测试

    在【压缩包子文件的文件名称列表】"mule-end-to-end-test-demo-master"中,我们可以推断这是一个Git仓库的主分支,通常包含项目的源代码、配置文件、测试脚本和其他相关资源。以下是一些可能包含在其中的关键文件和...

    MuleSoft 的核心概念

    这些事件可以来源于多种渠道,例如接收到一个消息、数据库更新、文件创建等。事件驱动架构(Event Driven Architecture, EDA)是 Mule 的基础,使得 Mule 能够实时响应这些外部事件,从而提高了系统的响应速度和灵活...

Global site tag (gtag.js) - Google Analytics