ActiveMQ(5.10.0) - Connection Configuration URI
2016-01-19 14:58
316 查看
An Apache ActiveMQ connection can be configured by explicitly setting properties on the ActiveMQConnection or ActiveMQConnectionFactory objects themselves via the bean properties or using the following URI syntax.
Example
You set the property called jms.$PROPERTY on a regular connection URI. For example you can set the brokerURL on your ActiveMQConnectionFactory to the following value to enable Async Sendstcp://localhost:61616?jms.useAsyncSend=true
Connection Options
The following options should be prefixed with jms. when used on a URI when connecting to a broker.Option Name | Default Value | Description |
alwaysSessionAsync | true | If this flag is set then a separate thread is used for dispatching messages for each Session in the Connection. However, a separate thread is always used if there is more than one session, or the session isn't in auto acknowledge or dups ok mode |
checkForDuplicates | true | If this flag is set to true, the consumer will check for duplicate messages and properly handle the message to make sure that it is not processed twice inadvertently. |
clientID | null | Sets the JMS clientID to use for the connection |
closeTimeout | 15000ms | Sets the timeout before a close is considered complete. Normally a close() on a connection waits for confirmation from the broker; this allows that operation to timeout to save the client hanging if there is no broker. |
copyMessageOnSend | true | Should a JMS message be copied to a new JMS Message object as part of the send() method in JMS. This is enabled by default to be compliant with the JMS specification. You can disable it if you do not mutate JMS messages after they are sent for a performance boost. |
disableTimeStampsByDefault | false | Sets whether or not timestamps on messages should be disabled or not. If you disable them it adds a small performance boost. |
dispatchAsync | false | Should the broker dispatch messages asynchronously to the consumer. |
nestedMapAndListEnabled | true | Enables/disables whether or not Structured Message Properties and MapMessages are supported so that Message properties and MapMessage entries can contain nested Map and List objects. Available since version 4.1 onwards |
objectMessageSerializationDefered | false | When an object is set on an ObjectMessage, the JMS spec requires the object to be serialized by that set method. Enabling this flag causes the object to not get serialized. The object may subsequently get serialized if the message needs to be sent over a socket or stored to disk. |
optimizeAcknowledge | false | Enables an optimised acknowledgement mode where messages are acknowledged in batches rather than individually. Alternatively, you could use Session.DUPS_OK_ACKNOWLEDGE acknowledgement mode for the consumers which can often be faster. WARNING enabling this issue could cause some issues with auto-acknowledgement on reconnection |
optimizeAcknowledgeTimeOut | 300ms | if > 0, specifies the max time between batch acks when optimizeAcknowledge is enabled. (since 5.6) |
optimizedAckScheduledAckInterval | 0 | if > 0, specifies a time interval upon which all the outstanding acks are delivered when optimized acknowledge is used so that a long running consumer that doesn't receive any more messages will eventually ack the last few unacked messages (since 5.7) |
optimizedMessageDispatch | true | If this flag is set then an larger prefetch limit is used - only applicable for durable topic subscribers |
useAsyncSend | false | Forces the use of Async Sends which adds a massive performance boost; but means that the send() method will return immediately whether the message has been sent or not which could lead to message loss. |
useCompression | false | Enables the use of compression of the message bodies |
useRetroactiveConsumer | false | Sets whether or not retroactive consumers are enabled. Retroactive consumers allow non-durable topic subscribers to receive old messages that were published before the non-durable subscriber started. |
warnAboutUnstartedConnectionTimeout | 500 | Enables the timeout in milliseconds from a connection creation to when a warning is generated if the connection is not properly started via Connection.start() and a message is received by a consumer. It is a very common gotcha to forget to start the connection and then wonder why no messages are delivered so this option makes the default case to create a warning if the user forgets. To disable the warning just set the value to < 0 (say -1). |
auditDepth | 2048 | The size of the message window that will be audited (for duplicates and out of order messages |
auditMaximumProducerNumber | 64 | Maximum number of producers that will be audited |
alwaysSyncSend | false | When true a MessageProducer will always use Sync sends when sending a Message even if it is not required for the Delivery Mode |
consumerExpiryCheckEnabled | true | Controls whether message expiration checking is done in each MessageConsumer prior to dispatching a message. Disabling this check can lead to consumption of expired messages. (since 5.11) |
Nested Options
You can also configure nested objects on the connection object using the given prefixes. See the javadoc for a breakdown of each individual property.Option Name | Object configured | See Also |
jms.blobTransferPolicy.* | BlobTransferPolicy | Blob Message |
jms.prefetchPolicy.* | ActiveMQPrefetchPolicy | What is the prefetch limit for |
jms.redeliveryPolicy.* | RedeliveryPolicy | Redelivery Policy |
相关文章推荐
- 数据库——触发器(转)
- hadoop的一些的说明
- LeetCode_110.Balanced Binary Tree_平衡二叉树
- Android 省市县 三级联动(android-wheel的使用)
- Fragment提交transaction导致state loss异常
- Spark学习之Spark SQL(8)
- Spark学习之Spark SQL(8)
- C语言结构体类型声明和定义标准形式
- 提交IOS App需要的材料
- Homebrew安装
- 数据库——浅谈数据库中的存储过程(转)
- url问号传值获取值
- Java BigDecimal 与 java的四舍五入 详解
- rabbitmq publisher(生产者)注意的几个点
- redis常见操作命令-sortedset
- 【android】根据心形方程用代码绘制出图形
- 禁用opcache缓存
- Servlet网站访问量统计小案例
- Delphi出现“borland license information was found,but it is not valid for delphi”的错误,无法运行的解决方法
- rsync同步工具学习笔记