Menu Close
Settings Close

Language and Page Formatting Options

Red Hat Training

A Red Hat training course is available for Red Hat AMQ

Chapter 6. Interoperability

This chapter discusses how to use AMQ .NET in combination with other AMQ components. For an overview of the compatibility of AMQ components, see the product introduction.

6.1. Interoperating with Other AMQP Clients

AMQP messages are composed using the AMQP type system. This common format is one of the reasons AMQP clients in different languages are able to interoperate with each other.

When sending messages, AMQ .NET automatically converts language-native types to AMQP-encoded data. When receiving messages, the reverse conversion takes place.

Note

More information about AMQP types is available at the interactive type reference maintained by the Apache Qpid project.

Table 6.1. AMQ .NET and AMQP Types

AMQ .NET TypeAMQP TypeDescription

null

null

An empty value

System.Boolean

boolean

A true or false value

System.Char

char

A single Unicode character

System.String

string

A sequence of Unicode characters

System.Byte[]

binary

A sequence of bytes

System.SByte

byte

A signed 8-bit integer

System.Int16

short

A signed 16-bit integer

System.Int32

int

A signed 32-bit integer

System.Int64

long

A signed 64-bit integer

System.Byte

ubyte

An unsigned 8-bit integer

System.UInt16

ushort

An unsigned 16-bit integer

System.UInt32

uint

An unsigned 32-bit integer

System.UInt64

ulong

An unsigned 64-bit integer

System.Single

float

A 32-bit floating point number

System.Double

double

A 64-bit floating point number

Amqp.List

list

A sequence of values of variable type

Amqp.Map

map

A mapping from distinct keys to values

System.Guid

uuid

A universally unique identifier

Amqp.Symbol

symbol

A 7-bit ASCII string from a constrained domain

System.DateTime

timestamp

An absolute point in time

Table 6.2. AMQ .NET and Other AMQ Client Types

AMQ .NETAMQ C++AMQ PythonAMQ JavaScript

null

nullptr

None

null

System.Boolean

bool

bool

boolean

System.Char

wchar_t

proton.char

-

System.String

std::string

unicode

string

System.Byte[]

proton::binary

bytes

wrap_binary(string)

System.SByte

int8_t

proton.byte

wrap_byte(number)

System.Int16

int16_t

proton.short

wrap_short(number)

System.Int32

int32_t

proton.int32

wrap_int(number)

System.Int64

int64_t

long

wrap_long(number)

System.Byte

uint8_t

proton.ubyte

wrap_ubyte(number)

System.UInt16

uint16_t

proton.ushort

wrap_ushort(number)

System.UInt32

uint32_t

proton.uint

wrap_uint(number)

System.UInt64

uint64_t

proton.ulong

wrap_ulong(number)

System.Single

float

proton.float32

wrap_float(number)

System.Double

double

float

wrap_double(number)

Amqp.List

std::vector

list

wrap_list(Array)

Amqp.Map

std::map

dict

wrap_map(object)

System.Guid

proton::uuid

uuid.UUID

-

Amqp.Symbol

proton::symbol

proton.symbol

wrap_symbol(string)

System.DateTime

proton::timestamp

proton.timestamp

wrap_timestamp(number)

6.2. Interoperating with AMQ JMS

AMQP defines a standard mapping to the JMS messaging model. This section discusses the various aspects of that mapping. For more information, see the AMQ JMS Interoperability chapter.

JMS Message Types

AMQ .NET provides a single message type whose body type can vary. By contrast, the JMS API uses different message types to represent different kinds of data. The table below indicates how particular body types map to JMS message types.

For more explicit control of the resulting JMS message type, you can set the x-opt-jms-msg-type message annotation. See the AMQ JMS Interoperability chapter for more information.

Table 6.3. AMQ .NET and JMS Message Types

AMQ .NET Body TypeJMS Message Type

System.String

TextMessage

null

TextMessage

System.Byte[]

BytesMessage

Any other type

ObjectMessage

6.3. Connecting to AMQ Broker

AMQ Broker is designed to interoperate with AMQP 1.0 clients. Check the following to ensure the broker is configured for AMQP messaging.

  • Port 5672 in the network firewall is open.
  • The AMQ Broker AMQP acceptor is enabled. See Configuring Network Access.
  • The necessary addresses are configured on the broker. See Addresses, Queues, and Topics.
  • The broker is configured to permit access from your client, and the client is configured to send the required credentials. See Broker Security.

6.4. Connecting to AMQ Interconnect

AMQ Interconnect works with any AMQP 1.0 client. Check the following to ensure the components are configured correctly.

  • Port 5672 in the network firewall is open.
  • The router is configured to permit access from your client, and the client is configured to send the required credentials. See Interconnect Security.