上下文
我们在Java / Spring应用程序和Mainframe应用程序之间有非常特定的基于IBM MQ系列的通信。我将所有这些信息(例如如何在IMS Bridge中释放MQMD)抽象为一个与JMS / MQ有关的问题。
在使用JMS规范1.x和IBM MQ 7.5x时,我们可以完美地建立关联
JMSCorrelationID
的字符串形式类似于ID:F5F5F0F1F5F1404040404040404040404040404040404040
,在ID:
部分之后是IBM 500(ebcdic)编码的HEX字符串。
升级
在Java的系统方面,我们进行了升级:
在大型机方面,我们没有进行任何更改。现在,由于此升级,只要String的表示形式为大写,就不会收到消息。
问题摘要
我们遇到的问题与IT19225: MQ-JMS QUEUEBROWSER USING A SELECTOR WITH AN UPPERCASE JMSCORRELATIONID DOES NOT FIND MESSAGES中描述的完全相同,唯一的问题是我们在IBM MQ 9.0.2.0上解决了上述问题。
**示例**
因此,当尝试接收看起来像JMSCorrelationID
的{{1}}时(实际上不管是小写还是大写表示形式),都会发生以下情况:
当字符串表示形式为小写时(收到ID:F5F5F0F1F5F1404040404040404040404040404040404040
时,不会收到带有MQ CorrelId
作为大写字符串表示形式的消息。
我尝试过的事情:
ID:f5f5f0f1f5f1404040404040404040404040404040404040"
更改为小写JMSCorrelationID
更改为大写 JMSCorrelationID
会收到,大写的MQ CorrelId
不会收到。
任何帮助将不胜感激,因为我很震惊,我根本找不到google这样的问题(已修复的错误除外)
答案 0 :(得分:0)
简短答案:如果APAR描述适合您所需要的问题,则需要升级到MQ v9.0.3 CD,有关更多详细信息,请参见下面的我的较长更新。
关于IBM MQ版本号的一些说明:
在MQ v9.0和更高版本中,IBM将发行版分为两个流。长期支持(LTS)和连续交付(CD)。 LTS版本将具有第四个数字更改的版本,例如9.0.0.2,而CD版本将具有第三个数字更改的版本,例如9.0.2。
IBM将在MQ的主要版本(例如9.0)的整个生命周期内为LTS版本提供缺陷支持,对于v9.0 CD,IBM最初stated个缺陷修复和安全更新仅适用于这两个版本,最新的CD更新。最终的9.0 CD版本是9.0.5,因此它们只支持9.0.4和9.0.5。但是随着9.1 CD的发布,他们更新了此支持声明(retroactively for 9.0,指出“对CD发行版的缺陷支持自发行之日起12个月内可用,或者仍是最新的两张CD之一。版本9.0.2已于2017年3月17日发布,并且不是最近的CD版本不再符合IBM缺陷支持的两个条件之一。9.0.3已于2017年5月30日发布。同样,因此在这一点上,在原始支持声明或新支持声明下,直到v9.0支持结束为止,IBM将支持的CD发行版分别为9.0.4和9.0.5。发行了v9.0 CD。
在您的问题中,您说您使用的是v9.0.2(CD),而不是9.0.0.2(LTS)。您提到的APAR指出它已在9.0.0.2 LTS中修复。尽管APAR页面没有提到它已被固定在CD版本中,但自9.0.0.2是2017年10月5日发行以来,这很奇怪,我注意到9.0.4 CD已于2017年11月6日发行,而9.0.5 CD已于3月16日发行2018年。我过去曾指出,IBM在每个已发布的APAR上列出的计划发行日期以及与每个发行版的修订列表进行比较时通常都不准确。我查看了9.0 CD fixlist页面,可以看到它指出APAR IT19225已在9.0.3 CD中修复。
由于这是一个客户端问题,因此没有理由无法更新到最新的9.0.5 jar文件来获得此修复程序,尽管您应该通知MQ支持团队,他们正在使用不支持的版本。队列管理器。您可以从MQ v9.0客户端下载页面MQC9: IBM MQ V9 Clients下载Java-ALL自解压jar文件。请注意,由于它们不再受支持,它们甚至没有列出要下载的9.0.3及更早版本。
我的个人推荐:
如果您要使用v9.0,则最好至少在客户端上使用9.0 LTS版本(当前版本为9.0.0.4,也可以从上面的客户端下载链接获得)。
我的原因: