## Name

MSMQ — works with Microsoft Message Queuing

## Overview

The MSMQ component is a transport for working with Microsoft Message Queuing This component natively sends and receives directly allocated `ByteBuffer` instances. This allows you to access the JNI layer without expensive memory copying. In fact, if a `ByteBuffer` is created by the `allocateDirect` method, it can be passed to the JNI layer and the native code is able to access the memory directly. It's up to the developer to marshal/unmarshal any other kinds of payload to/from directly allocated `ByteBuffer` instances. Look at the tests to see some usage examples.

## URI format

The URI format for an MSMQ endpoint is:

    msmq:msmqQueueName[?options]

## Options

Table 37, “MSMQ options” lists the options for an MSMQ endpoint.

Table 37. MSMQ options

Name | Default Value | Description
--- | --- | ---
`deliveryPersistent` | `false` | If `true`, the message is put persistently on the queue.
`priority` | `5` | The message priority, lying in the range 1-7
`timeToLive` | `INFINITE` | The maximum amount of time (specified in seconds) that a message can spend travelling to its destination. If this limit is exceeded, the message is discarded.
`concurrentConsumers` | `1` | The numbers of consumers that get messages from the queue at the same time.
`initialBufferSize` | `128` | The initial buffer size
`incrementBufferSize` | `128` | Specifies the number of bytes to increase the buffer if it is not large enough.