Developing XMS .NET applications

IBM Message Service Client 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 Message Service Client for .NET contains a fully managed implementation of XMS, which can be used by any .NET compliant language.


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 a 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.

From Version 9.1.1, IBM MQ supports .NET Core for applications in Windows environments. For more information, see Use IBM MQ classes for XMS .NET Standard.

From Version 9.1.2, IBM MQ supports .NET Core for applications in Linux environments.

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

  • Styles of messaging supported by XMS
    XMS supports the point-to-point and publish/subscribe styles of messaging.
  • The XMS object model
    The XMS API is an object-oriented interface. The XMS object model is based on the JMS 1.1 object model.
  • The XMS message model
    The XMS message model is the same as the IBM MQ classes for JMS message model.
  • Set up the messaging server environment
    The topics in this section describe how to set up the messaging server environment to allow XMS applications to connect to a server.
  • Use the XMS sample applications
    The XMS .NET sample applications provide an overview of the common features of each API. We can use them to verify your installation and messaging server setup and to help you build your own applications.
  • Writing XMS applications
    The topics in this section provide information to help you when writing XMS applications in general.
  • Writing XMS .NET applications
    The topics in this section provide information to help you when writing XMS .NET applications.
  • Work with administered objects
    The topics in this section provide information about administered objects. XMS applications can retrieve object definitions from a central administered objects repository, and use them to create connection factories and destinations.
  • Preventing applications from using a newer XMS version
    By default, when a newer XMS version is installed, the applications using the previous version automatically switch to the newer version without having to recompile.However, we can prevent applications from using the newer version by setting an attribute in the application configuration file.
  • Securing communications for XMS applications
    This section provides information about setting up secure communications to enable XMS applications to connect via Secure Sockets Layer (SSL) to a WebSphere Application Server service integration bus messaging engine or IBM MQ queue manager.
  • XMS messages
    This section describes the structure and content of XMS messages and explains how applications process XMS messages.