摘 要: 詳細(xì)地論述了MQ的基本概念,、工作原理,、基本配置及其在實(shí)際中的應(yīng)用。
關(guān)鍵詞: IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ" title="IBM MQ">IBM MQ,;中間件,;消息;隊(duì)列,;通道
1 WebSphere MQ出現(xiàn)的背景
許多企業(yè)隨著自身規(guī)模不斷壯大和信息化建設(shè)的加快,,會出現(xiàn)不同部門有不同的應(yīng)用系統(tǒng),不同子系統(tǒng)完成不同的功能,,但各個系統(tǒng)之間往往互不相連或聯(lián)系很少,,而形成諸多內(nèi)部“信息孤島”的現(xiàn)象。因此,每次互聯(lián)都需要單獨(dú)設(shè)立1個項(xiàng)目,,將雙方的應(yīng)用系統(tǒng)進(jìn)行改造,。浪費(fèi)了許多人力物力,直接影響企業(yè)內(nèi)部整個運(yùn)作,,影響企業(yè)的快速決策,,對企業(yè)長期的發(fā)展形成瓶頸。面對這種情況,,如何使企業(yè)像是一個有機(jī)的生物體,,有能力進(jìn)行自身的新陳代謝,自我更新,,各個子系統(tǒng)分工明確,,互相之間又具備有機(jī)的聯(lián)系。系統(tǒng)的整合是個好辦法,,換句話說,,就是不需要改造各個子系統(tǒng),而是借助某種中間件來加強(qiáng)子系統(tǒng)間的聯(lián)系,。
IBM WebSphere MQ就是這樣一個優(yōu)秀的用于應(yīng)用系統(tǒng)間聯(lián)系的軟件,。它是IBM的商業(yè)通信中間件,由1個消息傳輸系統(tǒng)和1個應(yīng)用程序接口組成,,其資源是消息和隊(duì)列,。它提供一個具有工業(yè)標(biāo)準(zhǔn)、安全,、可靠的消息傳輸系統(tǒng),,實(shí)現(xiàn)控制和管理集成的商業(yè)應(yīng)用,使得組成這個商業(yè)應(yīng)用的多個子系統(tǒng)之間通過傳遞消息完成整個工作流程,。通過消息傳遞,,將不同子系統(tǒng)有效地聯(lián)系起來,每個子系統(tǒng)都可以對外提供自身的功能,,其中消息是應(yīng)用系統(tǒng)之間請求,、應(yīng)答和中間結(jié)果的載體。不斷流動的消息將松耦合關(guān)系的應(yīng)用系統(tǒng)串起來,,使它們之間的關(guān)系變成了功能疊加,。WebSphere MQ可以屏蔽不同的通信協(xié)議之間的差別,可以最大限度地簡化網(wǎng)絡(luò)編程的復(fù)雜性,;同時,,它支持多種平臺,對消息支持交易式的提交和回滾,。
2 WebSphere MQ的基本概念[1]
2.1 消息
消息是WebSphere MQ中最小的概念,,是一段數(shù)據(jù),,是應(yīng)用程序之間傳遞的信息載體。消息分為持久和非持久消息,;可以是1個請求,、1個應(yīng)答、1個報告或1份報文等,。1個消息大致分成兩部分:消息數(shù)據(jù)頭和應(yīng)用數(shù)據(jù)體,。前者是對消息屬性的描述,后者是應(yīng)用間傳送的數(shù)據(jù)消息,,可以是字串,、數(shù)據(jù)結(jié)構(gòu)甚至二進(jìn)制數(shù)據(jù)。
2.2 隊(duì)列
隊(duì)列可以看作是用于存儲消息的容器,,并且存儲是有順序的,。隊(duì)列可分為本地隊(duì)列、遠(yuǎn)程隊(duì)列,、模型隊(duì)列,、別名隊(duì)列等,其中只有本地隊(duì)列是真正意義上的隊(duì)列實(shí)體,,可以存放消息,;遠(yuǎn)程隊(duì)列和別名隊(duì)列只是一種隊(duì)列定義,指向另一個隊(duì)列實(shí)體,,即遠(yuǎn)程隊(duì)列指向的是其他隊(duì)列管理器中的隊(duì)列,,別名隊(duì)列指向的是本地隊(duì)列管理器中的隊(duì)列;模型隊(duì)列描述了模型的屬性,,當(dāng)打開模型隊(duì)列的時候,,隊(duì)列管理器會以這個定義為模型,創(chuàng)建1個本地隊(duì)列,,即動態(tài)隊(duì)列,。
2.3 隊(duì)列管理器
隊(duì)列管理器是MQ系統(tǒng)中最基礎(chǔ)的一個概念,是消息隊(duì)列的管理者,,用來維護(hù)和管理消息隊(duì)列,,負(fù)責(zé)向應(yīng)用程序提供消息服務(wù)的機(jī)構(gòu)。如果把隊(duì)列管理器比作是數(shù)據(jù)庫,,那么隊(duì)列就是其中的1張表,消息就是表中的1條記錄,。
2.4 通道
通道是WebSphere MQ系統(tǒng)中隊(duì)列管理器通信雙方建立起來的通信連接,,是MQ產(chǎn)品的精華??梢栽诓煌耐ǖ郎吓渲貌煌耐ㄐ艆f(xié)議,,使得編程接口與通信協(xié)議無關(guān),,通道是架設(shè)在通信協(xié)議之上的對象。
在WebSphere MQ中,,主要有兩大通道類型:消息通道和MQI通道,。
消息通道是通過消息代理(MCA)把2個隊(duì)列管理器連接起來的單向連接,因此,,要實(shí)現(xiàn)把分布式的隊(duì)列中的消息從源隊(duì)列管理器發(fā)送到目的隊(duì)列管理器,,必需在源隊(duì)列管理器中定義1個發(fā)送通道,在目的隊(duì)列管理器中定義1個接收通道,。當(dāng)要傳輸消息時,,源系統(tǒng)的發(fā)送通道啟動通道,向接收通道發(fā)送啟動請求,,然后從傳輸隊(duì)列發(fā)送消息到接收通道,;接收通道把消息放到目標(biāo)隊(duì)列,如圖1所示,。消息通道分為發(fā)送通道,、接收通道、服務(wù)器通道,、請求器通道,、群集發(fā)送通道、群集接收通道等不同類型,,供用戶在不同情況下使用,。
MQI通道是WebSphere MQ客戶端和服務(wù)器上的隊(duì)列管理器的通信通道,是雙向而且是同步的,,這點(diǎn)不同于消息通道,。
3 WebSphere MQ的工作原理
WebSphere MQ的工作原理如圖2所示。
(1)本地通信:程序A,、B運(yùn)行于同一系統(tǒng)1中,,程序A向隊(duì)列1發(fā)送1條信息后,程序B需要時就可以獲取該信息,。
(2)遠(yuǎn)程通信:若信息傳輸?shù)哪繕?biāo)改為程序C,,程序A向隊(duì)列2發(fā)送1條信息后,系統(tǒng)1中的隊(duì)列管理器1發(fā)現(xiàn)隊(duì)列2實(shí)際上位于系統(tǒng)2中,,它會將信息放到本地的1個特殊隊(duì)列——傳輸隊(duì)列,;接著消息通道代理(MCA)將從傳輸隊(duì)列中讀取該消息,并傳遞到系統(tǒng)2,,然后等待確認(rèn),。只有MQ接到系統(tǒng)2成功收到信息的確認(rèn)之后,它才從傳輸隊(duì)列中真正將該信息刪除,。如果遇到通信線路不通或系統(tǒng)2不在運(yùn)行等故障時,,信息會留在傳輸隊(duì)列中,,直到被成功地傳送到目的地。這是MQ最基本也是最重要的技術(shù),,即確保信息傳輸,,并且是1次且僅1次的傳遞[2]。
4 WebSphere MQ的雙向通信配置應(yīng)用舉例
根據(jù)WebSphere MQ的工作原理,,配置2個隊(duì)列管理器,,實(shí)現(xiàn)兩者雙向通信,如圖3所示,。
腳本如下:
QM1:
DEFIEN QLOCAL(QL_QM1) REPLACE
DEFINE QLOCAL(SENDER1) USAGE(XMITQ) REPLACE
DEFINE QREMOTE(REMOTE1) RNAME(QL_QM2)
RQMNAME(QM2) XMITQ(SENDER1) REPLACE
DEFINE CHANNEL(QM1.QM2) CHLTYPE(SVR)
TRPTYPE(TCP) CONNAME(192.168.0.100(1416))
XMITQ(SENDER1) REPLACE
DEFINE CHANNEL(QM2.QM1) CHLTYPE(RCVR)
TRPTYPE(TCP) REPLACE
QM2:
DEFIEN QLOCAL(QL_QM2) REPLACE
DEFINE QLOCAL(SENDER2) USAGE(XMITQ) REPLACE
DEFINE QREMOTE(REMOTE2) RNAME(QL_QM1)
RQMNAME(QM1) XMITQ(SENDER2) REPLACE
DEFINE CHANNEL(QM2.QM1) CHLTYPE(SVR)
TRPTYPE(TCP) CONNAME (192.168.0.100(1415))
XMITQ(SENDER2) REPLACE
DEFINE CHANNEL(QM1.QM2) CHLTYPE(RCVR)
TRPTYPE(TCP) REPLACE
5 WebSphere MQ的通信方式
WebSphere MQ的通信方式分為點(diǎn)對點(diǎn)和訂閱/發(fā)布的方式[3],。
5.1 點(diǎn)對點(diǎn)方式
點(diǎn)對點(diǎn)方式是最為傳統(tǒng)和常見的通信方式,它是通過定義遠(yuǎn)程隊(duì)列,、傳輸隊(duì)列和通道的方式將隊(duì)列管理器聯(lián)系起來,,可實(shí)現(xiàn)2個單點(diǎn)系統(tǒng)之間的直接互連或者多點(diǎn)系統(tǒng)鏈?zhǔn)降拈g接互聯(lián)。
點(diǎn)對點(diǎn)的另一種擴(kuò)展通信方式:分發(fā)列表,,類似廣播,。該方式可以使用1條MQ指令將單一消息發(fā)送到多個目標(biāo)隊(duì)列,這些多個目標(biāo)隊(duì)列放在分發(fā)列表中,。MQ不僅提供了多點(diǎn)廣播的功能,,而且還擁有智能消息分發(fā)功能,在將1條消息發(fā)送到同一系統(tǒng)上的多個用戶時,,MQ將消息的一個復(fù)制版本和該系統(tǒng)上接收者的名單發(fā)送到目標(biāo)MQ系統(tǒng),。目標(biāo)MQ系統(tǒng)在本地復(fù)制這些消息,并將它們發(fā)送到名單上的隊(duì)列,,從而盡可能減少網(wǎng)絡(luò)的傳輸量,。如圖4所示。
5.2 發(fā)布/訂閱方式
在該通信方式中發(fā)布者和訂閱者要到代理中注冊,,分別告訴代理將要發(fā)布的消息主題和需要訂閱的主題,。當(dāng)發(fā)布者發(fā)布被訂主題的消息時,代理會將其發(fā)送給所有的訂閱者以及向其訂閱該主題的相鄰代理,,由相鄰代理再進(jìn)一步廣播,,直至到達(dá)目的地;若代理找到訂閱者要訂的主題,,則自動地向相鄰的代理訂閱,,從而形成訂閱鏈。發(fā)布者和訂閱者可以隨時向代理注銷,,退出消息發(fā)布網(wǎng)絡(luò),,如圖5所示。
發(fā)布/訂閱方式使消息的分發(fā)突破目的隊(duì)列地理位置的限制,,使得發(fā)送者和接收者之間的耦合關(guān)系變得更為松散,,消息的接收者和發(fā)送者都不必關(guān)心對方的地址,而只是根據(jù)消息的主題甚至內(nèi)容進(jìn)行消息的收發(fā),。
6 前景展望
憑借WebSphere MQ的超強(qiáng)的底層通信能力,,結(jié)合IBM的企業(yè)總線產(chǎn)品WebSphere Message Broker構(gòu)造面向服務(wù)的架構(gòu)可以成功地集成來自多個部門和機(jī)構(gòu)跨不同平臺的產(chǎn)品和應(yīng)用系統(tǒng),以滿足業(yè)務(wù)上靈活多變的需求,。
目前,,在國外,美國大通銀行,、意大利米蘭大眾銀行,、阿根廷BPBA銀行都有成功的應(yīng)用;在國內(nèi),,人民銀行TIPS系統(tǒng),、中國移動、中國長航南京長江油運(yùn)公司等已取得了初步的成效,??梢姡虚g件產(chǎn)品未來的應(yīng)用前景是非常廣闊的,。
本文從當(dāng)前許多企業(yè)內(nèi)部的不同應(yīng)用系統(tǒng)很難互聯(lián)的問題出發(fā)提出IBM的中間件產(chǎn)品WebSphere MQ,,較詳細(xì)闡述了WebSphere MQ的基本概念及對象、工作原理以及通信方式,,通過配置2個隊(duì)列管理器實(shí)現(xiàn)雙向通信例子加深理解,,并對WebSphere MQ的應(yīng)用前景進(jìn)行了展望。
參考文獻(xiàn)
[1] 甘荃,,婁麗軍.IBM Websphere MQ基礎(chǔ)教程[M].北京:電子工業(yè)出版社,,2004.
[2] 婁麗軍.消息中間件及WebSphere MQ入門[M].DeveloperWorks(中國).http://www.ibm.com/developerworks/cn/websphere/.2003.
[3] 陳宇翔.精通WebSphere MQ[M].合肥:安徽科學(xué)技術(shù)出版社,2004.