本文列举消息队列RabbitMQ版JMS库对JMS 1.1的实现情况。

JMS Interfaces

Connection Factory Interfaces

表 1. ConnectionFactory
接口 兼容性
Connection CreateConnection() 支持
Connection CreateConnection(java.lang.String userName, java.lang.String password) 支持
表 2. QueueConnectionFactory
接口 兼容性
QueueConnection CreateQueueConnection() 支持
QueueConnection CreateQueueConnection(java.lang.String userName, java.lang.String password) 支持
表 3. TopicConnectionFactory
接口 兼容性
TopicConnection CreateTopicConnection() 支持
TopicConnection CreateTopicConnection(java.lang.String userName, java.lang.String password) 支持
表 4. XAQueueConnectionFactory
接口 兼容性
XAQueueConnection CreateXAQueueConnection() 不支持
XAQueueConnection CreateXAQueueConnection(java.lang.String userName, java.lang.String password) 不支持
表 5. XATopicConnectionFactory
接口 兼容性
XATopicConnection CreateXATopicConnection() 不支持
XATopicConnection CreateXATopicConnection(java.lang.String userName, java.lang.String password) 不支持

Server Session Interfaces

表 6. ServerSessionPool
接口 兼容性
ServerSession getServerSession() 不支持
表 7. ServerSession
接口 兼容性
Session getSession() 不支持
void start() 不支持

Connection Interfaces

表 8. Connection
接口 兼容性
Session createSession(boolean transacted, int acknowledgeMode) 支持
java.lang.String getClientID() 支持
void setClientID(java.lang.String clientID) 支持
ConnectionMetaData getMetaData() 还未实现
ExceptionListener getExceptionListener() 支持
void setExceptionListener(ExceptionListener listener) 支持
void start() 支持
void stop() 支持
void close() 支持
ConnectionConsumer createConnectionConsumer(Destination destination, java.lang.String messageSelector, ServerSessionPool sessionPool, int maxMessages) 不支持
ConnectionConsumer createDurableConnectionConsumer(Topic topic, java.lang.String subscriptionName, java.lang.String messageSelector, ServerSessionPool sessionPool, int maxMessages) 不支持
表 9. QueueConnection
接口 兼容性
QueueSession createQueueSession(boolean transacted, int acknowledgeMode) 支持
ConnectionConsumer createConnectionConsumer(Queue queue, java.lang.String messageSelector, ServerSessionPool sessionPool, int maxMessages) 不支持
表 10. TopicConnection
接口 兼容性
TopicSession createTopicSession(boolean transacted, int acknowledgeMode) 支持
ConnectionConsumer createConnectionConsumer(Topic topic, java.lang.String messageSelector, ServerSessionPool sessionPool, int maxMessages) 不支持
ConnectionConsumer createDurableConnectionConsumer(Topic topic, java.lang.String subscriptionName, java.lang.String messageSelector, ServerSessionPool sessionPool, int maxMessages) 不支持
表 11. XAConnection
接口 兼容性
XASession createXASession() 还未实现
Session createSession(boolean transacted, int acknowledgeMode) 还未实现
表 12. XAQueueConnection
接口 兼容性
XAQueueSession createXAQueueSession() 还未实现
QueueSession createQueueSession(boolean transacted, int acknowledgeMode) 还未实现
表 13. XATopicConnection
接口 兼容性
XATopicSession createXATopicSession() 还未实现
TopicSession createTopicSession(boolean transacted, int acknowledgeMode) 还未实现

Session Interfaces

表 14. Session
接口 兼容性
BytesMessage createBytesMessage() 支持
MapMessage createMapMessage() 支持
Message createMessage() 支持
ObjectMessage createObjectMessage() 支持
ObjectMessage createObjectMessage(java.io.Serializable object) 支持
StreamMessage createStreamMessage() 支持
TextMessage createTextMessage() 支持
TextMessage createTextMessage(java.lang.String text) 支持
boolean getTransacted() 支持
int getAcknowledgeMode() 支持
void commit() 支持
void rollback() 支持
void close() 支持
void recover() 支持
MessageListener getMessageListener() 支持
void setMessageListener(MessageListener listener) 支持
void run() 不支持
MessageProducer createProducer(Destination destination) 支持
MessageConsumer createConsumer(Destination destination) 支持
MessageConsumer createConsumer(Destination destination, java.lang.String messageSelector) 未实现非空messageSelector
MessageConsumer createConsumer(Destination destination, java.lang.String messageSelector, boolean NoLocal)
  • 未实现非空messageSelector
  • 接收但忽略NoLocal
Queue createQueue(java.lang.String queueName) 支持
Topic createTopic(java.lang.String topicName) 支持
TopicSubscriber createDurableSubscriber(Topic topic, java.lang.String name) 支持
TopicSubscriber createDurableSubscriber(Topic topic, java.lang.String name, java.lang.String messageSelector, boolean noLocal) 除NoLocal外支持
QueueBrowser createBrowser(Queue queue) 还未实现
QueueBrowser createBrowser(Queue queue, java.lang.String messageSelector) 还未实现
TemporaryQueue createTemporaryQueue() 支持
TemporaryTopic createTemporaryTopic() 支持
void unsubscribe(java.lang.String name) 只支持持久化订阅
表 15. TopicSession
接口 兼容性
Topic createTopic(java.lang.String topicName) 支持
TopicSubscriber createSubscriber(Topic topic, java.lang.String messageSelector, boolean noLocal) 不支持NoLocal
TopicSubscriber createSubscriber(Topic topic) 支持
TopicSubscriber createDurableSubscriber(Topic topic, java.lang.String name) 支持
表 16. QueueSession
接口 兼容性
Queue createQueue(java.lang.String queueName)) 支持
QueueReceiver createReceiver(Queue queue) 支持
QueueReceiver createReceiver(Queue queue, java.lang.String messageSelector) 还未实现
QueueSender createSender(Queue queue) 支持
QueueBrowser createBrowser(Queue queue) 支持
QueueBrowser createBrowser(Queue queue, java.lang.String messageSelector) 支持
TemporaryQueue createTemporaryQueue() 支持
表 17. XAQueueSession
接口 兼容性
QueueSession getQueueSession() 还未实现
表 18. XASession
接口 兼容性
Session getSession() 还未实现
XAResource getXAResource() 还未实现
boolean getTransacted() 还未实现
void commit() 还未实现
void rollback() 还未实现
表 19. XATopicSession
接口 兼容性
TopicSession getTopicSession() 还未实现

Consumer and Producer Interfaces

表 20. ConnectionConsumer
接口 兼容性
ServerSessionPool getServerSessionPool() 不支持
void close() 不支持
表 21. MessageProducer
接口 兼容性
void setDisableMessageID(boolean value) 忽略
boolean getDisableMessageID() 忽略
void setDisableMessageTimestamp(boolean value) 忽略
boolean getDisableMessageTimestamp() 忽略
void setDeliveryMode(int deliveryMode) 支持
int getDeliveryMode() 支持
void setPriority(int defaultPriority) 支持
int getPriority() 支持
void setTimeToLive(long timeToLive) 支持
long getTimeToLive() 支持
Destination getDestination() 支持
void close() 支持
void send(Message message) 支持
void send(Message message, int deliveryMode, int priority, long timeToLive) 支持
void send(Destination destination, Message message) 支持
void send(Destination destination, Message message, int deliveryMode, int priority, long timeToLive) 支持
表 22. QueueSender
接口 兼容性
Queue getQueue() 支持
void send(Message message) 支持
void send(Message message, int deliveryMode, int priority, long timeToLive) 支持
void send(Queue queue, Message message) 支持
void send(Queue queue, Message message, int deliveryMode, int priority, long timeToLive) 支持
表 23. TopicPublisher
接口 兼容性
Topic getTopic() 支持
void publish(Message message) 支持
void publish(Message message, int deliveryMode, int priority, long timeToLive) 支持
void publish(Topic topic, Message message) 支持
void publish(Topic topic, Message message, int deliveryMode, int priority, long timeToLive) 支持

Message Interfaces

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

Message Consumer Interfaces

表 30. MessageConsumer
接口 兼容性
java.lang.String getMessageSelector() 支持
MessageListener getMessageListener() 支持
void setMessageListener(MessageListener listener) 支持
Message receive() 支持
Message receive(long timeout) 支持
Message receiveNoWait() 支持
void close() 支持
表 31. QueueReceiver
接口 兼容性
Queue getQueue() 支持
表 32. TopicSubscriber
接口 兼容性
Topic getTopic() 支持
boolean getNoLocal() 不支持NoLocal

Destination Interfaces

表 33. Destination
接口 兼容性
表 34. Queue
接口 兼容性
java.lang.String getQueueName() 支持
java.lang.String toString() 支持
表 35. TemporaryQueue
接口 兼容性
void delete() 支持
表 36. Topic
接口 兼容性
java.lang.String getTopicName() 支持
java.lang.String toString() 支持
表 37. TemporaryTopic
接口 兼容性
void delete() 支持
表 38. QueueBrowser
接口 兼容性
Queue getQueue() 支持
java.lang.String getMessageSelector() 支持
java.util.Enumeration getEnumeration() 支持
void close() 支持