任务:消息: 使用一个 Windows 服务来启动 WebSphere MQ File Transfer Edition 客户端代理
2010-10-09 08:13:10 来源:WEB开发网在用户的桌面上用 IBM® WebSphere® MQ File Transfer Edition 客户端代理替代 FTP 客户端是向这些文件传输提供企业可见性和可管理性的一个好方法。用户可以启动 WebSphere MQ File Transfer Edition 代理,或将其放置到启动文件夹中让 Windows® 自动启动它。但如果这个客户端代理需要在 Windows 服务器而不是在桌面上运行,应该怎么办呢?毕竟服务器上没有用户会话和启动文件夹。可以从 fteStartAgent 创建一个服务,但这种服务启动一个子进程,因此 Windows 很难监控该进程以重新启动客户端代理。也可以直接调用 fteStartAgent 调用的类,但这需要使用一些没有建档的(undocumented)接口,这些接口可能会在未来的版本中更改。如果可能,最好避免使用未建档的功能。这期 “任务:消息” 将演示如何使用 fteStartAgent 和 WebSphere MQ 触发机制来解决这个问题。
简介
在我最早的 WebSphere MQ File Transfer Edition 部署中,我的客户端想在一些无人值守的 Windows 服务器上运行 WebSphere MQ File Transfer Edition 客户端代理。尽管 WebSphere MQ File Transfer Edition 现在不提供一个 Windows 服务了,但要使代理作为后台任务运行并不困难。真正的麻烦是如何使它们具有弹性。fteStartAgent 命令生成一个子进程然后终止。这意味着,如果配置为一个 Windows 服务,它要么不能重新启动,要么在每个间隔都尝试重新启动。我们可以绕过 fteStartAgent 代理调用底层类来直接启动这个代理,但必须小心翼翼,以免使用已建档的(documented)命令。
我们决定使用的解决方案是本文的主题。它包含两部分:作为 SupportPac MA7K 提供的 Windows Service Trigger Monitor 程序,和少量以 Perl 编写的 “粘合剂” 代码。它不仅按照理想的方式启动 WebSphere MQ File Transfer Edition 代理,实际上它还使这个代理非常难以终止。