10/24/2006

BIE解剖-开发笔记

免责声明:本文档是在开发中随便记下作备忘之用,不能保证一定正确。

0/收集一些BizTalk资料,作为对照参考

1/BeyondCompare过滤器设置:-*.class;-*.biear;-*.jar;-build\;-eclipsebuild\;-dist\;-lib\

2/ant dbman可用配置记录
Type: HSQL Database Engine In-Memory
Driver: org.hsqldb.jdbcDriver
URL: jdbs:hsqldb:J:\opensource\workspace\BIE6.0.4\dist\services\hypersonic
User: sa
Password: BIE

3/dist下build.xml可用任务使用实例
ant run
ant debug
ant

ant InstallDB 说明:建表并加入初始数据,就是执行util目录下的create.sql
ant cleanDB 说明:删表,就是执行util目录下的create.sql
ant makeupgrade?
ant upgrade?
ant load (尚未调好,参考qa,与qa竞争有重复)

4/BIE_HOME下build.xml可用任务
ant distDBInit 说明:建库HSQLDB(BIE_DB)
ant removeDB 说明:删除数据库
ant distMap 执行出错,但ant dist后dist目录下ant runMaptool没问题
原因:任务各自定义,引用、路径不同
ant distQA=>dist/qa

ant dist=》dist:ant installdb=》dist:ant run

5、 如何创建新版本并产生安装、升级文件?
假设新版本为: 6.0.6

1)修改com.webdeninteractive.xbotts.client.runtime.ClientRuntime类源文件中与版本相关的属性:
major,minor,incremental
2)执行ant dist
3)到dist下执行makeupgrade任务以产生升级配置文件util/Upgrade6_0_6.xml

说明:用到外部程序为unix下的diff(有windows版本,未测试),程序捕捉其输出并解释生成xml文件,是升级需要新增、删除和修改的文件清单。
程序会获取ClientRuntime中的版本号,写入version.properties的版本序列;
需要直接修改dist目录下build.xml文件以指定参数(rundiff -from-to参数);
diff的替代软件-windiff、cvs diff;
当然也可以手工写util/Upgrade6_0_6.xml;

命令实例:
$ ant -Dversion=6_0_6 makeUpgrade
F:/opensource/workspace/BIE6.0.5/dist
D:/eclipse-SDK/WorkspaceBIE/BIE6.0.5/dist
D:/eclipse-SDK/WorkspaceBIE/BIE6.0.5/util/Upgrade6_0_6.xml

3)如果需要,创建升级任务类并将<task>classname</task>输入util/Upgrade6_0_6.xml

6、如何升级?
说明:升级一方和被升级一方都只能是ant dist生成的dist目录。

ant -Dxbotts.home=D:\Application\BIE6.0.4\dist upgrade

7、BIE参数备忘
管理员:admin/123qwe
Dashboard URL: http://localhost:5803/,https://localhost:5803/(SSL HTTP端口)
FTP端口:5802
HSQLDB端口:5891 (参见BIE_DB.properties)
WebService列表: http://localhost:5803/services
JBoss服务器Web管理界面: http://localhost:5803/web-console

8、关于SBIE
即商业版所说的远程客户端(Remote Client)。大部分功能类可以由中心自动下载,由BIE中心配置客户端,SBIE自动下载配置信息。
upgradeDir用于存放从BIE server下载的jar包。
对SBIE,好像/lib/sbie/目录下的jar包也有效(?);
RRC configuration配置的其实是SBIE的conf文件;
RRC package上载的其实是供RRC下载试用的jar包,下载后放在?目录下;

每个用户可以有一个RRC配置,可能是说系统用当为每个client分配一个用户用于配置管理

客户端需设定用户登陆+配置client name,双重指定

9、MapBuilder使用Tips
mapBuilder中数据库的xml schema映射要求从根开始;
可否集成商用的类mapbuilder工具?
理论上可以,因为BIE的文档转换分三种,其中一种是mapBuilder专用的,另一种是styleSheet即xslt的,这是通用的。
mapForce是最值得考虑的一种,测试时发现BIE生成的xsd文件在mapForce中出错,修改后语法通过,可以顺利生成xslt文件,但还没有在BIE下测试。
导出map archive文件时会根据map文件定义自己寻找schema文件
导出选择文件名时好像要该文件已存在才行,就算没有文件也会提示是否覆盖
第一步指定的resource directory是要导入jar的目录名,
jar文件生成的工作目录可能固定为work

例子jones2smith的map文件有问题,两个schema的设置有问题

10、MySQL JDBC 连接不上的问题

原因:2.0.17版的驱动程序和新版的MySQL服务器不匹配。
解决:更换新的驱动程序

11、 BIE发展方向
BIE-gpl开源项目:好像准备支持opanAdaptor

12、qa-负载与性能测试
ant load
用BIEWSClient发消息给BIE,放入JMS队列,但队列没有,因此出错;
配置文件-load.properties
ant performance

13、关于BPML的隐含规则
对BIE,放入文件监听目录的文件通过使用与BPML流程相同的文件名来关联流程。
原来FTP等都是通过文件名来激活对应流程的。

14、Listener设置
可克隆多个监听器,没监听器有不同设置,直接列在原监听器实例一起;

15、我的6.0.5开发环境
下载BIE-gpl 6.0.5源码。
换mysql jdbc为3.1.7
删除所有cvs目录
删除Java jre
搜索并删除10m以上文件(java sdk、jre)
lib目录多了jython.jar和jythonlib.jar(后者带py文件)
修改build.xml,去掉引用其他xml时的file:
修改 <copy todir="${dist}/drivers" file="lib/mysql-connector-java-3.1.7-bin.jar"/>

针对如下问题作修改
Severity Description Resource In Folder Location Creation Time Id
2 The declared package does not match the expected package CombineClientService.java BIE6.0.5/plugins/actions/aggregation/src line 1 2006年6月25日 12:20:09 9745
2 The declared package does not match the expected package GatherClientService.java BIE6.0.5/plugins/actions/aggregation/src line 1 2006年6月25日 12:20:09 9741
2 The declared package does not match the expected package GroovyClientService.java BIE6.0.5/plugins/actions/groovyAction-JSR03/src line 1 2006年6月25日 12:20:15 9842
2 The declared package does not match the expected package JythonClientService.java BIE6.0.5/plugins/actions/JythonAction1_3/src line 1 2006年6月25日 12:20:17 9921

16、Register Driver
Register a new JDBC Driver by uploading the Driver's jar or zip file. Specify the fully qualified
Class name for the Driver's class.

执行任务:
1、上传指定的驱动程序文件(jar或zip)
上传目录:${xbotts.home}/deploy/jboss?放在这里好像不行吧
2、在系统资源表中插入一条记录
HSQLDB(DriverName,资源类型,类名,描述信息)

对于Mysql驱动程序的问题,因为系统没有记录文件名,因此不用重新注册,替换掉原来的驱动文件就可以了。
保险的做法是:搜索原来的驱动文件mysql-connector-...,全部替换为新的驱动文件即可。
2)添加数据库连接、测试驱动程序
register driver数据存放在哪里?
新增的不能删除?就得也不能删除,如果要更换JDBC文件怎么办

17/关于BPML文件的发布
在packages目录下建【同名】子目录,放入文件即自动加载,哪怕服务器已经运行;
只有已deploy的才写入deploy.properties文件中;

18/xslt文档转换用的时jboss/default/lib下的xalan.jar;
junit测试中mapforce生成的xslt 1.0版通过,xslt2.0版提示有不支持的方法,估计时xalan版本问题。

19/SBIE 的配置
初始时最基本的配置-sbie可以启动、可以连接服务器、可以启动ConfigurationService。此后就可以在
服务端修改配置并发放到sbie-如增加服务、增加需要的包。
SBIE重写配置文件之前会生成备份。

服务:作为线程独立运行,均有设定动作触发的时间间隔。
UpdateService
功能:下载依赖包
参数:ConfigurationService
功能:更新配置文件
参数:FileService
功能:监视watchDir,有文件则通过soap webservice的simpleDocumentTransfer送往BIE server,完成后将文件移到finishedDir目录。
参数:watchDir,finishedDir

体系架构:四大工厂,通过配置文件指定动态加载类
主要扩展点-service、ProtocolHandler
客户端怎么换用户?
自动更新功能的触发机制-》配置文件中用到了无法解析的类,系统就到服务器的packages上搜索

20/BIE应用
源码生成-velocity
通讯录转换
多一些生成各种输入内容的插件,增加实用性,如抓取目录xml=》转换时各取所需生成想要的格式【内容为王】
抓取内容,生成网页,发布到网站上

增加一个总揽页面,监听、插件可即时试验、预览
有些功能归mapBuilder更好或者同有,如schema生成
mapbuilder可用来测试单一插件


附、其他

ant 任务区分大小写
bie-gpl 的 eXist bat文件有问题?
Database action的 delete类只是封装一个runService接口,实际工作由com.webdeninteractive. bie.commons.relationalxml包完成

感觉6.0.5比6.04慢了很多
初步判断6.0.4升级后运行有错,是否升级不成功?
服务器启用rrc后马上出现相关菜单,可能不需要重启BIE
BIE dashboard上有用jws启动mapbuilder的连接,但无法使用,说缺jnlp文件。

Technorati :

没有评论:

为什么说普京已经输掉了这场战争

  为什么说普京已经输掉了这场战争 作者: Yuval Noah Harari (历史学家畅销书【智人:人类简史】的作者) 译自: 英国卫报, 2022年2月28日 翻译: Andywho in Canada 原文链接: Why Vladimir Putin has alread...