Developing XMS .NET applications

IBM® MQ Message Service Client (XMS) for .NET (XMS .NET) provides an application programming interface (API) called XMS that has the same set of interfaces as the Java Message Service (JMS) API. IBM MQ Message Service Client (XMS) for .NET contains a fully managed implementation of XMS, which can be used by any .NET compliant language.

Before you begin

[Removed][MQ 9.4.0 Jun 2024][MQ 9.4.0 Jun 2024]The XMS .NET client library built using .NET Standard 2.0, which was deprecated at IBM MQ 9.3.1, has been removed from the product at IBM MQ 9.4.0.

[Deprecated][MQ 9.4.0 Jun 2024][MQ 9.4.0 Jun 2024]From IBM MQ 9.4.0, in IBM MQ classes for XMS .NET, the methods WriteObject(), ReadObject(), CreateObjectMessage(), and the classes ObjectMessage and XmsObjectMessageImpl used for serialization and deserialization of data are deprecated.

[Removed][MQ 9.4.4 Oct 2025]From IBM MQ 9.4.4, in IBM MQ classes for XMS .NET, the methods WriteObject(), ReadObject(), CreateObjectMessage(), and the classes ObjectMessage and XmsObjectMessageImpl used for serialization and deserialization of objects are removed.

About this task

XMS supports:
  • Point-to-point messaging
  • Publish/subscribe messaging
  • Synchronous message delivery
  • Asynchronous message delivery
An XMS application can exchange messages with the following types of application:
  • An XMS application
  • An IBM MQ classes for JMS application
  • A native IBM MQ application
  • A JMS application that is using the IBM MQ default messaging provider
An XMS application can connect to, and use the resources of, any of the following messaging servers:
IBM MQ queue manager
The application can connect in either bindings or client mode.
WebSphere® Application Server service integration bus
The application can use a direct TCP/IP connection, or it can use HTTP over TCP/IP.
IBM Integration Bus
Messages are transported between the application and the broker using WebSphere MQ Real-Time Transport. Messages can be delivered to the application using WebSphere MQ Multicast Transport.

By connecting to an IBM MQ queue manager, an XMS application can use WebSphere MQ Enterprise Transport to communicate with IBM Integration Bus. Alternatively, an XMS application can publish and subscribe by connecting to IBM MQ.

[MQ 9.4.0 Jun 2024]IBM MQ 9.4.0 provides an XMS .NET client library built against .NET 6 as the target framework. For more information, see Installing IBM MQ classes for XMS .NET.

[MQ 9.4.0 Jun 2024][MQ 9.4.0 Jun 2024]From IBM MQ 9.4.0, IBM MQ supports .NET 8 applications using IBM MQ classes for XMS .NET. For more information, see Installing IBM MQ classes for XMS .NET.

XMS .NET managed applications are able to automatically balance connections across clustered queue managers. Both the IBM MQ classes for XMS .NET and the IBM MQ classes for XMS .NET Framework libraries are supported. For more information, see About uniform clusters and Automatic application balancing.

For more information about the differences between IBM MQ classes for XMS .NET Framework and IBM MQ classes for XMS .NET, see Installing IBM MQ classes for XMS .NET.