BizTalk开发系列(二) "Hello World" 程序搬运文件
我们在<QuickLearn BizTalk系列之"Hello World">里讲到了如何快速的开发第一个BizTalk 应用程序。现在我们来讲一下如何把这个程序改成用于搬运文件的程序。
我们的设想是:不管文件的类型是什么,将文件从In 文件夹搬到 Out 文件夹。我们来看看应该怎么实现这个设想。
首先我们会发现"Hello World"程序在接收位置的文件名称是" *.XML ".也就是说它只接收XML文件类型的文件。既然它支持通配符的表达式那么我们就可能把这里改为:" * " 也就是说让它支持任何类型的文件。(在Windows系统中允许文件没有扩展名,所以我们就用*让它代表所有的文件)
![]()
我们的测试数据有三种类型的文件,分别是:XML, ZIP, Gif。现在我们将这三种类型的文件拷贝到In文件夹。再看看输出文件夹:
[输入文件]
![]()
[输出文件]
![]()
很显然,我们输入的文件都已经被输出到正确的目标下了。也就是说BizTalk成功的路由了消息。但是这跟我们设想的还有点差距。输出的文件中除了XML 类型的消息可以被正确访问之外。其他文件需要更改为相应的文件后缀才可以被访问。但我们希望的是输入的文件在输出的时候还能够保持原样(文件名,文件大 小,文件类型)。那么我们接下来就要在发送端口做一下改变了。做什么改变呢?我们要让BizTalk输出文件的时候保持原有的文件名和后缀。
![]()
打开发送端口的类型配置对话框。我们会发现在文件名的表达式里有一个特别的关键字“%MessageID%”。这个表达式其实是BizTalk的宏,它表示的是这个消息在BizTalk中的ID号 。也就是说在执行的时候它会被真实的值给替换。
现在我们将这个表达式改为: %SourceFileName% . 这个宏的意思是保留原文件名称。
OK,现在我们配置好了。我们来看一下执行的效果。我们发现文件按照原有文件名被输出出来,而且可以被正常访问。
![]()
注意事项:本文主要是为了讲如何实现这一需求。在生产环境中使用该方法要考虑更多的因素:
文件大小 对于消息的处理需要对服务器做进一步的调整,目前微软官方已经测试通过了 2G的单文件。
数据库的维护 BizTalk的所有消息都是保存在BizTalk数据库里的所以要做好BizTalk 数据库的管理
系统稳定性 如果处理的文件过大,过多会造成系统的不稳定。
系统性能 不同的适配器性能表现不一样。
BizTalk开发系列(二) "Hello World" 程序搬运文件的更多相关文章
- BizTalk开发系列(二十八) MSMQ 适配器
MSMQ(MicroSoft Message Queue,微软消息队列)是在多个不同的应用之间实现相互通信的一种异步传输模式,相互通信的应用可以分布于同一台机器上,也可以分布于相连的网络空间 中的任一 ...
- BizTalk开发系列(二十二) 开发自定义Map Functoid
尽管 BizTalk Server 提供许多Functoid以支持一系列不同的操作,但仍可能会遇到需要其他方法的情况.<BizTalk开发系列 Map扩展开发>介绍了通过使用自定义 XSL ...
- BizTalk开发系列(二十五) SQL Adapter
SQL Server 是.NET开发的首选数据库.当然开发BizTalk应用程序很多也离不了SQL Server.针对SQL Server的数据操作BizTalk 提供了SQL Adapter作为与数 ...
- BizTalk开发系列(二十六) 使用Web Service
Web Service是在构建SOA平台中广泛使用的技术.在BizTalk开发过程中使用SOAP适配器接收和发送 Web Services 请求.业务流程可以发布为 Web Services 并使用外 ...
- BizTalk开发系列(二十九) 宏的使用
在BizTalk中可以使用宏集合动态的让BizTalk发送处理程序使用单独的值来替换宏.常用的使用宏的发送程序有:文件发送适配器和SMTP发送适 配器.在表达式中可以使用同时使用多个宏.例如:在文件发 ...
- BizTalk开发系列(二十四) BizTalk项目框架建议
Asp.NET有MVC框架,大部份的开发都是按照MVC进行的.BizTalk是面向消息的开发,不能完全采用分层的开发模式.而微软只提供了 BizTalk项目开发的基本策略,通过分析相关的Complex ...
- BizTalk开发系列(二十三) BizTalk性能指标参考
BizTalk项目目前比较少,使用的客户也不多.大多只知道BizTalk是一个不错的产品,是Microsoft SOA平台的核心产品,不过还没有将其应用到生产环境.还有一些客户对BizTalk的性能不 ...
- BizTalk开发系列(二十一) Mapping 扩展开发
BizTalk Map编辑器提供了常用的功能块,比如数据库,字符串,数字计算等功能.可在设计Map时直接使用这些功能块进行扩展.除此之外对于进行复杂的Map处 理,Map 编辑器提供了扩展XSLT,扩 ...
- BizTalk开发系列(二十) 类型作用域
Orchestration中的Type概念跟.NET 里的Class一样,可以在Orchestration开过过程中将多个实例绑定到一种类型.Orchestration 视图里包括的类型有Port T ...
随机推荐
- json 转化
1. 把java 对象列表转换为json对象数组,并转为字符串 复制代码代码如下: JSONArray array = JSONArray.fromObject(userlist); S ...
- HTTP协议开发应用-HTTP&XML协议栈开发
Netty HTTP+XML协议栈开发 由于HTTP协议的通用性,很多异构系统间的通信交互采用HTTP协议,通过HTTP协议承载业务数据进行消息交互,例如非常流行的HTTP+XML或者RESTful+ ...
- sql 循环某段时间的每一天
create table #t1( 日期 datetime) declare @stime datetime;declare @etime datetime set @stime ='2015-01- ...
- Kafka 分布式消息队列介绍
Kafka 分布式消息队列 类似产品有JBoss.MQ 一.由Linkedln 开源,使用scala开发,有如下几个特点: (1)高吞吐 (2)分布式 (3)支持多语言客户端 (C++.Java) 二 ...
- Android应用帧率--FPS测试
Android应用帧率FPS是衡量应用流畅度的一个非常重要的指标,可以根据FPS对应用做一些优化,那么在开发过程中如何来测试我们的应用的FPS呢? 准备工具:Eclipse + Android测试终端 ...
- Java类加载
类的生命周期是: 在一个类编译完成之后,下一步就需要开始使用类,如果要使用一个类,肯定离不开JVM.在程序执行中JVM通过装载,链接,初始化这3个步骤完成. 类的装载是通过类加载器完成的,加载器将.c ...
- 每天一个linux命令--locate
linux下,不知道自己安装的程序放在哪里了,可以使用locate命令进行查找. [hongye@dev107 ~]$ locate activemq.xml /home/hongye/hongyeC ...
- soapui中文操作手册(三)----使用SoapUI进行负载测试
使用了SoapUI进行负载测试 负载测试是相当独特的,我们已经创建了一个功能,使您能够快速创建性能测试,并很容易地修改它们.SoapUI性能测试通常是从现有功能测试创建.这使您可以非常快速地创建先进的 ...
- BZOJ4573 : [Zjoi2016]大森林
扫描线,从左到右依次处理每棵树. 用set按时间顺序维护影响了这棵树的所有操作,那么一个点的父亲就是它前面第一个操作1. 用Splay维护树的括号序列,那么两点间的距离就是括号数量减去匹配的括号个数. ...
- Mariadb 数据库写入中文乱码问题
从其他表里面导入数据,出现中文乱码错误.之前操作时并没有碰到类似问题,有些不得其解. 在网上搜了下,最后参考这篇文章,在执行insert前,先执行 set names gbk; 然后成功插入. 链接: ...