3

生产环境中的每一次更改都必须进行版本控制并追踪到更改它的特定人员以及更改原因。

有没有可能为此使用一些工具?如果没有,如何使用 SVN 或 GIT 进行 MQ 配置?

更改Websphere MQ配置的最佳实践是什么?

我知道所有配置都在/var/mqm/qmgrs/QMNAME目录中。但这些不是文本文件,因此简单的 SVN 不会告诉我发生了什么变化。

4

1 回答 1

3

WebSphere MQ 不像静态编译的工件,而是一个部分自我管理的活系统。集群、触发器、仪器甚至应用程序之类的东西都可以在运行时更改 MQ 对象的设置。

许多商店选择做的是将对象定义和授权控制列表存储在 MQSC 脚本中,并将这些文件保存在 SVN 或其他更改控制系统中。然后,为了捕获实时更改,他们启用并监视配置事件,这些事件报告更改的详细信息以及启动它们的用户 ID。

特别是,WMQ 集群中的对象在运行时更不稳定,因此脚本应该反映这一事实。对象属性可以根据它们是静态属性还是表示运行时状态来分类。MQSC 脚本可以通过在单独的步骤中定义静态属性和动态属性来利用这一点。通过使用REPLACENOREPLACE选项可以编写脚本,以便在重新运行脚本时保留集群状态。这支持将所有相关对象存储在版本化脚本中的更改控制方法,而不是为系统的每次更改编写新脚本。捕获脚本版本之间的增量可为您提供所有静态属性和监控,事件消息为您提供所有更改的视图,包括脚本中未捕获的动态属性的更新。

两步对象定义如下所示:

* 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)

Mission:Messaging: Migration, failover, and scaling in a WebSphere MQ cluster 中有关于此方法的更多详细 信息。

于 2012-09-20T12:15:37.920 回答