【IT168 专稿】 “Adapter需要配置的属性太多了,尤其每次在进行Node Level部署的时候,还要手工逐一在管理控制台上填写,这太麻烦了!!”
“以前在WAS和WPS上为Adapter配置的信息都到哪去了?不能保存?难道要抄下来下次再对照着一一重新配置?!”
“要将目前包含Adapter的应用迁移到所有分公司数十台服务器上,并在日后能以最快速度定制Adapter的配置以随时响应新的业务需求,我们的人手和时间远远不够啊……”
你在使用WebSphere Adapter的过程中,是否遇到过上述的种种烦恼?如果是,那么本文提供的解决方案将帮助你摆脱烦恼,使WebSphere Adapter的配置管理工作变得更高效、更智慧。
第一部分 WebSphere Adapters及配置问题的引入
WebSphere Adapters是IBM提供的一种基于JCA(J2EE Connector Architecture)规范,实现应用程序与企业信息系统(EIS)之间业务集成的资源适配器。它支持部署于多种Brokers,如WebSphere Process Server(WPS)、WebSphere Application Server(WAS)、WebSphere Message Broker(WMB)等等。目前最新版本为6.2。
在实际使用中,WebSphere Adapters所包含的常用配置对象包括ResourceAdapter(RA)、ManagedConnectionFactory(MCF)和ActivationSpec(AS)。ResourceAdapter用于配置适配器自身的基本属性,例如标识、Trace设置等等;ManagedConnectionFactory和ActivationSpec则分别用于配置适配器进行出站(Outbound)和入站(Inbound)连接所需的属性,如用户名、密码、EIS系统信息、语言编码等等。
WAS是IBM基于Java EE、XML和Web Service等规范实现的软件应用服务器;而WPS则是构建于WAS基础上、扩展了企业业务总线(ESB)并支持面向服务架构(SOA)的业务流程服务器。WAS和WPS都提供了管理控制台(Administrative Console)进行各种部署应用的配置管理。我们可以在图形化界面下对WebSphere Adapters的各种配置对象进行创建、删除、修改属性等操作。
但是,在实际使用中,这种配置管理方式存在着以下几点不足:
1. 对于数量众多的属性,如SAP Adapter中的激活规范属性就有10~20个,仍需要手工地逐一填写,较为费时费力。
2. 管理控制台不提供属性值的保存、载入功能,这就无法对已有信息进行备份和重用。
3. 如需将当前配置复制迁移到其他服务器环境,或要对大量服务器进行配置,这种配置管理方式的效率会极为低下。
因此,我们应用WAS和WPS提供的wsadmin管理工具与Jacl语言,结合WebSphere Adapters的配置特点,给出了一套实现WebSphere Adapters在WPS和WAS上将配置信息导入导出为.properties文件的Jacl程序包。
第二部分 解决方案
首先我们列出了针对每一种部署类型、每一个配置对象实现导入、导出功能的Jacl程序文件。有经验的读者可跳过后面章节,直接从本文所附的程序包中选择使用。
部署类型 | 配置对象 | 导入 | 导出 |
节点级 | ResourceAdapter属性 | ImportStandaloneRAProperties.jacl | ExportStandaloneRAProperties.jacl |
ManagedConnectionFactory属性 | ImportStandaloneConnectionFactory.jacl | ExportStandaloneConnectionFactory.jacl | |
ActivationSpec属性 | ImportStandaloneActivationSpec.jacl | ExportStandaloneActivationSpec.jacl | |
应用级 | ResourceAdapter属性 | ImportEmbeddedRAProperties.jacl | ExportEmbeddedRAProperties.jacl |
ManagedConnectionFactory属性 | ImportEmbeddedConnectionFactory.jacl | ExportEmbeddedConnectionFactory.jacl | |
ActivationSpec属性 | ImportEmbeddedActivationSpec.jacl | ExportEmbeddedActivationSpec.jacl |