This article describes the implementation of the JMS 1.1 API on JMS clients for ApsaraMQ for RabbitMQ.

JMS interfaces

Connection factory interfaces

Table 1. ConnectionFactory
InterfaceCompatibility
Connection CreateConnection()Supported
Connection CreateConnection(java.lang.String userName, java.lang.String password)Supported
Table 2. QueueConnectionFactory
InterfaceCompatibility
QueueConnection CreateQueueConnection()Supported
QueueConnection CreateQueueConnection(java.lang.String userName, java.lang.String password)Supported
Table 3. TopicConnectionFactory
InterfaceCompatibility
TopicConnection CreateTopicConnection()Supported
TopicConnection CreateTopicConnection(java.lang.String userName, java.lang.String password)Supported
Table 4. XAQueueConnectionFactory
InterfaceCompatibility
XAQueueConnection CreateXAQueueConnection()Not supported
XAQueueConnection CreateXAQueueConnection(java.lang.String userName, java.lang.String password)Not supported
Table 5. XATopicConnectionFactory
InterfaceCompatibility
XATopicConnection CreateXATopicConnection()Not supported
XATopicConnection CreateXATopicConnection(java.lang.String userName, java.lang.String password)Not supported

Server session interfaces

Table 6. ServerSessionPool
InterfaceCompatibility
ServerSession getServerSession()Not supported
Table 7. ServerSession
InterfaceCompatibility
Session getSession()Not supported
void start()Not supported

Connection interfaces

Table 8. Connection
InterfaceCompatibility
Session createSession(boolean transacted, int acknowledgeMode)Supported
java.lang.String getClientID()Supported
void setClientID(java.lang.String clientID)Supported
ConnectionMetaData getMetaData()Not implemented
ExceptionListener getExceptionListener()Supported
void setExceptionListener(ExceptionListener listener)Supported
void start()Supported
void stop()Supported
void close()Supported
ConnectionConsumer createConnectionConsumer(Destination destination, java.lang.String messageSelector, ServerSessionPool sessionPool, int maxMessages)Not supported
ConnectionConsumer createDurableConnectionConsumer(Topic topic, java.lang.String subscriptionName, java.lang.String messageSelector, ServerSessionPool sessionPool, int maxMessages)Not supported
Table 9. QueueConnection
InterfaceCompatibility
QueueSession createQueueSession(boolean transacted, int acknowledgeMode)Supported
ConnectionConsumer createConnectionConsumer(Queue queue, java.lang.String messageSelector, ServerSessionPool sessionPool, int maxMessages)Not supported
Table 10. TopicConnection
InterfaceCompatibility
TopicSession createTopicSession(boolean transacted, int acknowledgeMode)Supported
ConnectionConsumer createConnectionConsumer(Topic topic, java.lang.String messageSelector, ServerSessionPool sessionPool, int maxMessages)Not supported
ConnectionConsumer createDurableConnectionConsumer(Topic topic, java.lang.String subscriptionName, java.lang.String messageSelector, ServerSessionPool sessionPool, int maxMessages)Not supported
Table 11. XAConnection
InterfaceCompatibility
XASession createXASession()Not implemented
Session createSession(boolean transacted, int acknowledgeMode)Not implemented
Table 12. XAQueueConnection
InterfaceCompatibility
XAQueueSession createXAQueueSession()Not implemented
QueueSession createQueueSession(boolean transacted, int acknowledgeMode)Not implemented
Table 13. XATopicConnection
InterfaceCompatibility
XATopicSession createXATopicSession()Not implemented
TopicSession createTopicSession(boolean transacted, int acknowledgeMode)Not implemented

Session interfaces

Table 14. Session
InterfaceCompatibility
BytesMessage createBytesMessage()Supported
MapMessage createMapMessage()Supported
Message createMessage()Supported
ObjectMessage createObjectMessage()Supported
ObjectMessage createObjectMessage(java.io.Serializable object)Supported
StreamMessage createStreamMessage()Supported
TextMessage createTextMessage()Supported
TextMessage createTextMessage(java.lang.String text)Supported
boolean getTransacted()Supported
int getAcknowledgeMode()Supported
void commit()Supported
void rollback()Supported
void close()Supported
void recover()Supported
MessageListener getMessageListener()Supported
void setMessageListener(MessageListener listener)Supported
void run()Not supported
MessageProducer createProducer(Destination destination)Supported
MessageConsumer createConsumer(Destination destination)Supported
MessageConsumer createConsumer(Destination destination, java.lang.String messageSelector)Not implemented: non-null messageSelector
MessageConsumer createConsumer(Destination destination, java.lang.String messageSelector, boolean NoLocal)
  • Not implemented: non-null messageSelector
  • Accepted but ignored: NoLocal
Queue createQueue(java.lang.String queueName)Supported
Topic createTopic(java.lang.String topicName)Supported
TopicSubscriber createDurableSubscriber(Topic topic, java.lang.String name)Supported
TopicSubscriber createDurableSubscriber(Topic topic, java.lang.String name, java.lang.String messageSelector, boolean noLocal)Not supported: NoLocal
QueueBrowser createBrowser(Queue queue)Not implemented
QueueBrowser createBrowser(Queue queue, java.lang.String messageSelector)Not implemented
TemporaryQueue createTemporaryQueue()Supported
TemporaryTopic createTemporaryTopic()Supported
void unsubscribe(java.lang.String name)Supported only for durable subscriptions
Table 15. TopicSession
InterfaceCompatibility
Topic createTopic(java.lang.String topicName)Supported
TopicSubscriber createSubscriber(Topic topic, java.lang.String messageSelector, boolean noLocal)Not supported: NoLocal
TopicSubscriber createSubscriber(Topic topic)Supported
TopicSubscriber createDurableSubscriber(Topic topic, java.lang.String name)Supported
Table 16. QueueSession
InterfaceCompatibility
Queue createQueue(java.lang.String queueName))Supported
QueueReceiver createReceiver(Queue queue)Supported
QueueReceiver createReceiver(Queue queue, java.lang.String messageSelector)Not implemented
QueueSender createSender(Queue queue)Supported
QueueBrowser createBrowser(Queue queue)Supported
QueueBrowser createBrowser(Queue queue, java.lang.String messageSelector)Supported
TemporaryQueue createTemporaryQueue()Supported
Table 17. XAQueueSession
InterfaceCompatibility
QueueSession getQueueSession()Not implemented
Table 18. XASession
InterfaceCompatibility
Session getSession()Not implemented
XAResource getXAResource()Not implemented
boolean getTransacted()Not implemented
void commit()Not implemented
void rollback()Not implemented
Table 19. XATopicSession
InterfaceCompatibility
TopicSession getTopicSession()Not implemented

Consumer and producer interfaces

Table 20. ConnectionConsumer
InterfaceCompatibility
ServerSessionPool getServerSessionPool()Not supported
void close()Not supported
Table 21. MessageProducer
InterfaceCompatibility
void setDisableMessageID(boolean value)Ignored
boolean getDisableMessageID()Ignored
void setDisableMessageTimestamp(boolean value)Ignored
boolean getDisableMessageTimestamp()Ignored
void setDeliveryMode(int deliveryMode)Supported
int getDeliveryMode()Supported
void setPriority(int defaultPriority)Supported
int getPriority()Supported
void setTimeToLive(long timeToLive)Supported
long getTimeToLive()Supported
Destination getDestination()Supported
void close()Supported
void send(Message message)Supported
void send(Message message, int deliveryMode, int priority, long timeToLive)Supported
void send(Destination destination, Message message)Supported
void send(Destination destination, Message message, int deliveryMode, int priority, long timeToLive)Supported
Table 22. QueueSender
InterfaceCompatibility
Queue getQueue()Supported
void send(Message message)Supported
void send(Message message, int deliveryMode, int priority, long timeToLive)Supported
void send(Queue queue, Message message)Supported
void send(Queue queue, Message message, int deliveryMode, int priority, long timeToLive)Supported
Table 23. TopicPublisher
InterfaceCompatibility
Topic getTopic()Supported
void publish(Message message)Supported
void publish(Message message, int deliveryMode, int priority, long timeToLive)Supported
void publish(Topic topic, Message message)Supported
void publish(Topic topic, Message message, int deliveryMode, int priority, long timeToLive)Supported

Message interfaces

Table 24. Message
InterfaceCompatibility
java.lang.String getJMSMessageID()Supported
void setJMSMessageID(java.lang.String id)Supported
long getJMSTimestamp()Supported
void setJMSTimestamp(long timestamp)Supported
byte[] getJMSCorrelationIDAsBytes()Supported
void setJMSCorrelationIDAsBytes(byte[] correlationID)Supported
void setJMSCorrelationID(java.lang.String correlationID)Supported
java.lang.String getJMSCorrelationID()Supported
Destination getJMSReplyTo()Supported
void setJMSReplyTo(Destination replyTo)Supported
Destination getJMSDestination()Supported
void setJMSDestination(Destination destination)Supported
int getJMSDeliveryMode()Supported
void setJMSDeliveryMode(int deliveryMode)Supported
boolean getJMSRedelivered()Supported
void setJMSRedelivered(boolean redelivered)Supported
java.lang.String getJMSType()Supported
void setJMSType(java.lang.String type)Supported
long getJMSExpiration()Supported
void setJMSExpiration(long expiration)Supported
int getJMSPriority()Supported
void setJMSPriority(int priority)Supported
void clearProperties()Supported
boolean propertyExists(java.lang.String name)Supported
boolean getBooleanProperty(java.lang.String name)Supported
byte getByteProperty(java.lang.String name)Supported
short getShortProperty(java.lang.String name)Supported
int getIntProperty(java.lang.String name)Supported
long getLongProperty(java.lang.String name)Supported
float getFloatProperty(java.lang.String name)Supported
double getDoubleProperty(java.lang.String name)Supported
java.lang.String getStringProperty(java.lang.String name)Supported
java.lang.Object getObjectProperty(java.lang.String name)Supported
java.util.Enumeration getPropertyNames()Supported
void setBooleanProperty(java.lang.String name, boolean value)Supported
void setShortProperty(java.lang.String name, short value)Supported
void setIntProperty(java.lang.String name, int value)Supported
void setLongProperty(java.lang.String name, long value)Supported
void setFloatProperty(java.lang.String name, float value)Supported
void setDoubleProperty(java.lang.String name, double value)Supported
void setStringProperty(java.lang.String name, java.lang.String value)Supported
void setObjectProperty(java.lang.String name, java.lang.Object value)Supported
void acknowledge()Supported
void clearBody()Supported
Table 25. BytesMessage
InterfaceCompatibility
long getBodyLength()Supported
boolean readBoolean()Supported
byte readByte()Supported
int readUnsignedByte()Supported
short readShort()Supported
int readUnsignedShort()Supported
char readChar()Supported
int readInt()Supported
long readLong()Supported
float readFloat()Supported
double readDouble()Supported
java.lang.String readUTF()Supported
int readBytes(byte[] value)Supported
int readBytes(byte[] value, int length)Supported
void writeBoolean(boolean value)Supported
void writeByte(byte value)Supported
void writeShort(short value)Supported
void writeChar(char value)Supported
void writeInt(int value)Supported
void writeLong(long value)Supported
void writeFloat(float value)Supported
void writeDouble(double value)Supported
void writeUTF(java.lang.String value)Supported
void writeBytes(byte[] value)Supported
void writeBytes(byte[] value, int offset, int length)Supported
void writeObject(java.lang.Object value)Supported
void reset()Supported
Table 26. MapMessag
InterfaceCompatibility
boolean getBoolean(java.lang.String name)Supported
byte getByte(java.lang.String name)Supported
short getShort(java.lang.String name)Supported
char getChar(java.lang.String name)Supported
int getInt(java.lang.String name)Supported
long getLong(java.lang.String name)Supported
float getFloat(java.lang.String name)Supported
double getDouble(java.lang.String name)Supported
java.lang.String getString(java.lang.String name)Supported
byte[] getBytes(java.lang.String name)Supported
java.lang.Object getObject(java.lang.String name)Supported
java.util.Enumeration getMapNames()Supported
void setBoolean(java.lang.String name, boolean value)Supported
void setByte(java.lang.String name, byte value)Supported
void setShort(java.lang.String name, short value)Supported
void setChar(java.lang.String name, char value)Supported
void setInt(java.lang.String name, int value)Supported
void setLong(java.lang.String name, long value)Supported
void setFloat(java.lang.String name, float value)Supported
void setDouble(java.lang.String name, double value)Supported
void setString(java.lang.String name, java.lang.String value)Supported
void setBytes(java.lang.String name, byte[] value)Supported
void setBytes(java.lang.String name, byte[] value, int offset, int length)Supported
void setObject(java.lang.String name, java.lang.Object value)Supported
boolean itemExists(java.lang.String name)Supported
Table 27. ObjectMessage
InterfaceCompatibility
void setObject(java.io.Serializable object)Supported
java.io.Serializable getObject()Supported
Table 28. StreamMessage
InterfaceCompatibility
boolean readBoolean()Supported
byte readByte()Supported
short readShort()Supported
char readChar()Supported
int readInt()Supported
long readLong()Supported
float readFloat()Supported
double readDouble()Supported
java.lang.String readString()Supported
int readBytes(byte[] value)Supported
java.lang.Object readObject()Supported
void writeBoolean(boolean value)Supported
oid writeByte(byte value)Supported
void writeShort(short value)Supported
void writeChar(char value)Supported
void writeInt(int value)Supported
void writeLong(long value)Supported
void writeFloat(float value)Supported
void writeDouble(double value)Supported
void writeString(java.lang.String value)Supported
void writeBytes(byte[] value)Supported
void writeBytes(byte[] value, int offset, int length)Supported
void writeObject(java.lang.Object value)Supported
void reset()Supported
Table 29. TextMessage
InterfaceCompatibility
void setText(java.lang.String string)Supported
java.lang.String getText()Supported

Message consumer interfaces

Table 30. MessageConsumer
InterfaceCompatibility
java.lang.String getMessageSelector()Supported
MessageListener getMessageListener()Supported
void setMessageListener(MessageListener listener)Supported
Message receive()Supported
Message receive(long timeout)Supported
Message receiveNoWait()Supported
void close()Supported
Table 31. QueueReceiver
InterfaceCompatibility
Queue getQueue()Supported
Table 32. TopicSubscriber
InterfaceCompatibility
Topic getTopic()Supported
boolean getNoLocal()Not supported: NoLocal

Destination interfaces

Table 33. Destination
InterfaceCompatibility
N/AN/A
Table 34. Queue
InterfaceCompatibility
java.lang.String getQueueName()Supported
java.lang.String toString()Supported
Table 35. TemporaryQueue
InterfaceCompatibility
void delete()Supported
Table 36. Topic
InterfaceCompatibility
java.lang.String getTopicName()Supported
java.lang.String toString()Supported
Table 37. TemporaryTopic
InterfaceCompatibility
void delete()Supported
Table 38. QueueBrowser
InterfaceCompatibility
Queue getQueue()Supported
java.lang.String getMessageSelector()Supported
java.util.Enumeration getEnumeration()Supported
void close()Supported