MB备忘----2

基于上午的悲壮路径走到这儿差不多可以进行一些基本开发了(算是环境准备好了吧) 既然要进行开发,那么,从哪儿入手呢。

一,学会使用工具,debug工具太重要了,回忆性学习一下如何使用。

二,二类主要项目,消息集项目,消息流项目。

三,消息流的二个主要操作ESQL,java

四,数据源配置(如果消息流操作了数据库的东西)

五,监控,调优。

 

每个部分深入细节内容比较多,我想先理一下每个部分的主要功能点。先要知道如何做,然后才可能知道做得如何。正常人的思维,某人还是有一点的。

 

一,关于debug 要进行debug,切换到debug视图。

         但是在此之前,在[代理管理]视图,请右点[执行组]选择[属性],设置JVM端口



 

设置完成,重启动代理及配置管理器

 

 


然后切换到[调试视图]

在这个视图下面,你将看到一个[调试UI守护程序正在侦听端口8001]

这个端口可以改,是输出到用户界面相关的一个端口,绝对不要与执行组设置的调试端口相冲突。

 



 

这样就完成了设置。




完成后,设置页面下角有一个[调试]按钮,点击进入调试。


这样,调试功能就能用了。

 

 

==================================================

==================================================

二,消息集,消息流项目

        建立一个消息集项目,然后会产生一个 messageSet.mset

       选定此项目打开,然后可以设置  

               消息域message domain   =可选

               缺省的物理格式 =XML,CWF,TDS三选一(如果前面是MRM,XML...)

              并且可以设置每个物理格式的相关的项目。

 

         然后创建消息定义文件,消息定义文件可以创建多个,但所有的都是在messageSet.mset属性下

                     分别设置在选定[XXX.mxsd][消息][消息.xxx][类型][类型.xxx]时对应的属性。特别是在选定某一个元素或者类型的时候,可以设置CWF、TDS等操作时候的定长长度或者分隔元素。

 

 

 

 

下面做几个常做的事情:

将下面的信息转换成XML

姓名|27|地址|10086|1391043300

汪汪|27|地址|10086|1391043300

汪汪|27|地址|10086|1391043300

汪汪|27|地址|10086|1391043300

汪汪|27|地址|10086|1391043300

汪汪|27|地址|10086|1391043300

汪汪|27|地址|10086|1391043300

汪汪|27|地址|10086|1391043300

正正|27|地址|10086|1391043300

正正|27|地址|10086|1391043300

正正|27|地址|10086|1391043300

正正|27|地址|10086|1391043300

正正|27|地址|10086|1391043300

正正|27|地址|10086|1391043300

正正|27|地址|10086|1391043300


转换成类似下面的

<MSGEmployeeList xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">


 <Employee>

  <name>汪汪</name>

  <age>27</age>

  <address>地址</address>

  <code>10086</code>

  <mobile>1391043300</mobile>

 </Employee>

....................................................

</MSGEmployeeList>

 

从XML格式知道,原来数据中<MSGEmployeeList></MSGEmployeeList>元素下面的每一项区分是以<CR><LF>来做的,所以,定义这么一个复杂类型,选定这个类型,然后设置它的属性[数据元素界定方式=定界所有元素][定界符=<CR><LF>]

同样的做法,对每一行记录,要将它转换成XML元素,定义为 <Employee> </Employee>这一个类型处理这一行元素时,用的方式与其父亲结点一样。[数据元素界定方式=定界所有元素][定界符=|]

这样,所有的消息就可以被解析了。当然,如果某个元素可有可无,也可以在元素对应的项目中设置,如果那一项目没有也可以处理了。


当然,做到这儿还没有完成呢。这儿还只处理了数据到XML的转换关系,显然,只定义关系是不会自动转换的。还要做什么呢?定义SCHEMA文件时有XML,TDS,CWF这三种,现在是想输出XML,这个物理格式有一个名称通常情况下叫XML1。这样,我们知道了输入与输出的相关东西。如何在MB中实现呢?这儿就涉及消息流设计的时候的设置。输入点当然是在输入的MQ对应点设置,比如,现在输入的消息域是什么---MRM,消息集是什么,消息类型是什么,输入消息的格式是什么,比如这儿是TDS1.这样,输入消息后就知道套用哪个消息集的哪个消息模板了。当然,可能这个模板可以接受多种数据的输入,那么,指定数据的输入类型以便模板装入相关数据。现在,我们知道输入项目相关设置完成,但是,这样设置后我也不知道它最终要表现的形式是什么样的啊。也许你是要将TDS的转换成CWF的(不等长的时候用空格来代替),也许是XML的,更有可能还是TDS的,只是分隔符号不一样了。所以,我们增加了一个compute节点,在compute节点中我们指定输出消息的物理格式如:SET OutputRoot = InputRoot;

     SET OutputRoot.Properties.MessageFormat = 'XML1';

如果不做这样的处理,直接从一个Queue到另一个Queue,消息不是会表达成您要的格式的。


从这一个示例中可以学习到三种物理格式的消息是可以互相转换的。当然我的意思是要会他们的互相转换。

 

 

再做一件事情,那就是把


abcdeabcdeabcdeaXX20abcdeabcdeabcdeaXX22abcdeabcdeabcdeaXX20abcdeabcdeabcdeaXX22

这样的字符串以60长度为一段,表示成XML

假设为<ROOT><a>....</a></ROOT>

在SCHEMA中,设定复杂类型ROOT,然后里面有一个简单类型a,a的物理属性CWF1里面有一个属性为[物理类型=定长字符串][长度=60]。还有一些对齐格式,如果不够用什么填充等等项目。一一设置就行了。


然后做一个消息流,指定输入是什么,然后在ESQL中指定输出形式是什么。。。。。。

这样,放几条消息试一下。没问题,转换成相应的XML了。

PASS

打完收工。

 

 

比较长了,后面还有三部后分别的文章写。

 

 

 

 

实验做到最后,还发现一个特别不爽的问题,我原来做了一个消息流及消息集项目,那是在6.0.2下面做的。

我将项目导入到6.1的环境下面,然后分别在消息流及消息集项目 中增加一个流定义和消息定义文件。

然后打bar文件,放到执行组中居然也不能显示出相应的部署结果(空,与没部署一个反应)。

找半天没找出原因。后来新建立了消息流项目和消息集项目,再打bar ,成功运行(做的消息流和集完全一样的。)太不爽了。。。。。。

 

 

上面都是个人的做法,现在跟着红皮书走一下流程:

所有开发都要切到开发视图,所有部署都要切到配置视图,调试要切到调试视图。。。。。就是说,所有操作的视图要对。

 

创建和删除一个消息集工程,删除时可以选择是否删除相关文件及目录。如果只是从视图中删除,以后还可以导入,如果是从目录中删除,以后就找不回来。这就像把不要的东西从桌面上拿走,放到储藏室或者丢到垃圾桶的区别。。

做了这些,然后学会定义删除消息定义文件,消息对象,类型等等。很常用的操作。红皮书花了159页之多。。。。非常的仔细,没事的时候可以慢慢看一下,当就读英语了。

 

下面的谈论的细节是非常重要的,就是做这些事情的时候,知道在做什么吗?非常非常重要。完成这一部分是个非常大的工作量。同时,有时候还要结合ESQL编程才能正真明白在做的事情是什么。

工作量大:要深入体会---绝知此事要恭行:回头看似乎很简单,做技术的偶尔总会不理解一些东西,慢慢就会了,就一知半解了,就不知道自己是谁了。

 

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值