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