

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# Amazon SQS 支持的 JMS 1.1 实现
<a name="supported-implementations"></a>

Amazon SQS Java Messaging Library 支持以下 [JMS 1.1 实施](http://docs.oracle.com/javaee/6/api/javax/jms/package-summary.html)。有关 Amazon SQS Java Messaging Library 支持的特征和功能的更多信息，请参阅 [Amazon SQS 常见问题](https://aws.amazon.com/sqs/faqs/)。

## 支持的常用接口
<a name="supported-common-interfaces"></a>
+ `Connection`
+ `ConnectionFactory`
+ `Destination`
+ `Session`
+ `MessageConsumer`
+ `MessageProducer`

## 支持的消息类型
<a name="supported-message-types"></a>
+ `ByteMessage`
+ `ObjectMessage`
+ `TextMessage`

## 支持的消息确认模式
<a name="supported-message-acknowledgement-modes"></a>
+ `AUTO_ACKNOWLEDGE`
+ `CLIENT_ACKNOWLEDGE`
+ `DUPS_OK_ACKNOWLEDGE`
+ `UNORDERED_ACKNOWLEDGE`

**注意**  
`UNORDERED_ACKNOWLEDGE` 模式不属于 JMS 1.1 规范。此模式有助于 Amazon SQS 允许 JMS 客户端显式确认消息。

## JMS 定义的标头和预留属性
<a name="jms-defined-headers-reserved-properties"></a>

### 发送消息
<a name="for-sending-messages"></a>

在发送消息时，您可以为每条消息设置以下标头和属性：
+ `JMSXGroupID`（对于 FIFO 队列是必需的，对于标准队列是不允许的）
+ `JMS_SQS_DeduplicationId`（对于 FIFO 队列是可选的，对于标准队列是不允许的）

在发送消息后，Amazon SQS 将为每条消息设置以下标头和属性：
+ `JMSMessageID`
+ `JMS_SQS_SequenceNumber`（仅适用于 FIFO 队列）

### 接收消息
<a name="for-receiving-messages"></a>

在接收消息时，Amazon SQS 将为每条消息设置以下标头和属性：
+ `JMSDestination`
+ `JMSMessageID`
+ `JMSRedelivered`
+ `JMSXDeliveryCount`
+ `JMSXGroupID`（仅适用于 FIFO 队列）
+ `JMS_SQS_DeduplicationId`（仅适用于 FIFO 队列）
+ `JMS_SQS_SequenceNumber`（仅适用于 FIFO 队列）