任务:消息: 使用一个 Windows 服务来启动 WebSphere MQ File Transfer Edition 客户端代理
2010-10-09 08:13:10 来源:WEB开发网配置队列管理器
单个触发监控器能够服务同一主机上的任意数量代理,只要它们使用相同的 Agent QMgr。在队列管理器上,这转化为要求其上驻留一个代理的每个主机有一个启动队列。出于这个原因,我选择一个发起队列命名惯例 SYSTEM.FTE.INITQ.<hostname>,其中 hostname 为大写且小于或等于 22 个字符。您可以对发起队列使用任意队列名称,但出于安全考虑,我强烈反对使用 SYSTEM.DEFAULT.INITIATION.QUEUE。
有一点值得一提,选择队列名称 SYSTEM.FTE.INITQ.* 可能会与产品未来使用的队列名称冲突。一般原则是,选择对象名称 SYSTEM.* 意味着您必须在更新到新产品版本时随时监控冲突。如果您想完全避免冲突问题,请为您的发起队列选择一个不以 SYSTEM 开始的名称。确保更新触发监控器的 setup.ini 文件和代理的命令队列中的队列名称引用。
由于每个代理都有一个进程对象,我选择的命名惯例将代理名称嵌入到进程名称中。进程定义被命名为 SYSTEM.FTE.<agent name>,其中代理名称匹配 SYSTEM.FTE.COMMAND.<agent name> 队列中使用的代理名称大小写和拼写。上述关于选择包含 SYSTEM.* 的名称的建议在这里也适用。这也许不是一个大问题,但如果您不放心,请选择一个不同的名称。
在队列管理器上启动触发机制需要定义两个对象并改变现有的命令队列,如清单 2 所示。
清单 2DEFINE QLOCAL(SYSTEM.FTE.INITQ.<hostname>) +
DESCR('FTE initiation queue for <hostname>') +
REPLACE
DEFINE PROCESS(SYSTEM.FTE.<agent name>) +
APPLTYPE(WINDOWSNT) +
APPLICID('C:\IBM\WMQFTE\bin\fteTriggerAgent.pl -v') +
ENVRDATA('C:\IBM\WMQFTE\bin\fteStartAgent.cmd') +
USERDATA('<agent name>') +
DESCR('Trigger process for <agent name>') +
REPLACE
ALTER QLOCAL(SYSTEM.FTE.COMMAND.<agent name>) +
INITQ(SYSTEM.FTE.INITQ.<hostname>) +
PRO(SYSTEM.FTE.<agent name>) +
TRIGGER +
TRIGTYPE(FIRST)
更多精彩
赞助商链接