

# Amazon SQS supported JMS 1.1 implementations
Supported JMS 1.1 implementations

The Amazon SQS Java Messaging Library supports the following [JMS 1.1 implementations](http://docs.oracle.com/javaee/6/api/javax/jms/package-summary.html). For more information about the supported features and capabilities of the Amazon SQS Java Messaging Library, see the [Amazon SQS FAQ](http://www.amazonaws.cn/sqs/faqs/).

## Supported common interfaces

+ `Connection`
+ `ConnectionFactory`
+ `Destination`
+ `Session`
+ `MessageConsumer`
+ `MessageProducer`

## Supported message types

+ `ByteMessage`
+ `ObjectMessage`
+ `TextMessage`

## Supported message acknowledgment modes

+ `AUTO_ACKNOWLEDGE`
+ `CLIENT_ACKNOWLEDGE`
+ `DUPS_OK_ACKNOWLEDGE`
+ `UNORDERED_ACKNOWLEDGE`

**Note**  
The `UNORDERED_ACKNOWLEDGE` mode isn't part of the JMS 1.1 specification. This mode helps Amazon SQS allow a JMS client to explicitly acknowledge a message.

## JMS-defined headers and reserved properties


### For sending messages


When you send messages, you can set the following headers and properties for each message:
+ `JMSXGroupID` (required for FIFO queues, not allowed for standard queues)
+ `JMS_SQS_DeduplicationId` (optional for FIFO queues, not allowed for standard queues)

After you send messages, Amazon SQS sets the following headers and properties for each message:
+ `JMSMessageID`
+ `JMS_SQS_SequenceNumber` (only for FIFO queues)

### For receiving messages


When you receive messages, Amazon SQS sets the following headers and properties for each message:
+ `JMSDestination`
+ `JMSMessageID`
+ `JMSRedelivered`
+ `JMSXDeliveryCount`
+ `JMSXGroupID` (only for FIFO queues)
+ `JMS_SQS_DeduplicationId` (only for FIFO queues)
+ `JMS_SQS_SequenceNumber` (only for FIFO queues)