生产环境中的每一项更改都必须进行版本化,并跟踪到更改它的特定人员以及原因。
是否有可能为此使用某种工具?如果没有,如何使用SVN或GIT进行MQ配置?
更改Websphere MQ配置的最佳实践是什么?
我知道所有的配置都位于/var/mqm/qmgrs/QMNAME目录中。但是这些不是文本文件,因此简单的SVN不会告诉我更改了什么。
发布于 2012-09-20 12:15:37
WebSphere MQ不像静态编译的工件,而是一个在某种程度上自我管理的活系统。集群、触发器、检测工具甚至应用程序都可以在运行时更改MQ对象的设置。
许多商店选择的是将对象定义和授权控制列表存储在MQSC脚本中,并将这些文件保存在SVN或其他更改控制系统中。然后,为了捕获实时更改,它们启用并监视配置事件,后者报告更改的详细信息以及发起更改的用户ID。
特别是,WMQ集群中的对象在运行时更加易失性,因此脚本应该反映这一事实。对象属性可以分类为它们是静态属性还是表示运行时状态。MQSC脚本可以通过在不同的步骤中定义静态属性和动态属性来利用这一点。通过使用REPLACE和NOREPLACE选项,可以编写脚本,以便在脚本重新运行时保留集群状态。这支持在版本化脚本中存储所有相关对象的更改控制方法,而不是为系统的每个更改编写新脚本。捕获脚本版本之间的增量将为您提供所有静态属性和监视,而事件消息将为您提供所有更改的视图,包括对脚本中未捕获的动态属性的更新。
2步对象定义如下所示:
* Stateful attributes use NOREPLACE so rerunning the script does not
* reset them to default values at run-time
DEFINE QLOCAL (APP.FUNCTION.SUBFUNCTION.QA) +
GET(DISABLED) +
PUT(DISABLED) +
NOTRIGGER +
NOREPLACE
* Static values use the REPLACE option to make sure any changes
* are recorded next time the script runs
ALTER QLOCAL (APP.FUNCTION.SUBFUNCTION.QA) +
DESCR('APP service queue for QA') +
DEFPSIST(NO) +
BOTHRESH(5) +
BOQNAME('APP.FUNCTION.BACKOUT.QA') +
CLUSTER('DIV_QA') +
CLUSNL(' ') +
DEFBIND(NOTFIXED)在http://www.ibm.com/developerworks/websphere/techjournal/0811_mismes/0811_mismes.html中有关于这种方法的更多细节。
https://stackoverflow.com/questions/12509727
复制相似问题