What's changed in Version 9.0.0, Fix Pack 6
IBM MQ Version 9.0.0, Fix Pack 6 includes a number of changes to functions and resources.
- Addition of Microsoft Visual Studio 2013 C/C++ runtimes on Windows
- The IBM MQ classes for JMS no longer include IBM MQ Version 9.0.x CD-related features
- Updates for messages produced during backout queue and dead letter queue processing for IBM MQ classes for JMS
- Change to authorities needed for IBM MQ classes for JMS to query the BackoutThreshold and BackoutRequeueQName of a cluster queue
- New environment variable AMQ_CONVEBCDICNEWLINE
- New error response MQRC_INCOMPLETE_TRANSACTION
- Changes to Windows program directory security permissions
Addition of Microsoft Visual Studio 2013 C/C++ runtimes on Windows
From Version 9.0.0, Fix Pack 6, some elements of IBM MQ require the Microsoft Visual Studio 2013 C/C++ (VS2013) runtimes. These runtimes are installed by any fresh installation of IBM MQ Version 9.0.0, Fix Pack 6 or later.
If the VS2013 runtimes are not present on the machine, when you install a fresh client or server, upgrade an earlier release to these levels, or apply a fix pack. In most cases, this process requires no user action but, should you encounter an installation failure when applying the server fix pack, there is an environment variable that you might need to specify so that we can install the runtimes manually. For more information, see Installation of Microsoft Visual Studio 2013 C/C++ runtimes in a server fix pack.
The IBM MQ classes for JMS no longer include IBM MQ Version 9.0.x CD-related features
IBM MQ Version 9.0.5 was the final Continuous Delivery release for Version 9.0. Therefore, from IBM MQ Version 9.0.0, Fix Pack 6 onwards, the Javadoc information for the IBM MQ classes for JMS is updated to reflect the behavior of the IBM MQ classes for JMS only for features available to Long Term Support customers.
Updates for messages produced during backout queue and dead letter queue processing for IBM MQ classes for JMS
From Version 9.0.0, Fix Pack 6, when an attempt by the IBM MQ classes for JMS to re-queue a message either to a specified backout queue, or to the queue manager's dead-letter queue fails, a message is written to the log indicating the message ID of the message, the name of the backout or dead-letter queue the message could not be moved to, and the exception or error that prevented the move.- A failure to move a message to the backout queue results in the following log
message:
JMSWMQ1120 = Message "message ID", could not be moved to backout queue "backout queue name" for reason "exception or error", it will be moved to the dead letter queue or discarded.
- A failure to move a message to the dead-letter queue results in the following log
message:
JMSWMQ0035 = Message "message ID", could not be moved to dead letter queue "dead-letter queue name" because of exception "exception or error", it will be returned to the source queue.
- If there is an exception listener registered on a consumer which tries and fails to re-queue a
message to the dead-letter queue, as well as the log message being written, an exception containing
the exception message text is sent to this exception
listener:
JMSWMQ1079: Unable to write a message to dead letter queue.
Change to authorities needed for IBM MQ classes for JMS to query the BackoutThreshold and BackoutRequeueQName of a cluster queue
From Version 9.0.0, Fix Pack 6, the IBM MQ classes for JMS have been updated so that only inquire access is required to query the BackoutThreshold and BackoutRequeueQName of a cluster queue. Before Version 9.0.0, Fix Pack 6, browse and get access are also required. For more information, see Handling poison messages in IBM MQ classes for JMS.
New environment variable AMQ_CONVEBCDICNEWLINE
Before Version 9.0.0, Fix Pack 6, the ConvEBCDICNewline attribute, which we can use to specify how IBM MQ is to convert an EBCDIC NL character into ASCII format, is available only by using the mqs.ini file. From Version 9.0.0, Fix Pack 6, we can use the AMQ_CONVEBCDICNEWLINE environment variable instead of the ConvEBCDICNewline stanza attribute, for example to provide ConvEBCDICNewline functionality on the client side in situations where the mqs.ini file cannot be used. For more information, see All queue managers and Environment variables.
New error response MQRC_INCOMPLETE_TRANSACTION
From Version 9.0.0, Fix Pack 6, the error that is returned if a transactional .NET application attempts to disconnect from a queue manager when there is an active incomplete transaction has changed. A new error response MQRC_INCOMPLETE_TRANSACTION replaces MQRC_UNEXPECTED_ERROR. For more information, see 2147 (0863) (RC2147): MQRC_INCOMPLETE_TRANSACTION.
Changes to Windows program directory security permissions
The IBM MQ installer on Windows now sets additional permission restrictions as part of the security configuration of the MQ installation directories. The logic that does this is run at installation, upgrade, modification, and fix pack installation time.
You might find that, due to the increased security, you are unable to do certain things exactly the same way we used to do them. For example:- An MQ Administrator (who is not also a member of the Administrators group) can no longer edit or recompile the sample programs in the Tools subdirectory. If you wish to do this, take a copy of the directory (or the portions you are interested in) and change your copies of the build scripts to reflect the new location.
In normal use, however, you should be unaware of the change, except for the little extra time required by the installer to make the changes. During this period the message Initializing security... will be displayed. A similar short pause will occur when installing the fix pack files or applying a patch.
The update of the security writes a log (amqidsec-<Installationname>.txt) to the TEMP directory on the machine. If you see the main install failing in custom action 'iwiLaunchAmqidsec', you should consult this file.
Note: When installing the fix pack files, you must have a security group called “mqm” on the machine. This will be the case already if we have installed IBM MQ on the machine. If, however, we have a machine that only has IBM MQ fix packs on it (or you wish to install the fix pack files first, before you install IBM MQ) then you will need to create this local group.