![[MQ 9.3.0 Jun 2022]](ng930cd.gif)
What's changed in IBM MQ 9.3.0
Before upgrading your queue managers to the latest product version, review these changes to functions and resources since IBM® MQ 9.2.0 and decide whether you must plan to make changes to existing applications, scripts, and procedures before starting to migrate your systems.
- Changes that are new to Long Term Support (LTS) users at IBM MQ 9.3.0 are indicated by a dark blue icon

- Changes that are new to Continuous Delivery (CD) users at IBM MQ 9.3.0 are indicated by a light blue icon

- Client application changes
-
![[AIX, Linux, Windows]](ngalw.gif)
Change to location of JAAS login files![[MQ 9.3.0 Jun 2022]](ng930cd.gif)
![[Windows]](ngwin.gif)
Support for .NET 6![[MQ 9.3.0 Jun 2022]](ng930cd.gif)
![[Windows]](ngwin.gif)
Change to minimum required version of .NET Framework![[MQ 9.3.0 Jun 2022]](ng930cd.gif)
Changes to Bouncy Castle JAR file names
Improved toString() methods for some objects in IBM MQ classes for JMS
Improved toString() methods for some objects in the IBM MQ resource adapter
Improved toString() methods for some objects in IBM MQ classes for Java
Default authentication mode for IBM MQ classes for Java and IBM MQ classes for JMS client applications
Changes to JMS/Java applications affecting applications connecting via TLS![[MQ 9.3.0 Jun 2022]](ng930cd.gif)
Change of behavior for the managed .NET client when using a CCDT with queue manager grouping
- Command and configuration changes
-
![[MQ 9.3.0 Jun 2022]](ng930cd.gif)
Change to error returned if MQCSP user ID and password length is exceeded![[MQ 9.3.0 Jun 2022]](ng930cd.gif)
![[IBM MQ Advanced VUE]](ngadvvue.gif)
![[MQ 9.3.0 Jun 2022]](ng930.gif)
IBM Aspera faspio Gateway version upgraded
Change to automatic configuration from MQSC at startup
Value of the SYSTEM.MQSC.REPLY.QUEUE MAXDEPTH attribute increased
ConnName of application connection included in queue accounting records
IBM MQ Operator 1.7.0 works with CP4I 2021.4
- Installation and migration changes
![[IBM MQ Advanced VUE]](ngadvvue.gif)
![[IBM MQ Advanced for z/OS]](ngadvzos.gif)
Managed File Transfer changes- REST API changes
- Security changes
IBM MQ for z/OS® changes- Documentation platform changes
![[AIX, Linux, Windows]](ngalw.gif)
![[MQ 9.3.0 Jun 2022]](ng930.gif)
Change to location of JAAS login files
From IBM MQ 9.3.0, the location of the JAAS login files has changed to &MQ_INSTALL_DIRECTORY&/ amqp/samples/jaas.
For earlier versions of IBM MQ, the location is &MQ_INSTALL_DIRECTORY&/ amqp/samples/samples
For more information, see Creating and using AMQP channels, Location of telemetry logs, error logs, and configuration files, and JAAS login module not called by the telemetry service.
![[MQ 9.3.0 Jun 2022]](ng930cd.gif)
![[Windows]](ngwin.gif)
![[MQ 9.3.0 Jun 2022]](ng930.gif)
Support for .NET 6
IBM MQ 9.3.0 adds support for .NET 6.
For more information, see Installing IBM MQ classes for .NET Standard and Installing IBM MQ classes for XMS .NET Standard.
![[MQ 9.3.0 Jun 2022]](ng930cd.gif)
![[Windows]](ngwin.gif)
![[MQ 9.3.0 Jun 2022]](ng930.gif)
Change to minimum required version of .NET Framework
From IBM MQ 9.3.0, to run IBM MQ classes for .NET Framework or IBM MQ classes for XMS .NET Framework, you must install Microsoft.NET Framework V4.7.2. This is a change from IBM MQ 9.2 where the minimum required version was V4.6.2.
For more information, see Installing IBM MQ classes for .NET Framework and IBM MQ classes for XMS .NET Framework and IBM MQ classes for XMS .NET Standard features.
![[MQ 9.3.0 Jun 2022]](ng930cd.gif)
![[MQ 9.3.0 Jun 2022]](ng930.gif)
Changes to Bouncy Castle JAR file names
From IBM MQ 9.3.0, the names of the Bouncy Castle JAR files bundled with the product have changed. For example, bcprov-jdk15on.jar has changed to bcprov-jdk15to18.jar. For more information, see IBM MQ classes for JMS relocatable JAR files and IBM MQ classes for Java relocatable JAR files.
![[MQ 9.3.0 Jun 2022]](ng930.gif)
Improved toString() methods for some objects in IBM MQ classes for JMS
The com.ibm.mq.jms.MQConnection and com.ibm.mq.jms.MQSession
objects implement javax.jms.Connection and javax.jms.Session
respectively. They now have toString() methods which return key
information about the underlying connection to IBM MQ.
The resulting string is in JSON format and contains fields as follows:
- ObjectId
- As a className and hexadecimal identifier
- ConnectionId
- In hexadecimal form
- ConnectionMode
- As specified at connection time
- Host
- Only applicable for client connections, but might be shown for bindings
- Port
- Only applicable for client connections, but might be shown for bindings
- QueueManager
- As specified at connection time
- ResolvedQueueManager
- Possibly different to QueueManager if a CCDT was used
The undocumented object produced by ConnectionFactory.createContext()
essentially wraps a Connection and a Session object. Its toString() method produces
a String representing a JSON object containing:
- ObjectId
- As a className and hexadecimal identifier
- Connection
- The
toString()representation of the Connection - Session
- The
toString()representation of the Session
This change means that applications must now include the org.json.jar file shipped with the product on their CLASSPATH.
![[MQ 9.3.0 Jun 2022]](ng930.gif)
Improved toString() methods for some objects in the IBM MQ resource adapter
Connections, Sessions and Contexts generated in the IBM MQ resource adapter wrap their IBM MQ classes for JMS equivalents, and the toString()
methods on them will produce information including the toString() representations of the wrapped
IBM MQ classes for JMS objects.
![[MQ 9.3.0 Jun 2022]](ng930.gif)
Improved toString() methods for some objects in IBM MQ classes for Java
The toString() method for com.ibm.mq.MQQueueManager in IBM MQ classes for Java also produces a string in JSON format and containing
fields as follows:
- ObjectId
- As a className and hexadecimal identifier
- ConnectionId
- In hexadecimal form
- ConnectionMode
- As specified at connection time
- Host
- Only applicable for client connections, but might be shown for bindings
- Port
- Only applicable for client connections, but might be shown for bindings
- QueueManager
- As specified at connection time
- ResolvedQueueManager
- Possibly different to QueueManager if a CCDT was used
This change means that applications must now include the org.json.jar file shipped with the product on their CLASSPATH.
![[MQ 9.3.0 Jun 2022]](ng930.gif)
Default authentication mode for IBM MQ classes for Java and IBM MQ classes for JMS client applications
IBM MQ classes for Java and IBM MQ classes for JMS applications that use client transport can be configured to use either MQCSP or compatibility mode to supply authentication information when connecting to an IBM MQ queue manager.
Before IBM MQ 9.3.0, the default authentication mode is MQCSP in applications that use IBM MQ classes for Java, and compatibility mode in applications that use IBM MQ classes for JMS.
From IBM MQ 9.3.0, the default authentication mode is MQCSP for both applications that use IBM MQ classes for Java, and applications that use IBM MQ classes for JMS. The methods that can be used to select a specific authentication mode, and which methods take precedence, has also been clarified.
For more information about connection authentication in IBM MQ Java clients, and how to select a specific authentication mode, see Connection authentication with the Java client.
These changes might cause the authentication method that is used by some Java client applications to change when the IBM MQ classes for Java or IBM MQ classes for JMS are upgraded to IBM MQ 9.3.0. This might cause applications that previously connected successfully to a queue manager to fail to connect with reason code 2035 (MQRC_NOT_AUTHORIZED). Review the information in Connection authentication with the Java client before migrating the IBM MQ classes for Java or IBM MQ classes for JMS to IBM MQ 9.3.0.
![[MQ 9.3.0 Jun 2022]](ng930.gif)
Changes to JMS/Java applications affecting applications connecting via TLS
A defect was found within JMS and Java applications when generating a server name indication (SNI) header for TLS connections. The defect meant that JMS and Java applications were not converting IBM MQ channel names to a SNI address in accordance with the rules defined in How IBM MQ provides multiple certificates capability.
BadChannelNameException in the stack trace. If you encounter this failure, you can
resolve it by doing either of the following: - Modifying IBM MQ channel names to end with an uppercase letter or digit.
- Configuring JMS/Java applications to use the hostname SNI address instead of the IBM MQ channel name SNI address by using the OutboundSNI setting of the SSL stanza of the client configuration file.
![[MQ 9.3.0 Jun 2022]](ng930cd.gif)
![[MQ 9.3.0 Jun 2022]](ng930.gif)
Change of behavior for the managed .NET client when using a CCDT with queue manager grouping
Before IBM MQ 9.3.0, there is a difference in behavior
between the managed .NET client and the IBM MQ
Java and C clients when using a CCDT with queue
manager grouping. When a CCDT file contains a queue manager group of three queue managers and three
explicit CLNTCONNs to the same three queue managers and the application provides
"*" as the queue manager, C and Java
clients return MQRC_Q_MGR_NAME_ERROR.
However, the managed .NET client uses the first
available CLNTCONN and, if none are available, it then uses the queue manager grouped CLNTCONN.
From IBM MQ 9.3.0, the .NET client behaves in the same way as the C and Java clients and returns the MQRC_Q_MGR_NAME_ERROR. For more information, see Using a client channel definition table with .NET.
![[MQ 9.3.0 Jun 2022]](ng930cd.gif)
![[MQ 9.3.0 Jun 2022]](ng930.gif)
Change to error returned if MQCSP user ID and password length is exceeded
From IBM MQ 9.3.0, if a user ID or password exceeds the length permitted, the error returned to indicate the authentication request failed is MQRC_CSP_ERROR. In earlier versions, the error returned is MQRC_NOT_AUTHORIZED. For more information, see CSPUserIdLength (MQLONG) for MQCSP and CSPPasswordLength (MQLONG) for MQCSP.
![[MQ 9.3.0 Jun 2022]](ng930cd.gif)
![[IBM MQ Advanced VUE]](ngadvvue.gif)
![[MQ 9.3.0 Jun 2022]](ng930.gif)
![[IBM MQ Advanced]](ngadv.gif)
IBM Aspera faspio Gateway version upgraded
![[IBM MQ Advanced VUE]](ngadvvue.gif)
IBM MQ Advanced for z/OS Value Unit Edition 9.3.0 and IBM MQ Advanced for Multiplatforms 9.3.0 upgrade the version of the IBM Aspera® faspio Gateway to 1.3.0.
- If you are migrating from IBM Aspera faspio Gateway 1.2, a license file is now required to run the gateway in server mode. See Release Notes: IBM Aspera faspio Gateway 1.3 for details. This license file is provided with IBM MQ, see Defining an Aspera gateway connection on Linux®, Windows, or macOS.
- If you are migrating from IBM Aspera fasp.io Gateway 1.1 then, in addition to the license file change already described, there is also a changed directory structure and TLS is enabled by default. See Release Notes: IBM Aspera faspio Gateway 1.2 for details. For more information, see Defining an Aspera gateway connection on , Linux, Windows or macOS.
![[MQ 9.3.0 Jun 2022]](ng930.gif)
Change to automatic configuration from MQSC at startup
From IBM MQ 9.3.0, the way that the auto-configuration feature behaves has changed. All MQSC commands are completed before applications can connect to the queue manager. This ensures that a queue manager's configuration is up to date prior to applications connecting but may increase the time it takes applications to connect to a restarted queue manager. For more information, see Automatic configuration from an MQSC script at startup.
![[MQ 9.3.0 Jun 2022]](ng930.gif)
Value of the SYSTEM.MQSC.REPLY.QUEUE MAXDEPTH attribute increased
To ensure that a remotely connected runmqsc command can process the full results for each command, IBM MQ 9.3.0 increases the value of the MAXDEPTH attribute from 3000 to 999999999. IBM MQ 9.3.0 also changes the way in which the WaitTime parameter of the runmqsc command behaves, by setting the value of WaitTime as an expiry time for PCF request messages. For more information, see runmqsc.
![[MQ 9.3.0 Jun 2022]](ng930.gif)
ConnName of application connection included in queue accounting records
From IBM MQ 9.3.0, ConnName is included in queue accounting records as well as in MQI accounting records. Both Channel Name and ConnName are needed in queue accounting records in order to fully identify a client-connected application. For more information, see Queue accounting message data.
![[MQ 9.3.0 Jun 2022]](ng930.gif)
IBM MQ Operator 1.7.0 works with CP4I 2021.4
For IBM MQ 9.3.0 in containers, you can use IBM MQ Operator 1.7.0. This Operator works with IBM Cloud Pak® for Integration 2021.4.
![[MQ 9.3.0 Jun 2022]](ng930cd.gif)
![[MQ 9.3.0 Jun 2022]](ng930.gif)
Change to how IBM MQ Explorer is delivered
From IBM MQ 9.3.0, the IBM MQ Explorer feature is no longer included in the Server product on Windows or Linux x86_64. It is still available as a separate download for those platforms. For more information, see Installing and uninstalling IBM MQ Explorer as a stand-alone application on Linux and Windows. One external change is that the strmqcfg command has been removed.
![[MQ 9.3.0 Jun 2022]](ng930.gif)
Changes to Managed File Transfer log files
- Resource monitor log files
- These event log files record several actions that take place when a monitor polls a resource,
for example, a directory or a queue:
- The default value of the resourceMonitorLogFiles agent property has changed from 10 to 5. This means that, from IBM MQ 9.3.0 onwards, if the default is set, there can be a maximum of five resource monitor event log files, starting from resmonevent0.log to resmonevent4.log. However, you can change this value if required.
- If the agent is migrated from a version prior to IBM MQ 9.3.0, you should manually delete the resmonevent5.log to resmonevent9.log files if any exist.
- However, the size of each log file remains at 20 MB.
- Protocol bridge agent log files
- These event log files record the flow of commands and responses that flow between a protocol
bridge agent and a file server, such as an SFTP server:
- The default value of agentLogFiles agent property has changed from 10 to 5. This means that from IBM MQ 9.3.0 onwards, if the default is set, there can be a maximum of five protocol bridge agent event log files, starting from agentevent0.log to agentevent4.log. However, you can change this value if required.
- If the agent is migrated from a version prior to IBM MQ 9.3.0, you should manually delete the agentevent5.log to agentevent9.log files if any exist.
- However, the size of each log file remains at 20 MB.
![[IBM MQ Advanced VUE]](ngadvvue.gif)
![[IBM MQ Advanced for z/OS]](ngadvzos.gif)
![[z/OS]](ngzos.gif)
![[MQ 9.3.0 Jul 2022]](ng930.gif)
Change to MFT agent ioIdleThreadTimeout property on z/OS
From IBM MQ 9.3.0, this property does not apply to Managed File Transfer agents running on IBM MQ for z/OS.
In addition, FileIOWorker threads for MFT agents running on IBM MQ for z/OS no longer time out.
For more information, see The MFT agent.properties file.
![[MQ 9.3.0 Jun 2022]](ng930cd.gif)
![[MQ 9.3.0 Jun 2022]](ng930.gif)
New STOPPING state for MFT agents
If an agent is stopped in a controlled manner using the fteStopAgent command, then the agent does not accept any new managed transfer requests and waits for any in-progress transfers to complete before it actually shuts itself down. Before IBM MQ 9.3.0, the status of agent was shown as STOPPED as soon as the command was issued. IBM MQ 9.3.0 adds a new STOPPING state for Managed File Transfer agents that are stopped in a controlled manner with the fteStopAgent command. The addition of this new state helps to make it clear that an agent is still in a transient state, and therefore has not yet shut down and cannot yet be restarted. For more information, see MFT agent status values and Stopping an MFT agent.
![[MQ 9.3.0 Jun 2022]](ng930.gif)
Newline limitation removed from the messaging REST API
The messaging REST API no longer removes new-lines from the HTTP request body.
![[MQ 9.3.0 Jun 2022]](ng930.gif)
REST API now uses the WebSphere Liberty Profile
jaxrs-2.1 feature
The REST API previously used the WebSphere® Liberty Profile
jaxrs-1.1 feature to map URLs to Java code, and to parse incoming requests. The REST API
has now migrated to the jaxrs-2.1 feature to maintain currency and remove some
restrictions.
- The
jaxrs-1.1feature accepted URLs containing multiple consecutive '/' characters.jaxrs-2.1does not, so some connections might be rejected, reporting no suitable URL is available. Applications that encounter this problem will need to be amended to correct the URL presented. - The
HTTPresponse code returned in error conditions might change. It will still be an error code but the exact value might be different. This will not affect successful operations.
![[MQ 9.3.0 Jun 2022]](ng930.gif)
New and removed Cipher Suites in MQIPT
- TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256
- TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256
- TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256
- SSL_RSA_FIPS_WITH_3DES_EDE_CBC_SHA
- SSL_RSA_FIPS_WITH_DES_CBC_SHA
For more information about TLS support in MQIPT, see SSL/TLS support.
![[MQ 9.3.0 Jun 2022]](ng930cd.gif)
![[MQ 9.3.0 Jun 2022]](ng930.gif)
![[UNIX, Linux, Windows, IBM i]](ngmulti.gif)
Changes to supplying a key repository location
From IBM MQ 9.3.0, the queue manager and client applications have been updated to allow you to use a full file path, including extension, when providing the location of a key repository. Prior to this IBM MQ expected you to supply a file path without the extension.
To facilitate migration, IBM MQ continues to support a file path without an extension. In this case IBM MQ verifies that the full file path has not been provided and, on detecting that no file exists, automatically appends .kdb to the supplied value.
For more information, see Changing the key repository location for a queue manager on IBM i.
![[MQ 9.3.0 Jun 2022]](ng930cd.gif)
![[MQ 9.3.0 Jun 2022]](ng930.gif)
![[IBM i]](ngibmi.gif)
Changes to the SSLKEYRPWD parameter of the CHGMQM command
From IBM MQ 9.3.0, the CHGMQM command has been updated so that when you provide key repository passwords through the SSLKEYRPWD parameter, the password is encrypted using the IBM MQ Password Protection system.
This uses the initial key set on the queue manager. You should run the CHGMQM command after upgrading to IBM MQ 9.3.0, or higher, and setting a unique initial key in the queue manager to ensure your key repository passwords are protected with the latest algorithm.
See CHGMQM for more information.
![[MQ 9.3.0 Jun 2022]](ng930.gif)
Changes to how FIPS mode is enabled in MQIPT
From IBM MQ 9.3.0, the IBMJCEPlusFIPS
cryptographic provider should be used to provide FIPS-certified cryptography in MQIPT. To use the IBMJCEPlusFIPS cryptographic
provider, specify the com.ibm.jsse2.usefipsProviderName=IBMJCEPlusFIPS
Java system property. For more information about
enabling FIPS mode in MQIPT, see Enabling FIPS mode in MQIPT.
![[z/OS]](ngzos.gif)
![[MQ 9.3.0 Jul 2022]](ng930cd.gif)
![[MQ 9.3.0 Jul 2022]](ng930.gif)
Changes to queue sharing group (QSG) support
From IBM MQ for z/OS 9.3, a queue manager is supported only in queue sharing groups containing queue managers at version 9.1 (CD or LTS) or above. This means that if you try to start an IBM MQ for z/OS 9.3 queue manager in a QSG containing queue managers below this level, the queue manager will terminate with completion code X'6C6' and reason code X'00F50029'.
Supporting the changes in QSG support, the VERIFY QSG function of the CSQ5PQSG utility now issues the CSQU599I message if a QSG contains queue managers of a version unsupported by the version of IBM MQ for z/OS that the utility is run from.
Replacement tool for hosting an offline version of IBM Documentation
Previously, documentation hosted in IBM Knowledge Center could also be downloaded and installed offline in a customer-installable version of Knowledge Center called KC-CI. This tool was designed for use in a Dark Shop environment, or in any situation where you cannot access documentation on the Internet. For documentation hosted in IBM Documentation, an equivalent offline tool is now available. The new tool is called "IBM Documentation Offline". For more information, see IBM MQ 9.3 in the IBM Documentation Offline app.