[CONF] Apache ActiveMQ > Apache ActiveMQ Board Report - 2021.04 (Apr)

2021-04-16 Thread Gary Tully (Confluence)
Title: Message Title



 
 
 
There's 1 new edit on this page 
 
 
 
 
 
 
  
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Apache ActiveMQ Board Report - 2021.04 (Apr) 
 
 
  
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 
 
 
 
Gary Tully edited this page 
 
 
  
 
 

 
 
 
  
 
 
  
 
 
  
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Here's what changed: 
 
 
 
 
 
 
 
 
 
 
 ... 
 
 ActiveMQ 
 
 5.16.1 has been released on 2021-01-20 fixing CVE and issues on the 5.16.x series (5.16.x series is running compliant with JDK 9+)  
 5.15.15 release is in vote, fixing CVE (dependencies) and issues. We will probably announce that 5.15.15 will be the last release on the 5.15.x, inviting users to upgrade at least on 5.16.x.  
 5.16.2 release will be released soon. We have one issue to fix (the broker redelivery plugin doesn't work properly on 5.16.x) to fix before moving forward with the release.  
 5.17.x (main branch) is moving forward: we already have a PR allowing to fully build with JDK 11+. Couple of PRs are almost ready to upgrade to Spring 5.x and log4j2. JMS 2.x support (at least client side) and other new features will come soon as well.  
 To give more visibility for the users, we discussed about renaming ActiveMQ (from "ActiveMQ classic" to something else, to clearly identify ActiveMQ and Artemis). This thread drives to a consensus to move forward on the website (documentation mostly).  
 Some new features are in preparation as "PoC": replicated kahadb, improvements on the Karaf support, ...  
  
 ActiveMQ Artemis  
 
ActiveMQ Artemis 2.17.0 has been released on 2021-02-11 
ActiveMQ Artemis 2.18.0 to be released soon, with substantial improvements on Disaster and Recovery capabilities introduced as part of AMQP Broker Connections. 
 
it will be possible to have two or more broker synchronized, improving possibilities for failover scenarios. 
significant hardening work on OpenWire advisories and Virtual Topics, to support migrating users 
 smart replica packet batching, on shared nothing replication; greatly improves performance of replication by saving network bandwidth.  
  
 
 ActiveMQ NMS (.NET Clients) 
 
 TODO  
  
 ActiveMQ CMS (C++ Clients) 
 
TODO 
  
 ...  
 
 
  
 
 
  
 
 
  
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Go to page history 
 
 
  
 
 
  
 
 
  
 
 
  
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
View page 
 
 
  
 
 
  
 
 
  
 
 
  
 
 
 
 
 
 
 
 
 
 
Stop watching space
• 
 
 
 
 
 
 
Manage notifications 
 
 
 
 
 
 
 
 
 
 
  
 
 
This message was sent by Atlassian Confluence 7.5.0  
 
 
  
 
 
 
 
 
 
 
 
 




[CONF] Apache ActiveMQ > Apache ActiveMQ Board Report - 2021.04 (Apr)

2021-04-16 Thread Gary Tully (Confluence)
Title: Message Title



 
 
 
There's 1 new edit on this page 
 
 
 
 
 
 
  
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Apache ActiveMQ Board Report - 2021.04 (Apr) 
 
 
  
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 
 
 
 
Gary Tully edited this page 
 
 
  
 
 

 
 
 
  
 
 
  
 
 
  
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Here's what changed: 
 
 
 
 
 
 
 
 
 
 
 ... 
 
 ActiveMQ 
 
 5.16.1 has been released on 2021-01-20 fixing CVE and issues on the 5.16.x series (5.16.x series is running compliant with JDK 9+)  
 5.15.15 release is in vote, fixing CVE (dependencies) and issues. We will probably announce that 5.15.15 will be the last release on the 5.15.x, inviting users to upgrade at least on 5.16.x.  
 5.16.2 release will be released soon. We have one issue to fix (the broker redelivery plugin doesn't work properly on 5.16.x) to fix before moving forward with the release.  
 5.17.x (main branch) is moving forward: we already have a PR allowing to fully build with JDK 11+. Couple of PRs are almost ready to upgrade to Spring 5.x and log4j2. JMS 2.x support (at least client side) and other new features will come soon as well.  
 To give more visibility for the users, we discussed about renaming ActiveMQ (from "ActiveMQ classic" to something else, to clearly identify ActiveMQ and Artemis). This thread drives to a consensus to move forward on the website (documentation mostly).  
 Some new features are in preparation as "PoC": replicated kahadb, improvements on the Karaf support, ...  
  
 ActiveMQ Artemis  
 
ActiveMQ Artemis 2.17.0 has been released on 2021-02-11 
ActiveMQ Artemis 2.18.0 to be released soon, with substantial improvements on Disaster and Recovery capabilities introduced as part of AMQP Broker Connections. 
 
it will be possible to have two or more broker synchronized improving possibilities for failover scenarios. 
 significant hardening work on OpenWire advisories and Virtual Topics, to support migrating users  
  
 
 ActiveMQ NMS (.NET Clients) 
 
 TODO  
  
 ActiveMQ CMS (C++ Clients) 
 
TODO 
  
 ...  
 
 
  
 
 
  
 
 
  
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Go to page history 
 
 
  
 
 
  
 
 
  
 
 
  
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
View page 
 
 
  
 
 
  
 
 
  
 
 
  
 
 
 
 
 
 
 
 
 
 
Stop watching space
• 
 
 
 
 
 
 
Manage notifications 
 
 
 
 
 
 
 
 
 
 
  
 
 
This message was sent by Atlassian Confluence 7.5.0  
 
 
  
 
 
 
 
 
 
 
 
 




[CONF] Apache ActiveMQ > Apache ActiveMQ Board Report - 2020.10 (Oct)

2020-10-06 Thread Gary Tully (Confluence)
Title: Message Title



 
 
 
There's 1 new edit on this page 
 
 
 
 
 
 
  
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Apache ActiveMQ Board Report - 2020.10 (Oct) 
 
 
  
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 
 
 
 
Gary Tully edited this page 
 
 
  
 
 

 
 
 
  
 
 
  
 
 
  
 
 
 
 
 
 
 
 
 
 
Here's the version comment 
 
 
 
 
 
 
 
 
 
 
 
 
 
  
 
 
  
 
 
  
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 
 
 
 
Gary Tully edited at 09:19 AM 
 
 
  
 
 

 
 
 
 
 
 
 
 
 little update on Client Tools  
 
 
  
 
 
  
 
 

 
 
 
  
 
 
  
 
 
  
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Here's what changed: 
 
 
 
 
 
 
 
 
 
 
 ... 
 
 ActiveMQ 
 
ActiveMQ 5.16.0 has been released, which is an important milestone for the project as it fully supports JDK 9+ at runtime 
Working on full JDK 9+ support at build time now 
Spring 5 update is on the way 
New cloud friendly PoC started 
  
 ActiveMQ Artemis  
 
 TODO  
 
 ActiveMQ Other 
 
 TODO  
  
 ... 
 
 Client Tools 
 
 Support for migrating existing Openwire virtual topic subscription queues to ActiveMQ Artemis  
  
  Releases  
 
 ActiveMQ Client Tools 0.2.0 released  
To be pulled from Reporter 
 ...  
 
 
  
 
 
  
 
 
  
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Go to page history 
 
 
  
 
 
  
 
 
  
 
 
  
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
View page 
 
 
  
 
 
  
 
 
  
 
 
  
 
 
 
 
 
 
 
 
 
 
Stop watching space
• 
 
 
 
 
 
 
Manage notifications 
 
 
 
 
 
 
 
 
 
 
  
 
 
This message was sent by Atlassian Confluence 7.5.0  
 
 
  
 
 
 
 
 
 
 
 
 




[CONF] Apache ActiveMQ > KahaDB

2018-10-31 Thread Gary Tully (Confluence)
Title: Message Title



 
 
 
There's 1 new edit on this page 
 
 
 
 
 
 
  
 
 
 
 
 
 
 
 
 
 
 
 
 
 
KahaDB 
 
 
  
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 
 
 
 
Gary Tully edited this page 
 
 
  
 
 

 
 
 
  
 
 
  
 
 
  
 
 
 
 
 
 
 
 
 
 
Here's the version comment 
 
 
 
 
 
 
 
 
 
 
 
 
 
  
 
 
  
 
 
  
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 
 
 
 
Gary Tully edited at 02:43 PM 
 
 
  
 
 

 
 
 
 
 
 
 
 
 cleanupOnStop  
 
 
  
 
 
  
 
 

 
 
 
  
 
 
  
 
 
  
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Here's what changed: 
 
 
 
 
 
 
 
 
 
 
 ... 
 
 
 
 
 
 
 
 
 
 Property  
 Default  
 Comments  
 
 
  archiveCorruptedIndex   
  false   
 If true, corrupted indexes found at startup will be archived (not deleted).  
 
 
  archiveDataLogs   
  false   
 If true, will move a message data log to the archive directory instead of deleting it.  
 
 
  checkForCorruptJournalFiles   
  false   
 If true, will check for corrupt journal files on startup and try and recover them.  
 
 
  checkpointInterval   
  5000   
 Time (ms) before check-pointing the journal.  
 
 
  checksumJournalFiles   
  true   
 Create a checksum for a journal file. The presence of a checksum is required in order for the persistence adapter to be able to detect corrupt journal files. Before ActiveMQ 5.9.0: the default is false.  
 
 
  cleanupInterval   
  3   
 The interval (in ms) between consecutive checks that determine which journal files, if any, are eligible for removal from the message store. An eligible journal file is one that has no outstanding references.  
 
 
  compactAcksAfterNoGC   
  10   
 From ActiveMQ 5.14.0: when the acknowledgement compaction feature is enabled this value controls how many store GC cycles must be completed with no other files being cleaned up before the compaction logic is triggered to possibly compact older acknowledgements spread across journal files into a new log file.  The lower the value set the faster the compaction may occur which can impact performance if it runs to often.  
 
 
  compactAcksIgnoresStoreGrowth   
  false   
 From ActiveMQ 5.14.0: when the acknowledgement compaction feature is enabled this value controls whether compaction is run when the store is still growing or if it should only occur when the store has stopped growing (either due to idle or store limits reached).  If enabled the compaction runs regardless of the store still having room or being active which can decrease overall performance but reclaim space faster.   
 
 
  concurrentStoreAndDispatchQueues   
  true   
 Enable the dispatching of Queue messages to interested clients to happen concurrently with message storage.  
 
 
  concurrentStoreAndDispatchTopics   
  false   
 
 
Enable the dispatching of Topic messages to interested clients to happen concurrently with message storage 
 
 
 
 Warning 
 
 
 
 
 Enabling this property is not recommended.  
 
 
 
   
  
 
 
  directory   
  activemq-data   
 The path to the directory to use to store the message store data and log files.  
 
 
  directoryArchive   
  null   
 Define the directory to move data logs to when they all the messages they contain have been consumed.  
 
 
  enableAckCompaction   
  true   
 From ActiveMQ 5.14.0: this setting controls whether the store will perform periodic compaction of older journal log files that contain only Message acknowledgements. By compacting these older acknowledgements into new journal log files the older files can be removed freeing space and allowing the message store to continue to operate without hitting store size limits.  
 
 
  enableIndexWriteAsync   
  false   
 If true, the index is updated asynchronously.  
 
 
  enableJournalDiskSyncs   
  true   
 
 
 Ensure every journal write is followed by a disk sync (JMS durability requirement).  
 
 
 
 Warning 
 
 
 
 
 This property is deprecated as of ActiveMQ 5.14.0. From ActiveMQ 5.14.0: see journalDiskSyncStrategy.   
 
 
 
   
  
 
 
  ignoreMissingJournalfiles   
  false   
 If true, reports of missing journal files are ignored.  
 
 
  indexCacheSize   
  1   
 Number of index pages cached in memory.  
 
 
  indexDirectory   
  
  From ActiveMQ 5.10.0: If set, configures where the KahaDB index files (db.data and db.redo) will be stored. If not set, the index files are stored in the directory specified by the directory attribute.   
 
 
  indexWriteBatchSize   
  1000   
 Number of indexes written in a batch.  
 
 
  journalDiskSyncInterval   
  1000   
 Interval (ms) for when to perform a disk sync when journalDiskSyncStrategy=periodic. A sync will only be performed if a write has occurred to the journal since the last disk sync or when the journal rolls over to a new journal file.  
 
 
  journalDiskSyncStrategy   
  always   
 From ActiveMQ 5.14.0: this setting configures the disk sync policy. The list of available sync strategies are (in order of decreasing safety, and increasing performance): 
 
  always Ensure every journal write is 

[CONF] Apache ActiveMQ > Configuring Transports

2018-10-25 Thread Gary Tully (Confluence)
Title: Message Title



 
 
 
There's 1 new edit on this page 
 
 
 
 
 
 
  
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Configuring Transports 
 
 
  
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 
 
 
 
Gary Tully edited this page 
 
 
  
 
 

 
 
 
  
 
 
  
 
 
  
 
 
 
 
 
 
 
 
 
 
Here's the version comment 
 
 
 
 
 
 
 
 
 
 
 
 
 
  
 
 
  
 
 
  
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 
 
 
 
Gary Tully edited at 09:36 AM 
 
 
  
 
 

 
 
 
 
 
 
 
 
 obsolete enableStatusMonitor  
 
 
  
 
 
  
 
 

 
 
 
  
 
 
  
 
 
  
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Here's what changed: 
 
 
 
 
 
 
 
 
 
 
 ... 
 
 
 
 
 
 
 
 
 
 property name  
 default  
 description  
 
 
   allowLinkStealing 
  false   
 This is enabled for default for MQTT transport. Link Stealing is where the last of two or more connections with the same id (clientID for JMS) is deemed the valid connection and the older one is closed by the broker.  
 
 
  discoveryURI   
  null   
 If set, the multicast discovery address for client connections to find the broker.  
 
 
  enableStatusMonitor   
  falseWill monitor connections to determine if they are blocked.   
  Obsolete - replaced with the InactivityMonitor functionality   
 
 
  name   
  null   
 The name of the TransportConnector instance.  
 
 
  rebalanceClusterClients   
  false   
 Will automatically re-balance clients across the cluster on changes of topology.  
 
 
  updateClusterClients   
  false   
 If enabled, will update client connections (if they use the failover:// transport) of changes to the broker cluster.  
 
 
  updateClusterClientsOnRemove   
  false   
 Will update clients if a broker is removed from the cluster.  
 
 
  updateClusterFilter   
  null   
 Comma separated list of regular expressions. Brokers with a name matching the pattern will be included for client updates.  
 
 
  uri   
  null   
 The bind address for the transport.  
 
 
  warnOnRemoteClose   
false 
If set, issue a WARN log event if a client closes its connection in an abrupt manner, one example being a load-balancer health check. For a regular JMS client this WARN message is indicative of a client going away without a connection.close (5.16) 
 
 
 
 ... 
 
 
 
 Code Block 
 
 
 
 
 
 
 
 
language 
xml 
 
 
  
 
 
 
 
 
   

   
  enableStatusMonitor="true"/> 
   

   
  
 
 
 ...  
 
 
  
 
 
  
 
 
  
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Go to page history 
 
 
  
 
 
  
 
 
  
 
 
  
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
View page 
 
 
  
 
 
  
 
 
  
 
 
  
 
 
 
 
 
 
 
 
 
 
Stop watching space
• 
 
 
 
 
 
 
Manage notifications 
 
 
 
 
 
 
 
 
 
 
  
 
 
This message was sent by Atlassian Confluence 6.9.0  
 
 
  
 
 
 
 
 
 
 
 
 




[CONF] Apache ActiveMQ > Configuring Transports

2018-09-20 Thread Gary Tully (Confluence)
Title: Message Title



 
 
 
There's 1 new edit on this page 
 
 
 
 
 
 
  
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Configuring Transports 
 
 
  
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 
 
 
 
Gary Tully edited this page 
 
 
  
 
 

 
 
 
  
 
 
  
 
 
  
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Here's what changed: 
 
 
 
 
 
 
 
 
 
 
 ... 
 
 
 
 
 
 
 
 
 
 property name  
 default  
 description  
 
 
   allowLinkStealing 
  false   
 This is enabled for default for MQTT transport. Link Stealing is where the last of two or more connections with the same id (clientID for JMS) is deemed the valid connection and the older one is closed by the broker.  
 
 
  discoveryURI   
  null   
 If set, the multicast discovery address for client connections to find the broker.  
 
 
  enableStatusMonitor   
  false   
 Will monitor connections to determine if they are blocked.  
 
 
  name   
  null   
 The name of the TransportConnector instance.  
 
 
  rebalanceClusterClients   
  false   
 Will automatically re-balance clients across the cluster on changes of topology.  
 
 
  updateClusterClients   
  false   
 If enabled, will update client connections (if they use the failover:// transport) of changes to the broker cluster.  
 
 
  updateClusterClientsOnRemove   
  false   
 Will update clients if a broker is removed from the cluster.  
 
 
  updateClusterFilter   
  null   
 Comma separated list of regular expressions. Brokers with a name matching the pattern will be included for client updates.  
 
 
  uri   
  null   
 The bind address for the transport.  
 
 
 
 ... 
 
 
 
 
  warnOnRemoteClose   
false 
If set, issue a WARN log event if a client closes its connection in an abrupt manner, one example being a load-balancer health check. For a regular JMS client this WARN message is indicative of a client going away without a connection.close (5.16) 
 
 
 
Example configuration: 
 
 
 
 Code Block 
 
 
 
 
 
 
 
 
language 
xml 
 
 
  
 
 
 
 
 
   

   
  
   

   
  
 
 
 ...  
 
 
  
 
 
  
 
 
  
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Go to page history 
 
 
  
 
 
  
 
 
  
 
 
  
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
View page 
 
 
  
 
 
  
 
 
  
 
 
  
 
 
 
 
 
 
 
 
 
 
Stop watching space
• 
 
 
 
 
 
 
Manage notifications 
 
 
 
 
 
 
 
 
 
 
  
 
 
This message was sent by Atlassian Confluence 6.9.0  
 
 
  
 
 
 
 
 
 
 
 
 




[CONF] Apache ActiveMQ > Message Redelivery and DLQ Handling

2018-06-12 Thread Gary Tully (Confluence)
Title: Message Title



 
 
 
There's 1 new edit on this page 
 
 
 
 
 
 
  
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Message Redelivery and DLQ Handling 
 
 
  
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 
 
 
 
Gary Tully edited this page 
 
 
  
 
 

 
 
 
  
 
 
  
 
 
  
 
 
 
 
 
 
 
 
 
 
Here's the version comment 
 
 
 
 
 
 
 
 
 
 
 
 
 
  
 
 
  
 
 
  
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 
 
 
 
Gary Tully edited at 09:02 AM 
 
 
  
 
 

 
 
 
 
 
 
 
 
 remove incorrect ref to BrokerInfo  
 
 
  
 
 
  
 
 

 
 
 
  
 
 
  
 
 
  
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Here's what changed: 
 
 
 
 
 
 
 
 
 
 
 ... 
 
A transacted session is used and rollback() is called. 
A transacted session is closed before commit() is called. 
A session is using CLIENT_ACKNOWLEDGE and Session.recover() is called. 
A client connection times out (perhaps the code being executed takes longer than the configured time-out period). 
  The broker transmits the default delivery policy that he prefers to a client connection in his BrokerInfo command packet. But the client A client can override the policy settings by using the ActiveMQConnection.getRedeliveryPolicy() method or ActiveMQConnectionFactory.getRedeliveryPolicyMap()   methods: 
 
 
 
 Code Block 
 
 
 
 
 
 
 
 
 
java 
 
 
 
java 
 
 
  
 
 
 
 
 RedeliveryPolicy policy = connection.getRedeliveryPolicy();
policy.setInitialRedeliveryDelay(500);
policy.setBackOffMultiplier(2);
policy.setUseExponentialBackOff(true);
policy.setMaximumRedeliveries(2);
  
 
 
 ...  
 
 
  
 
 
  
 
 
  
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Go to page history 
 
 
  
 
 
  
 
 
  
 
 
  
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
View page 
 
 
  
 
 
  
 
 
  
 
 
  
 
 
 
 
 
 
 
 
 
 
Stop watching space
• 
 
 
 
 
 
 
Manage notifications 
 
 
 
 
 
 
 
 
 
 
  
 
 
This message was sent by Atlassian Confluence 6.9.0  
 
 
  
 
 
 
 
 
 
 
 
 




[CONF] Apache ActiveMQ > Virtual Destinations

2018-05-10 Thread Gary Tully (Confluence)
Title: Message Title



 
 
 
 
 
 
 

Gary Tully edited a page 
 
 
  
 
 
 
 
 
 
 
  
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Virtual Destinations 
 
 
  
 
 
 
 
 
 
 ... 
 
 
 
 
Option 
Default 
Description 
 
 
selectorAware 
false 
only messages that match one of the existing subscribers are actually dispatched. Using this option prevents the build up of unmatched messages when selectors are used by exclusive consumers 
 
 
local 
false 
when true, don't fan out messages that were received over a network 
 
 
concurrentSend 
false 
when true, use an executor to fanout such that sends occur in parallel. This allows the journal to batch writes which will reduce disk io (5.12) 
 
 
transactedSend 
false 
when true, use a transaction for fanout sends such that there is a single disk sync. A local broker transaction will be created if there is no client transaction (5.13) 
 
 
dropOnResourceLimit 
false 
when true, ignore any ResourceAllocationException thrown during fanout (see: sendFailIfNoSpace policy entry) (5.16) 
 
 
  setOriginalDestination   
true 
when true, the destination on the forwarded message is set to the consumer queue and the originalDestination message property tracks the virtual topic (5.16) 
 
 
 
    VirtualSelectorCacheBrokerPlugin  ...  
 
 
  
 
 
 
 
 
 
 
 
 
 

View page
• 
 
 
 
 
 
 

Like 
 
 
  
 
 
  
 
 
  
 
 
  
 
 
 
 
 
 
 
 
 
 
Stop watching space
• 
 
 
 
 
 
 
Manage notifications 
 
 
 
 
 
 
 
 
 
 
  
 
 
This message was sent by Atlassian Confluence 5.8.17  
 
 
  
 
 
 
 
 
 
 
 
 




[CONF] Apache ActiveMQ > Virtual Destinations

2018-04-13 Thread Gary Tully (Confluence)
Title: Message Title



 
 
 
 
 
 
 

Gary Tully edited a page 
 
 
  
 
 
 
 
 
 
 
  
 
 
 
 
 
 
Change comment: VirtualSelectorCacheBrokerPlugin 
 
 
  
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Virtual Destinations 
 
 
  
 
 
 
 
 
 
 ... 
 
 
 
 
Option 
Default 
Description 
 
 
selectorAware 
false 
only messages that match one of the existing subscribers are actually dispatched. Using this option prevents the build up of unmatched messages when selectors are used by exclusive consumers 
 
 
local 
false 
when true, don't fan out messages that were received over a network 
 
 
concurrentSend 
false 
when true, use an executor to fanout such that sends occur in parallel. This allows the journal to batch writes which will reduce disk io (5.12) 
 
 
transactedSend 
false 
when true, use a transaction for fanout sends such that there is a single disk sync. A local broker transaction will be created if there is no client transaction (5.13) 
 
 
dropOnResourceLimit 
false 
when true, ignore any ResourceAllocationException thrown during fanout (see: sendFailIfNoSpace policy entry) (5.16) 
 
 
 
    VirtualSelectorCacheBrokerPlugin   When selectorAware=true, only active consumers are condidered for selector matching. If consumers disconnect and reconnect they will miss messages. The intent of selectorAware=true is to not have messages build up. The virtualSelectorCacheBrokerPlugin provides a cache that tracks the selectors associated with a destination by a consumers such that they can apply in the absense of that consumer. In this way the just the selected messages build up. The existing set of selectors can be persisted such that it can be recovered on restart. the plugin is applied in the normal way to the plugins section.  
 
 
 
 Code Block 
 
 
 
 
 

 

  
 
 
  Note: the persistFile option uses java serialisation that should be locked down with an appropriate jdk.serialFilter that allows ConcurrentHashMap      Composite Destinations Composite Destinations allow for one-to-many relationships on individual destinations; the main use case is for composite queues. For example when a message is sent to queue A you may want to forward it also to queues B and C and topic D. Composite destinations are then a mapping from a virtual destination to a collection of other physical destinations. In this case the mapping is broker side and the client is unaware of the mapping between the destinations. This is different from client side Composite Destinations where the client uses a URL notation to specify the actual physical destinations that a message must be sent to. ...  
 
 
  
 
 
 
 
 
 
 
 
 
 

View page
• 
 
 
 
 
 
 

Like 
 
 
  
 
 
  
 
 
  
 
 
  
 
 
 
 
 
 
 
 
 
 
Stop watching space
• 
 
 
 
 
 
 
Manage notifications 
 
 
 
 
 
 
 
 
 
 
  
 
 
This message was sent by Atlassian Confluence 5.8.17  
 
 
  
 
 
 
 
 
 
 
 
 




[CONF] Apache ActiveMQ > Networks of Brokers

2018-02-28 Thread Gary Tully (Confluence)
Title: Message Title



 
 
 
 
 
 
 

Gary Tully edited a page 
 
 
  
 
 
 
 
 
 
 
  
 
 
 
 
 
 
Change comment: selectorAware attribute in 5.16 
 
 
  
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Networks of Brokers 
 
 
  
 
 
 
 
 
 
 ...  N.B. You can only use wildcards in the excludedDestinations and dynamicallyIncludedDestinations properties. N.B. Do not change the name of the bridge or the name of the Broker if you are using durable topic subscribers across the network. Internally ActiveMQ uses the network name and broker name to build a unique but repeatable durable subscriber name for the network.  Stuck Messages  ...  By default, it is not permissible for a message to be replayed back to the broker from which it came. This ensures that messages do not loop when duplex or by directional network connectors are configured. Occasionally it is desirable to allow replay for queues. Consider a scenario where a bidirectional bridge exists between a broker pair. Producers and Consumers get to randomly choose a broker using the failover transport. If one broker is restarted for maintenance, messages accumulated on that broker, that crossed the network bridge, will not be available to consumers till they reconnect to the broker. One solution to this problem is to force a client reconnect using rebalanceClusterClients. Another, is to allow replay of messages back to the origin as there is no local consumer on that broker. From version 5.16.0, using selectorAware=true the replay can occur if there are no local consumers who's selectors match the target message.  There is a destination policy that allows this behavior for queues by configuring a conditionalNetworkBridgeFilterFactory with replayWhenNoConsumers=true. The conditionalNetworkBridgeFilterFactory provides an optional replayDelay based on the broker-in time. ...  
 
 
  
 
 
 
 
 
 
 
 
 
 

View page
• 
 
 
 
 
 
 

Like 
 
 
  
 
 
  
 
 
  
 
 
  
 
 
 
 
 
 
 
 
 
 
Stop watching space
• 
 
 
 
 
 
 
Manage notifications 
 
 
 
 
 
 
 
 
 
 
  
 
 
This message was sent by Atlassian Confluence 5.8.17  
 
 
  
 
 
 
 
 
 
 
 
 




[CONF] Apache ActiveMQ > Support

2018-02-21 Thread Gary Tully (Confluence)
Title: Message Title



 
 
 
 
 
 
 

Gary Tully edited a page 
 
 
  
 
 
 
 
 
 
 
  
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Support 
 
 
  
 
 
 
 
 
 
 ... 
 
Which version of ActiveMQ 
What platform of Java (e.g., Java SE 6 with JRE/JDK 1.6.0 or J2SE 5 with JRE/JDK 1.5.0) 
Any particular application/web server or container being used - if so what version? 
Stack traces generally really help! If in doubt include the whole thing; often exceptions get wrapped in other exceptions and the exception right near the bottom explains the actual error, not the first few lines at the top. It's very easy for us to skim-read past unnecessary parts of a stack trace. 
Log output (e.g., data/activemq.log) can be useful too; sometimes enabling DEBUG logging can help 
Your code & configuration files are often useful 
 ... 
 
 apifocal is a Professional Services company. Headquartered near Washington, DC, USA, APIfocal provides consulting and training for leveraging the Apache Integration stack and commercial ESBs at large scale, adding automation and devops capabilities. 
 Media Driver provides consulting services and management tools for Apache ActiveMQ and the Apache Integration stack for both the commercial and public sector.  We bring a full suite of project delivery services including business and technical analysis, proof of concepts, architectural guidance, best practice integration, and project management.  Media Driver offers training classes for developers and administrators, as well as middleware management software. 
 Rogue Wave / OpenLogic has a dedicated team of OSS experts offering round-the-clock Production Support with competitive SLAs for troubleshooting ActiveMQ issues and outages. Rogue Wave offers a comprehensive week-long instructor-led training program for developers and admins. Rogue Wave OpenLogic also provides Architecture and Design Consulting, and a Developer Support contract to assist in the development of messaging applications.  
 Red Hat offers JBoss A-MQ, a supported distribution of Apache ActiveMQ and Apache ActiveMQ Artemis, that include Enterprise Developer and Production Support, and offer training and consultancy for enterprise deployments. 
 Savoir Technologies, Inc provides enterprise consulting, training and support for ActiveMQ and a host of other Apache service containers. Savoir can provide best practice mentoring for developing with ActiveMQ, as well as architectural/design reviews, troubleshooting and SOA infrastructure implementations. Savoir's staff includes some of the contributors of ActiveMQ who are on the ground consulting and are familiar with real world implementations and issues. 
 Total Transaction Management (TTM) provides ActiveMQ consulting and support, as well as security and monitoring add-on products and reference guide for ActiveMQ. 
 Tomitribe are experts in Tomcat and ActiveMQ integration, champions of Open Source and Java EE.  Tomitribe offers consulting, training and support for TomEE, Tomcat, ActiveMQ, CXF and more. 
 TytoEASE offers support, consulting and training on enterprise ready open source projects including ActiveMQ.   Support offerings are at three levels with guaranteed SLA's. The company's consulting work is short term to help troubleshoot, fine-tune, do architectural reviews or help with initial design.  TytoEASE's focus is on the Enterprise with how customers integrate open source with their current technologies. 
  
 
 
  
 
 
 
 
 
 
 
 
 
 

View page
• 
 
 
 
 
 
 

Like 
 
 
  
 
 
  
 
 
  
 
 
  
 
 
 
 
 
 
 
 
 
 
Stop watching space
• 
 
 
 
 
 
 
Manage notifications 
 
 
 
 
 
 
 
 
 
 
  
 
 
This message was sent by Atlassian Confluence 5.8.17  
 
 
  
 
 
 
 
 
 
 
 
 




[CONF] Apache ActiveMQ > Virtual Destinations

2018-02-19 Thread Gary Tully (Confluence)
Title: Message Title



 
 
 
 
 
 
 

Gary Tully edited a page 
 
 
  
 
 
 
 
 
 
 
  
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Virtual Destinations 
 
 
  
 
 
 
 
 
 
 ... Here is an example of how to exclude virtual topic consumer queues from a default network bridge that will forward all queues and topics: 
 tcp://localhost:61617)">
 ...  
 
 
  
 
 
 
 
 
 
 
 
 
 

View page
• 
 
 
 
 
 
 

Like 
 
 
  
 
 
  
 
 
  
 
 
  
 
 
 
 
 
 
 
 
 
 
Stop watching space
• 
 
 
 
 
 
 
Manage notifications 
 
 
 
 
 
 
 
 
 
 
  
 
 
This message was sent by Atlassian Confluence 5.8.17  
 
 
  
 
 
 
 
 
 
 
 
 




[CONF] Apache ActiveMQ > Virtual Destinations

2018-02-19 Thread Gary Tully (Confluence)
Title: Message Title



 
 
 
 
 
 
 

Gary Tully edited a page 
 
 
  
 
 
 
 
 
 
 
  
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Virtual Destinations 
 
 
  
 
 
 
 
 
 
 ... Here is an example of how to do that with a exclude virtual topic consumer queues from a default network bridge that will forward all queues and topics by default: 
 tcp://localhost:61617)">
 ...  
 
 
  
 
 
 
 
 
 
 
 
 
 

View page
• 
 
 
 
 
 
 

Like 
 
 
  
 
 
  
 
 
  
 
 
  
 
 
 
 
 
 
 
 
 
 
Stop watching space
• 
 
 
 
 
 
 
Manage notifications 
 
 
 
 
 
 
 
 
 
 
  
 
 
This message was sent by Atlassian Confluence 5.8.17  
 
 
  
 
 
 
 
 
 
 
 
 




[CONF] Apache ActiveMQ > Virtual Destinations

2018-02-19 Thread Gary Tully (Confluence)
Title: Message Title



 
 
 
 
 
 
 

Gary Tully edited a page 
 
 
  
 
 
 
 
 
 
 
  
 
 
 
 
 
 
Change comment: enforce the either or choice on bridging for vt 
 
 
  
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Virtual Destinations 
 
 
  
 
 
 
 
 
 
 ... Avoiding Duplicate Message in a Network of Brokers  You have to make sure that the messages sent to the Consumer.*.VirtualTopic.> destination are not forwarded when you're using both queue-based and non-queue based subscribers to the virtual topic (that is, if you have normal topic subscribers to the virtual topic). If you use Virtual Topics in a network of brokers, it is likely you will get duplicate messages if you use the default network configuration. This is because a network node will not only forward message sent to the virtual topic, but also the associated physical queues. To fix this, you should disable forwarding messages on the associated physical queues.TLDR: bridge consumer queues or virtual topics, not both.   Typically you would network consumer queues. In this case it is important to not bridge any normal topic consumer on the virtual topic because any forwarded message would again get fanned out to consumer queues on the networked broker, leading to duplicates.   It is also possible to bridge the virtual topic in which case it is necessary exclude the consumer queues from any network connector configuration.   Here is an example of how to do that with a network bridge that will forward all queues and topics by default: 
 tcp://localhost:61617)">
 ...  
 
 
  
 
 
 
 
 
 
 
 
 
 

View page
• 
 
 
 
 
 
 

Like 
 
 
  
 
 
  
 
 
  
 
 
  
 
 
 
 
 
 
 
 
 
 
Stop watching space
• 
 
 
 
 
 
 
Manage notifications 
 
 
 
 
 
 
 
 
 
 
  
 
 
This message was sent by Atlassian Confluence 5.8.17  
 
 
  
 
 
 
 
 
 
 
 
 




[CONF] Apache ActiveMQ > JMX

2018-01-03 Thread Gary Tully (Confluence)
Title: Message Title



 
 
 
 
 
 
 

Gary Tully edited a page 
 
 
  
 
 
 
 
 
 
 
  
 
 
 
 
 
 
Change comment: note on rmiServerPort 
 
 
  
 
 
 
 
 
 
 
 
 
 
 
 
 
 
JMX 
 
 
  
 
 
 
 
 
 
 ... 
 
 
 
 
 Property Name  
 Default Value  
 Description  
 
 
 useMBeanServer  
 true  
 If true then it avoids creating a new MBean server if a MBeanServer has already been created in the JVM  
 
 
 jmxDomainName  
 org.apache.activemq  
 The jmx domain that all objects names will use  
 
 
 createMBeanServer  
 true  
 If we should create the MBeanServer is none is found.  
 
 
 createConnector  
 false  
  Please refer to Java Management guide to configure the server for remote management and .   Note: if set to true:  
 
 lock down the endpoint serialisation with an appropriate  jdk.serialFilter  
  configure rmiServerPort and connectorHost to lock down the RMI server interface binding   
  
 
 
 connectorPort  
 1099  
 The port that the JMX connector will use  
 
 
 connectorHost  
 localhost  
 The host that the JMX connector and RMI server (if rmiServerPort>0) will use  
 
 
 rmiServerPort  
 0  
 The RMI server port, handy if port usage needs to be restricted behind a firewall  
 
 
 connectorPath  
 /jmxrmi  
 The path that JMX connector will be registered under  
 
 
 findTigerMBeanServer  
 true  
 Enables/disables the searching for the Java 5 platform MBeanServer  
 
 
 suppressMBean  
  
List of MBean name patters to ignore 
 
 
 
  
 
 
  
 
 
 
 
 
 
 
 
 
 

View page
• 
 
 
 
 
 
 

Like 
 
 
  
 
 
  
 
 
  
 
 
  
 
 
 
 
 
 
 
 
 
 
Stop watching space
• 
 
 
 
 
 
 
Manage notifications 
 
 
 
 
 
 
 
 
 
 
  
 
 
This message was sent by Atlassian Confluence 5.8.17  
 
 
  
 
 
 
 
 
 
 
 
 




[CONF] Apache ActiveMQ > JMX

2017-11-24 Thread Gary Tully (Confluence)
Title: Message Title



 
 
 
 
 
 
 

Gary Tully edited a page 
 
 
  
 
 
 
 
 
 
 
  
 
 
 
 
 
 
 
 
 
 
 
 
 
 
JMX 
 
 
  
 
 
 
 
 
 
 ... 
 
 
 
 
 Property Name  
 Default Value  
 Description  
 
 
 useMBeanServer  
 true  
 If true then it avoids creating a new MBean server if a MBeanServer has already been created in the JVM  
 
 
 jmxDomainName  
 org.apache.activemq  
 The jmx domain that all objects names will use  
 
 
 createMBeanServer  
 true  
 If we should create the MBeanServer is none is found.  
 
 
 createConnector  
 false  
  Please refer to Java Management guide to configure the server for remote management and lock down the endpoint serialisation with an appropriate  jdk.serialFilter   
 
 
 connectorPort  
 1099  
 The port that the JMX connector will use  
 
 
 connectorHost  
 localhost  
 The host that the JMX connector and RMI server (if rmiServerPort>0) will use  
 
 
 rmiServerPort  
 0  
 The RMI server port, handy if port usage needs to be restricted behind a firewall  
 
 
 connectorPath  
 /jmxrmi  
 The path that JMX connector will be registered under  
 
 
 findTigerMBeanServer  
 true  
 Enables/disables the searching for the Java 5 platform MBeanServer  
 
 
 suppressMBean  
  
List of MBean name patters to ignore 
 
 
 
  
 
 
  
 
 
 
 
 
 
 
 
 
 

View page
• 
 
 
 
 
 
 

Like 
 
 
  
 
 
  
 
 
  
 
 
  
 
 
 
 
 
 
 
 
 
 
Stop watching space
• 
 
 
 
 
 
 
Manage notifications 
 
 
 
 
 
 
 
 
 
 
  
 
 
This message was sent by Atlassian Confluence 5.8.17  
 
 
  
 
 
 
 
 
 
 
 
 




[CONF] Apache ActiveMQ > JMX

2017-11-24 Thread Gary Tully (Confluence)
Title: Message Title



 
 
 
 
 
 
 

Gary Tully edited a page 
 
 
  
 
 
 
 
 
 
 
  
 
 
 
 
 
 
Change comment: add ref to the java management guide for remote jmx access 
 
 
  
 
 
 
 
 
 
 
 
 
 
 
 
 
 
JMX 
 
 
  
 
 
 
 
 
 
 ... Apache ActiveMQ has extensive support for JMX to allow you to monitor and control the behavior of the broker via the JMX MBeans.  AMQ Version  >= 5.8.0   The MBean naming documented here applies to the 5.8.0 and later versions of ActiveMQ. Earlier versions of ActiveMQ used a variation of the naming; most, if not all, of the objects, attributes, and operations exist in those earlier versions, but the naming has changed.  Using JMX to monitor Apache ActiveMQ ... 2. Run a JMX console 
 
 
 
 Code Block 
 
 
 
 
 $ jconsole   
 
 
 3. Connect to the given JMX URL: The ActiveMQ broker should appear in the list of local connections, if you are running JConsole on the same host as ActiveMQ.  To connect to a remote ActiveMQ instance, or if the local process does not show up, use Remote Process option, and enter an URL. Here is an example localhost URL:  
 
 
 
 Code Block 
 
 
 
 
 
service:jmx:rmi:///jndi/rmi://localhost:1099/jmxrmi

  
 
 
 
 
 
 
 Info 
 
 
 
 
  ActiveMQ logs the JMX url at INFO level during startup.   
 
 
   JMX remote access   Remote connections to JMX are not enabled by default in the activemq.xml for security reasons. Please refer to Java Management guide to configure the broker for remote management.       Using the Apache ActiveMQ version on OS X it appears as follows:  ... And you will be forced to login.  Advanced JMX Configuration   The activemq.xml configuration file allows you to configure how ActiveMQ is exposed to JMX for management.  In some cases, you may need to tweak some of it's settings such as what port is used.   Example:  
 
 
 
 Code Block 
 
 
 
 
 

	
	   
	


  
 
 
  In 4.0.1 or later, on Java 1.5 or later we try and use the default platform MBeanServer (so that things like the JVM threads & memory settings are visible).   If you wish to change the Java 5 JMX settings you can use various JMX system properties   For example you can enable remote JMX connections to the Sun JMX connector, via setting the following environment variable (using set or export depending on your platform). These settings only configure the Sun JMX connector within Java 1.5+, not the JMX connector that ActiveMQ creates by default.  
 
 
 
 Code Block 
 
 
 
 
 
ACTIVEMQ_SUNJMX_START=-Dcom.sun.management.jmxremote=true -Dcom.sun.management.jmxremote.port=1616 \
-Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false

  
 
 
  (The ACTIVEMQ_SUNJMX_START environment variable is simple used by the "activemq" startup script, as additional startup parameters for java. If you start ActiveMQ directly, you'll have to pass these parameters yourself.)   Selective MBean registration  In situations where you need to scale your broker to large number of connections, destinations and consumers it can become very expensive to keep JMX MBeans for all those objects. Instead of turning off JMX completely, starting with 5.12.0, you can selectively suppress registration of some types of MBeans and thus help your broker scale, while still having a basic view of the broker state. ... 
 
 
 
 
 Property Name  
 Default Value  
 Description  
 
 
 useMBeanServer  
 true  
 If true then it avoids creating a new MBean server if a MBeanServer has already been created in the JVM  
 
 
 jmxDomainName  
 org.apache.activemq  
 The jmx domain that all objects names will use  
 
 
 createMBeanServer  
 true  
 If we should create the MBeanServer is none is found.  
 
 
 createConnector  
  true   
  If we should create a JMX connector (to allow remote management) for the MBeanServerfalse   
  Please refer to Java Management guide to configure the server for remote management   
 
 
 connectorPort  
 1099  
 The port that the JMX connector will use  
 
 
 connectorHost  
 localhost  
 The host that the JMX connector and RMI server (if rmiServerPort>0) will use  
 
 
 rmiServerPort  
 0  
 The RMI server port, handy if port usage needs to be restricted behind a firewall  
 
 
 connectorPath  
 /jmxrmi  
 The path that JMX connector will be registered under  
 
 
 findTigerMBeanServer  
 true  
 Enables/disables the searching for the Java 5 platform MBeanServer  
 
 
 suppressMBean  
  
List of MBean name patters to ignore 
 
 
 
  
 
 
  
 
 
 
 
 
 
 
 
 
 

View page
• 
 
 
 
 
 
 

Like 
 
 
  
 
 
  
 
 
  
 
 
  
 
 
 
 
 
 
 
 
 
 
Stop watching space
• 
 
 
 
 
 
 
Manage notifications 
 
 
 
 
 
 
 
 
 
 
  
 
 
This message was sent by Atlassian Confluence 5.8.17  
 
 
  
 
 
 
 
 
 
 
 
 




[CONF] Apache ActiveMQ > Message Groups

2017-10-27 Thread Gary Tully (Confluence)
Title: Message Title



 
 
 
 
 
 
 

Gary Tully edited a page 
 
 
  
 
 
 
 
 
 
 
  
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Message Groups 
 
 
  
 
 
 
 
 
 
 ... As the appropriate test case shows, adding a small time pause before dispatching or setting a minimum consumer number, ensures equal message group distribution. 
 
 
 
 Note 
 
 
 
 
 
 
 
 
title 
Availability 
 
 
  
 
 
 
 
  Available since version 5.3   
 
 
      Competing demands of memory consumption, load balancing, complexity, etc.   The default behavior which is limited to 1024 message groups in an LRU cache may not match you expectation w.r.t message order... some detail to explain:   MessageGroupHashBucket and SimpleMessageGroupMap message groups work by associating each group with a consumer.   SimpleMessageGroupMap keeps track of every group but suffers from unbounded memory use.   MessageGroupHashBucked keeps track of every group and has bounded memory use.   CachedMessageGroupMap has bounded memory use, but only keeps track of up to 1024 (or the maximum configured size) groups, then loses track of any groups older than the newest 1024.   In this way, if there are more groups than the maximum, ordering will be lost for the oldest groups.   Typically users would close groups such that the in memory set can be retained below the configured limits. Some usefull discussion at [  
 
 
 
 JIRA 
 
 
 
 
 
 
 
 
server 
ASF JIRA 
 
 
serverId 
5aa69414-a9e9-3523-82ec-879b028fb15b 
 
 
key 
AMQ-6851 
 
 
  
 
 
 ]  See 
 
 How do Message Groups compare to Selectors  
  
 
 
  
 
 
 
 
 
 
 
 
 
 

View page
• 
 
 
 
 
 
 

Like 
 
 
  
 
 
  
 
 
  
 
 
  
 
 
 
 
 
 
 
 
 
 
Stop watching space
• 
 
 
 
 
 
 
Manage notifications 
 
 
 
 
 
 
 
 
 
 
  
 
 
This message was sent by Atlassian Confluence 5.8.17  
 
 
  
 
 
 
 
 
 
 
 
 




[CONF] Apache ActiveMQ > Per Destination Policies

2017-10-25 Thread Gary Tully (Confluence)
Title: Message Title



 
 
 
 
 
 
 

Gary Tully edited a page 
 
 
  
 
 
 
 
 
 
 
  
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Per Destination Policies 
 
 
  
 
 
 
 
 
 
 ...  The following are examples of different policies that can be customized on a per destination basis:  
 
 Dispatch Policies  
 
 
  An example from the demos https://git-wip-us.apache.org/repos/asf?p=activemq.git;a=blob;f=assembly/src/release/examples/conf/activemq-demo.xml;hb=HEAD:     
 
 
  
 
 
   
< 
bean 
  
class 
= 
"org.springframework.beans.factory.config.PropertyPlaceholderConfigurer" 
/> 
 
 
  
 
 
   
< 
broker 
  
persistent 
= 
"false" 
  
brokerName 
= 
"${brokername}" 
  
xmlns 
= 
"http://activemq.apache.org/schema/core" 
> 
 
 
 
 
 
 
 
< 
destinationPolicy 
> 
 
 
   
< 
policyMap 
> 
 
 
 
< 
policyEntries 
> 
 
 
   
< 
policyEntry 
  
topic="FOO.>"> 
 
 
 
< 
dispatchPolicy 
> 
 
 
   
< 
roundRobinDispatchPolicy 
  
/> 
 
 
 
 
dispatchPolicy 
> 
 
 
 
< 
subscriptionRecoveryPolicy 
> 
 
 
   
< 
lastImageSubscriptionRecoveryPolicy 
  
/> 
 
 
 
 
subscriptionRecoveryPolicy 
> 
 
 
   
 
policyEntry 
> 
 
 
   
  
 
 
   
< 
policyEntry 
  
topic="ORDERS.>"> 
 
 
 
< 
dispatchPolicy 
> 
 
 
   
< 
strictOrderDispatchPolicy 
  
/> 
 
 
 
 
dispatchPolicy 
> 
 
 
  
 
 
 
 
 
 
 
< 
subscriptionRecoveryPolicy 
> 
 
 
   
< 
timedSubscriptionRecoveryPolicy 
  
recoverDuration 
= 
"6" 
  
/> 
 
 
 
 
subscriptionRecoveryPolicy 
> 
 
 
   
 
policyEntry 
> 
 
 
 
  
 
 
   
< 
policyEntry 
  
topic="PRICES.>"> 
 
 
 
 
 
 
 
< 
pendingMessageLimitStrategy 
> 
 
 
   
< 
constantPendingMessageLimitStrategy 
  
limit 
= 
"10" 
/> 
 
 
 
 
pendingMessageLimitStrategy 
> 
 
 
  
 
 
 
 
 
 
 
< 
subscriptionRecoveryPolicy 
> 
 
 
   
< 
timedSubscriptionRecoveryPolicy 
  
recoverDuration 
= 
"1" 
  
/> 
 
 
 
 
subscriptionRecoveryPolicy 
> 
 
 
 
  
 
 
   
 
policyEntry 
> 
 
 
   
< 
policyEntry 
  
tempTopic 
= 
"true" 
  
advisoryForConsumed 
= 
"true" 
  
/> 
 
 
   
< 
policyEntry 
  
tempQueue 
= 
"true" 
  
advisoryForConsumed 
= 
"true" 
  
/> 
 
 
 
 
policyEntries 
> 
 
 
   
 
policyMap 
> 
 
 
 
 
destinationPolicy 
> 
 
 
   
 
broker 
> 
 
 
 
beans 
> 
  
 
 
  
 
 
 
 
 
 
 
 
 
 

View page
• 
 
 
 
 
 
 

Like 
 
 
  
 
 
  
 
 
  
 
 
  
 
 
 
 
 
 
 
 
 
 
Stop watching space
• 
 
 
 
 
 
 
Manage notifications 
 
 
 
 
 
 
 
 
 
 
  
 
 
This message was sent by Atlassian Confluence 5.8.17  
 
 
  
 
 
 
 
 
 
 
 
 




[CONF] Apache ActiveMQ > Virtual Destinations

2017-10-25 Thread Gary Tully (Confluence)
Title: Message Title



 
 
 
 
 
 
 

Gary Tully edited a page 
 
 
  
 
 
 
 
 
 
 
  
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Virtual Destinations 
 
 
  
 
 
 
 
 
 
 ... 

   ... Note that making a topic virtual does add a small CPU overhead when sending messages to the topic but it is fairly small. 
 
 
 
 
Option 
Default 
Description 
 
 
selectorAware 
false 
only messages that match one of the existing subscribers are actually dispatched. Using this option prevents the build up of unmatched messages when selectors are used by exclusive consumers 
 
 
local 
false 
when true, don't fan out messages that were received over a network 
 
 
concurrentSend 
false 
when true, use an executor to fanout such that sends occur in parallel. This allows the journal to batch writes which will reduce disk io (5.12) 
 
 
transactedSend 
false 
when true, use a transaction for fanout sends such that there is a single disk sync. A local broker transaction will be created if there is no client transaction (5.13) 
 
 
dropOnResourceLimit 
false 
when true, ignore any ResourceAllocationException thrown during fanout (see: sendFailIfNoSpace policy entry) (5.16) 
 
 
 
   Composite Destinations Composite Destinations allow for one-to-many relationships on individual destinations; the main use case is for composite queues. For example when a message is sent to queue A you may want to forward it also to queues B and C and topic D. Composite destinations are then a mapping from a virtual destination to a collection of other physical destinations. In this case the mapping is broker side and the client is unaware of the mapping between the destinations. This is different from client side Composite Destinations where the client uses a URL notation to specify the actual physical destinations that a message must be sent to. ... 

   ... By default, subscribers cannot consume messages directly from a composite queue or topic - it is a logical construct only. Given the configuration above, subscribers can only consume messages from FOO and BAR; but not MY.QUEUE. ...     ... Messages sent to IncomingOrders will all be copied and forwarded to Notifications, before being placed on the physical IncomingOrders queue for consumption by subscribers. ......     Avoiding Duplicate Message in a Network of Brokers ... 
 
 ...      
 
 
  
 
 
 
 
 
 
 
 
 
 

View page
• 
 
 
 
 
 
 

Like 
 
 
  
 
 
  
 
 
  
 
 
  
 
 
 
 
 
 
 
 
 
 
Stop watching space
• 
 
 
 
 
 
 
Manage notifications 
 
 
 
 
 
 
 
 
 
 
  
 
 
This message was sent by Atlassian Confluence 5.8.17  
 
 
  
 
 
 
 
 
 
 
 
 




[CONF] Apache ActiveMQ > Virtual Destinations

2017-10-25 Thread Gary Tully (Confluence)
Title: Message Title



 
 
 
 
 
 
 

Gary Tully edited a page 
 
 
  
 
 
 
 
 
 
 
  
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Virtual Destinations 
 
 
  
 
 
 
 
 
 
 ... You can configure this to use whatever naming convention you wish. The following example shows how to make all topics virtual topics. The example below is using the name > to indicate 'match all topics'. You could use this wildcard to apply different virtual topic policies in different hierarchies. ... 
 
 
  
 
  
 
 
 
   
 
  
 

     ... Note that making a topic virtual does add a small CPU overhead when sending messages to the topic but it is fairly small. ... The following example shows how to set up a  element in the XML configuration so that when a message is sent to MY.QUEUE then it is really forwarded to the physical queue FOO and the topic BAR. ... 

 
  
 
  
 
 
 
 
 
  
 
 
 
 
 
 
 
 
 
 
 

     ... By default, subscribers cannot consume messages directly from a composite queue or topic - it is a logical construct only. Given the configuration above, subscribers can only consume messages from FOO and BAR; but not MY.QUEUE. This behaviour can be altered to implement use cases such as watching a queue by sending the same messages to a notification topic (wire tapping), by setting the optionally set forwardOnly attribute to false. ... 
 
 
   
 

 
   
 
 
     ... Messages sent to IncomingOrders will all be copied and forwarded to Notifications, before being placed on the physical IncomingOrders queue for consumption by subscribers. ... The following example shows how a message sent to the virtual destination MY.QUEUE will be forwarded to FOO and BAR if the selectors match ... 
   
 
   
 

 
 
 
 
 

 
  
 
  
 ... Avoiding Duplicate Message in a Network of Brokers ... Here is an example of how to do that: ... 
 
 
  
 
  
 
  
 
 
 ...  
 
 
  
 
 
 
 
 
 
 
 
 
 

View page
• 
 
 
 
 
 
 

Like 
 
 
  
 
 
  
 
 
  
 
 
  
 
 
 
 
 
 
 
 
 
 
Stop watching space
• 
 
 
 
 
 
 
Manage notifications 
 
 
 
 
 
 
 
 
 
 
  
 
 
This message was sent by Atlassian Confluence 5.8.17  
 
 
  
 
 
 
 
 
 
 
 
 




[CONF] Apache ActiveMQ > Per Destination Policies

2017-10-25 Thread Gary Tully (Confluence)
Title: Message Title



 
 
 
 
 
 
 

Gary Tully edited a page 
 
 
  
 
 
 
 
 
 
 
  
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Per Destination Policies 
 
 
  
 
 
 
 
 
 
 ... 
 
 
 
 
 Common Property  
 Default Value  
 Description  
 
 
  advisoryForConsumed   
  false   
 Send an advisory message when a message is consumed by a client.  
 
 
  advisoryForDelivery   
  false   
 Send an advisory message when a message is sent to a client.  
 
 
  advisoryForFastProducers   
  false   
 Send an advisory message if a producer is deemed fast.  
 
 
  advisoryForSlowConsumers   
  false   
 Send an advisory message if a consumer is deemed slow.  
 
 
  advisoryWhenFull   
  false   
 Send an advisory message when a limit (memory, store, temp disk) is full.  
 
 
  enableAudit   
  true   
 When true the broker will track duplicate messages. Duplicates can happen for non-persistent messages during failover.  
 
 
  gcInactiveDestinations   
  false   
 Garbage collect inactive destinations.  
 
 
  inactiveTimoutBeforeGC   
  5000   
 The timeout (in ms) after which a destination is considered inactive.  
 
 
  includeBodyForAdvisory   
  false   
 Includes the body of the original message that triggered the advisory as part of the dataStructure field in the advisory message (where applicable). Normally the message body is cleared.  
 
 
  maxBrowsePageSize   
  400   
 The maximum number of messages to page in from the store at one time for a browser.  
 
 
  maxDestinations   
  -1   
 (v5.12) If 0 or greater, sets the maximum number of destinations that can be created. This parameter is intended to limit the number of hierarchical destinations that can be created under a wildcard destination.  
 
 
  maxPageSize   
  200   
 The maximum number of messages to page in from the store at one time. Increase this value to improve performance for queue destination's that contain grouped messages that are consumed by multiple concurrent consumers.  
 
 
  memoryLimit   
  n/a   
 The memory limit (in bytes) of the destination's cursor. This memory limit is subordinate to the system level memory limit, as specified by the / attribute. There is no default for this value; it simply acts as a child to the overall broker memory until the broker memory is exhausted.  Note: when this limit is specified the destination's cursorMemoryHighWaterMark will be applied against it and not the /> memory limit.  
 
 
  minimumMessageSize   
  1024   
 For non-serialized messages (embedded broker) - the assumed size of the message used for memory usage calculation. Serialized messages use the serialized size as the basis for the memory calculation.  
 
 
  prioritizedMessages   
  false   
 Persist message priority information.  
 
 
  producerFlowControl   
  true   
 If true the broker will throttle (flow-control) the producer. Throttling is achieved either by withholding the producer's ACK or by raising a javax.jms.ResourceAllocationException (that's propagated back to the client) when local resources e.g., memory and/or storage, have been exhausted. If false excess messages will be written to the message store to prevent memory exhaustion. However, when the message store reaches capacity the producer will be throttled until resources are freed.  
 
 
  slowConsumerStrategy   
  null   
 Sets the strategy for handling slow consumers. See AbortSlowConsumerStrategy.   
 
 
  storeUsageHighWaterMark   
  100   
 The percentage (%) threshold of the / store limit which when exceeded causes a send to block.  
 
 
  useCache   
  true   
 If true persistent messages are cached for fast retrieval from store.  
 
 
  usePrefetchExtension 
  true   
 The prefetch extension is used when a message is delivered but not ACK'ed, such that the broker can dispatch another message, e.g., prefetch == 0, the idea being that there will always be prefetch number of messages pending. It also allows a transaction batch to exceed the prefetch value.  
 
 
sendFailIfNoSpace  
false 
(v5.16.0) If true, will cause a send to fail with a javax.jms.ResourceAllocationException when the destination has reached is resource limits (memory or storage) 
 
 
sendFailIfNoSpaceAfterTimeout 
0 
(v5.16.0) if > 0, will cause a send to fail with a javax.jms.ResourceAllocationException when the destination resource limits (memory or storage) remain exhausted for the configured duration in milliseconds 
 
 
 
 Additional properties for a Queue ...  The following are examples of different policies that can be customized on a per destination basis:  
 
 Dispatch Policies  
  Here is an example of this in use:  ...      
 
 
  
 
 
 
 
 
 
 
 
 
 

View page
• 
 
 
 
 
 
 

Like 
 
 
  
 
 
  
 
 
  
 
 
  
 
 
 
 
 
 
 
 
 
 
Stop watching space
• 
 
 
 
 
 
 
Manage notifications 
 
 
 
 
 
 
 
 
 
 
  
 
 
This message was sent by Atlassian Confluence 5.8.17  
 
 
  
 
 
 
 
 
 
 
 
 




[CONF] Apache ActiveMQ > Producer Flow Control

2017-10-25 Thread Gary Tully (Confluence)
Title: Message Title



 
 
 
 
 
 
 

Gary Tully edited a page 
 
 
  
 
 
 
 
 
 
 
  
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Producer Flow Control 
 
 
  
 
 
 
 
 
 
 ... The timeout is defined in milliseconds so the example above waits for three seconds before failing the send() operation with an exception to the client-side. The advantage of this property is that it will block for the configured amount of time instead of failing immediately or blocking indefinitely. This property offers not only an improvement on the broker-side, but also an improvement for the client so it can catch the exception, wait a bit and retry the send() operation.  Starting in version 5.16.0 the sendFailIfNoSpace and sendFailIfNoSpaceAfterTimeout can be configured on a per destination basis via destination policies.  Disabling Flow Control A common requirement is to disable flow control so that message dispatching continues until all available disk is used up by pending messages (whether persistent or non persistent messaging is configured). To do this enable Message Cursors. ...  
 
 
  
 
 
 
 
 
 
 
 
 
 

View page
• 
 
 
 
 
 
 

Like 
 
 
  
 
 
  
 
 
  
 
 
  
 
 
 
 
 
 
 
 
 
 
Stop watching space
• 
 
 
 
 
 
 
Manage notifications 
 
 
 
 
 
 
 
 
 
 
  
 
 
This message was sent by Atlassian Confluence 5.8.17  
 
 
  
 
 
 
 
 
 
 
 
 




[CONF] Apache ActiveMQ > Configuring Wire Formats

2017-09-11 Thread Gary Tully (Confluence)
Title: Message Title



 
 
 
 
 
 
 

Gary Tully edited a page 
 
 
  
 
 
 
 
 
 
 
  
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Configuring Wire Formats 
 
 
  
 
 
 
 
 
 
 ... 
 
 
 
 
 Parameter Name  
 Default Value  
 Description  
 
 
  cacheEnabled   
  true   
 Should commonly repeated values be cached so that less marshaling occurs?  
 
 
  cacheSize   
  1024   
 When cacheEnabled=true then this parameter is used to specify the number of values to be cached.  
 
 
  maxInactivityDuration   
  3   
 The maximum inactivity duration (before which the socket is considered dead) in milliseconds. On some platforms it can take a long time for a socket to die. Therefore allow the broker to kill connections when they have been inactive for the configured period of time. Used by some transports to enable a keep alive heart beat feature. Inactivity monitoring is disabled when set to a value <= 0.  
 
 
  maxInactivityDurationInitalDelay   
  1   
 The initial delay before starting inactivity checks. Yes, the word 'Inital' is supposed to be misspelled like that.  
 
 
  maxFrameSize   
  MAX_LONG   
 Maximum allowed frame size. Can help help prevent OOM DOS attacks.  
 
 
  sizePrefixDisabled   
  false   
 Should the size of the packet be prefixed before each packet is marshaled?  
 
 
  stackTraceEnabled   
  true   
 Should the stack trace of exception that occur on the broker be sent to the client?  
 
 
  tcpNoDelayEnabled   
  true   
 Does not affect the wire format, but provides a hint to the peer that TCP nodelay should be enabled on the communications Socket.  
 
 
  tightEncodingEnabled   
  true   
 Should wire size be optimized over CPU usage?  
 
 
 
 ... Example Configurations  Java:  ... 
ActiveMQConnectionFactory cf = 
 
 new ActiveMQConnectionFactory("tcp://localhost:61616?wireFormat.cacheEnabled=false=false");
 ...   Spring:  ... 

  
  

 ...    
 
 
  
 
 
 
 
 
 
 
 
 
 

View page
• 
 
 
 
 
 
 

Like 
 
 
  
 
 
  
 
 
  
 
 
  
 
 
 
 
 
 
 
 
 
 
Stop watching space
• 
 
 
 
 
 
 
Manage notifications 
 
 
 
 
 
 
 
 
 
 
  
 
 
This message was sent by Atlassian Confluence 5.8.17  
 
 
  
 
 
 
 
 
 
 
 
 




[CONF] Apache ActiveMQ > Configuring Wire Formats

2017-09-05 Thread Gary Tully (Confluence)
Title: Message Title



 
 
 
 
 
 
 

Gary Tully edited a page 
 
 
  
 
 
 
 
 
 
 
  
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Configuring Wire Formats 
 
 
  
 
 
 
 
 
 
 ... 
 
 
 
 
 Parameter Name  
 Default Value  
 Description  
 
 
  cacheEnabled   
  true   
 Should commonly repeated values be cached so that less marshaling occurs?  
 
 
  cacheSize   
  1024   
 When cacheEnabled=true then this parameter is used to specify the number of values to be cached.  
 
 
  maxInactivityDuration   
  3   
 The maximum inactivity duration (before which the socket is considered dead) in milliseconds. On some platforms it can take a long time for a socket to die. Therefore allow the broker to kill connections when they have been inactive for the configured period of time. Used by some transports to enable a keep alive heart beat feature. Inactivity monitoring is disabled when set to a value <= 0.  
 
 
  maxInactivityDurationInitalDelay   
  1   
 The initial delay before starting inactivity checks. Yes, the word 'Inital' is supposed to be misspelled like that.  
 
 
  maxFrameSize   
  MAX_LONG   
 Maximum allowed frame size. Can help help prevent OOM DOS attacks.prefixPacketSize   
 
 
 
sizePrefixDisabled
  
  true   
 Should the size of the packet be prefixed before each packet is marshaled?  
 
 
  stackTraceEnabled   
  true   
 Should the stack trace of exception that occur on the broker be sent to the client?  
 
 
  tcpNoDelayEnabled   
  true   
 Does not affect the wire format, but provides a hint to the peer that TCP nodelay should be enabled on the communications Socket.  
 
 
  tightEncodingEnabled   
  true   
 Should wire size be optimized over CPU usage?  
 
 
 
 ...  
 
 
  
 
 
 
 
 
 
 
 
 
 

View page
• 
 
 
 
 
 
 

Like 
 
 
  
 
 
  
 
 
  
 
 
  
 
 
 
 
 
 
 
 
 
 
Stop watching space
• 
 
 
 
 
 
 
Manage notifications 
 
 
 
 
 
 
 
 
 
 
  
 
 
This message was sent by Atlassian Confluence 5.8.17  
 
 
  
 
 
 
 
 
 
 
 
 




[CONF] Apache ActiveMQ > Per Destination Policies

2017-08-03 Thread Gary Tully (Confluence)
Title: Message Title



 
 
 
 
 
 
 

Gary Tully edited a page 
 
 
  
 
 
 
 
 
 
 
  
 
 
 
 
 
 
Change comment: split description of cursorMemoryHighWaterMark 
 
 
  
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Per Destination Policies 
 
 
  
 
 
 
 
 
 
 ... 
 
 
 
 
 Common Property  
 Default Value  
 Description  
 
 
  advisoryForConsumed   
  false   
 Send an advisory message when a message is consumed by a client.  
 
 
  advisoryForDelivery   
  false   
 Send an advisory message when a message is sent to a client.  
 
 
  advisoryForFastProducers   
  false   
 Send an advisory message if a producer is deemed fast.  
 
 
  advisoryForSlowConsumers   
  false   
 Send an advisory message if a consumer is deemed slow.  
 
 
  advisoryWhenFull   
  false   
 Send an advisory message when a limit (memory, store, temp disk) is full.  
 
 
  cursorMemoryHighWaterMark   
  70   
  The percentage (%) threshold applied either to the / or the destination's memoryLimit (when defined) which when exceeded will cause the destination's cursor to either block or write to disk.   
 
 
  enableAudit   
  true   
 When true the broker will track duplicate messages. Duplicates can happen for non-persistent messages during failover.  
 
 
  gcInactiveDestinations   
  false   
 Garbage collect inactive destinations.  
 
 
  inactiveTimoutBeforeGC   
  5000   
 The timeout (in ms) after which a destination is considered inactive.  
 
 
  includeBodyForAdvisory   
  false   
 Includes the body of the original message that triggered the advisory as part of the dataStructure field in the advisory message (where applicable). Normally the message body is cleared.  
 
 
  maxBrowsePageSize   
  400   
 The maximum number of messages to page in from the store at one time for a browser.  
 
 
  maxDestinations   
  -1   
 (v5.12) If 0 or greater, sets the maximum number of destinations that can be created. This parameter is intended to limit the number of hierarchical destinations that can be created under a wildcard destination.  
 
 
  maxPageSize   
  200   
 The maximum number of messages to page in from the store at one time. Increase this value to improve performance for queue destination's that contain grouped messages that are consumed by multiple concurrent consumers.  
 
 
  memoryLimit   
  n/a   
 The memory limit (in bytes) of the destination's cursor. This memory limit is subordinate to the system level memory limit, as specified by the / attribute. There is no default for this value; it simply acts as a child to the overall broker memory until the broker memory is exhausted.  Note: when this limit is specified the destination's cursorMemoryHighWaterMark will be applied against it and not the /> memory limit.  
 
 
  minimumMessageSize   
  1024   
 For non-serialized messages (embedded broker) - the assumed size of the message used for memory usage calculation. Serialized messages use the serialized size as the basis for the memory calculation.  
 
 
  prioritizedMessages   
  false   
 Persist message priority information.  
 
 
  producerFlowControl   
  true   
 If true the broker will throttle (flow-control) the producer. Throttling is achieved either by withholding the producer's ACK or by raising a javax.jms.ResourceAllocationException (that's propagated back to the client) when local resources e.g., memory and/or storage, have been exhausted. If false excess messages will be written to the message store to prevent memory exhaustion. However, when the message store reaches capacity the producer will be throttled until resources are freed.  
 
 
  slowConsumerStrategy   
  null   
 Sets the strategy for handling slow consumers. See AbortSlowConsumerStrategy.   
 
 
  storeUsageHighWaterMark   
  100   
 The percentage (%) threshold of the / store limit which when exceeded causes a send to block.  
 
 
  useCache   
  true   
 If true persistent messages are cached for fast retrieval from store.  
 
 
  usePrefetchExtension 
  true   
 The prefetch extension is used when a message is delivered but not ACK'ed, such that the broker can dispatch another message, e.g., prefetch == 0, the idea being that there will always be prefetch number of messages pending. It also allows a transaction batch to exceed the prefetch value.  
 
 
 
 ... 
 
 
 
 
 Queue Only Property  
 Default Value  
 Description  
 
 
  allConsumersExclusiveByDefault   
  false   
 When true all consumers will be exclusive. See ActiveMQ Exclusive Consumers   
 
 
  cursorMemoryHighWaterMark   
  70   
  The percentage (%) threshold applied either to the / or the destination's memoryLimit (when defined) which when exceeded will cause the destination's cursor to either block or write to disk.   
 
 
  consumersBeforeDispatchStarts   
  0   
 When the first consumer connects, wait for specified number of consumers before message dispatching starts.  
 
 
  expireMessagesPeriod   
  3   
 The period (in ms) of checks for message expiry on queued 

[CONF] Apache ActiveMQ > Audit Logging

2017-07-10 Thread Gary Tully (Confluence)
Title: Message Title



 
 
 
 
 
 
 

Gary Tully edited a page 
 
 
  
 
 
 
 
 
 
 
  
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Audit Logging 
 
 
  
 
 
 
 
 
 
 ... Audit logging comes pre-configured with the distribution, so it's very easy to turn it on or off. All you have to do is to set org.apache.activemq.audit system property.  From 5.16.0 the value can be one of "true|entry|exit|all". When the value is all or exit, the audit captures the time the JMX operation completed. You can do that by uncommenting the following line in the startup script: 
 
 
 
 Code Block 
 
 
 
 
 

ACTIVEMQ_OPTS="$ACTIVEMQ_OPTS -Dorg.apache.activemq.audit=true"
  
 
 
 The actual logs are by default stored in ${ACTIVEMQ_HOME}/data/audit.log and for secured broker you may expect entries similar to the following: 
 
 
 
 Code Block 
 
 
 
 
 

2010-12-22 12:12:07,225 | INFO  | admin requested /admin/createDestination.action [JMSDestination='test' JMSDestinationType='queue' 
secret='4eb0bc3e-9d7a-4256-844c-24f40fda98f1' ] from 127.0.0.1 | qtp12205619-39
2010-12-22 12:12:14,512 | INFO  | admin requested /admin/purgeDestination.action [JMSDestination='test' JMSDestinationType='queue' 
secret='eff6a932-1b58-45da-a64a-1b30b246cfc9' ] from 127.0.0.1 | qtp12205619-36
2010-12-22 12:12:17,802 | INFO  | admin requested /admin/sendMessage.action [JMSTimeToLive='' JMSXGroupSeq='' AMQ_SCHEDULED_DELAY='' JMSType='' 
JMSMessageCountHeader='JMSXMessageCounter' JMSXGroupID='' JMSReplyTo='' JMSDestination='test' AMQ_SCHEDULED_PERIOD='' JMSText='Enter some text 
here for the message body...' JMSDestinationType='queue' AMQ_SCHEDULED_CRON='' JMSCorrelationID='' AMQ_SCHEDULED_REPEAT='' JMSMessageCount='1' 
secret='a0e1df62-14d6-4425-82a2-17aa01a16e7d' JMSPriority='' ] from 127.0.0.1 | qtp12205619-37

...

2010-12-22 12:12:57,553 | INFO  | admin called org.apache.activemq.broker.jmx.QueueView.purge[] | RMI TCP Connection(8)-192.168.1.107
2010-12-22 12:13:21,976 | INFO  | admin called org.apache.activemq.broker.jmx.QueueView.resetStatistics[] | RMI TCP Connection(8)-192.168.1.107
2010-12-22 12:13:32,457 | INFO  | admin called org.apache.activemq.broker.jmx.QueueView.sendTextMessage[message] | RMI TCP Connection(6)-
192.168.1.107
  
 
 
 ...  
 
 
  
 
 
 
 
 
 
 
 
 
 

View page
• 
 
 
 
 
 
 

Like 
 
 
  
 
 
  
 
 
  
 
 
  
 
 
 
 
 
 
 
 
 
 
Stop watching space
• 
 
 
 
 
 
 
Manage notifications 
 
 
 
 
 
 
 
 
 
 
  
 
 
This message was sent by Atlassian Confluence 5.8.17  
 
 
  
 
 
 
 
 
 
 
 
 




[CONF] Apache ActiveMQ > KahaDB

2016-05-03 Thread Gary Tully (Confluence)
Title: Message Title



 
 
 
 
 
 
 

Gary Tully edited a page 
 
 
  
 
 
 
 
 
 
 
  
 
 
 
 
 
 
Change comment: document PreallocationScope 
 
 
  
 
 
 
 
 
 
 
 
 
 
 
 
 
 
KahaDB 
 
 
  
 
 
 
 
 
 
 ... 
 
 
 
 
 property name  
 default value  
 Comments  
 
 
 directory  
 activemq-data  
 the path to the directory to use to store the message store data and log files  
 
 
 IndexDirectory  
  
  If set, configures where the KahaDB index files will be stored. If not set, the index files are stored in the directory specified by the 'directory' attribute.   
 
 
 
 Note 
 
 
 
 
Available as of ActiveMQ 5.10 
 
 
  
 
 
 storeOpenWireVersion  
 11  
 Determines the version of OpenWire commands that are marshalled to the KahaDB journal.  In versions prior to 5.12.0 this value defaulted to v6.  Some features of the broker depend on information stored in the OpenWire commands from newer protocol revisions and these may not work correctly if the store version is set to a lower value.  KahaDB stores from broker versions greater than 5.9.0 will in many cases still be readable by the broker but will cause the broker to continue using the older store version meaning newer features may not work as intended.  For KahaDB stores that were created in versions prior to v5.9.0 it will be necessary to manually set the store version to v6 in order to start a broker without error.  
 
 
 indexWriteBatchSize  
 1000  
 number of indexes written in a batch  
 
 
 indexCacheSize  
 1  
 number of index pages cached in memory  
 
 
 enableIndexWriteAsync  
 false  
 if set, will asynchronously write indexes  
 
 
 journalMaxFileLength  
 32mb  
 a hint to set the maximum size of the message data logs  
 
 
 enableJournalDiskSyncs  
 true  
 ensure every journal write is followed by a disk sync (JMS durability requirement)  
 
 
 cleanupInterval  
 3  
 time (ms) before checking for a discarding/moving message data logs that are no longer used  
 
 
 checkpointInterval  
 5000  
 time (ms) before checkpointing the journal  
 
 
 ignoreMissingJournalfiles  
 false  
 If enabled, will ignore a missing message log file  
 
 
 checkForCorruptJournalFiles  
 false  
 If enabled, will check for corrupted Journal files on startup and try and recover them  
 
 
 checksumJournalFiles  
  false true v5.9   
 create a checksum for a journal file - to enable checking for corrupted journals  
 
 
 archiveDataLogs  
 false  
 If enabled, will move a message data log to the archive directory instead of deleting it.  
 
 
 directoryArchive  
 null  
 Define the directory to move data logs to when they all the messages they contain have been consumed.  
 
 
 maxAsyncJobs  
 1  
 the maximum number of asynchronous messages that will be queued awaiting storage (should be the same as the number of concurrent MessageProducers)  
 
 
 concurrentStoreAndDispatchTopics  
 false  
 enable the dispatching of Topic messages to interested clients to happen concurrently with message storage (Warning: Enabling this property is not recommended)  
 
 
 concurrentStoreAndDispatchQueues  
 true  
 enable the dispatching of Queue messages to interested clients to happen concurrently with message storage  
 
 
 archiveCorruptedIndex  
 false  
 If enabled, corrupted indexes found at startup will be archived (not deleted)  
 
 
 preallocationStrategy  
 sparse_file  
 (as of 5.12.0) This setting configures how the broker will try to preallocate the journal files when a new journal file is needed. The default allocation strategy sets the file length, but does not populate it with any data. The 'os_kernel_copy' strategy delegates the preallocation to the Operating System. The 'zeros' strategy configures ActiveMQ to do the preallocation by writing 0x00 to all of the positions in the journal file.  
 
 
preallocationScope 
entire_journal_async 
(as of 5.14.0) This setting configures how the broker will preallocate the journal data files. The default preallocates the next data file in a separate thread. 'entire_journal' does preallocation on first use. 'none' disables preallocation. Using 'entire_journal_async' option avoids delaying writes pending preallocation on first use. 
 
 
 
 For tuning locking properties please take a look at Pluggable storage lockers  ...  
 
 
  
 
 
 
 
 
 
 
 
 
 

View page
• 
 
 
 
 
 
 

Like 
 
 
  
 
 
  
 
 
  
 
 
  
 
 
 
 
 
 
 
 
 
 
Stop watching space
• 
 
 
 
 
 
 
Manage notifications 
 
 
 
 
 
 
 
 
 
 
  
 
 
This message was sent by Atlassian Confluence 5.8.4  
 
 
  
 
 
 
 
 
 
 
 
 




[CONF] Apache ActiveMQ How to Become a Committer on the ActiveMQ Project

2015-05-21 Thread Gary Tully (Confluence)














  


Gary Tully edited the page:
 


How to Become a Committer on the ActiveMQ Project   






...

Demonstrated ability to contribute patches/pull requests to ActiveMQ projects
Demonstrated participation in discussions on the ActiveMQ mailing lists
 Willingness to contribute to the document 







 View Online   Like   View Changes  
 Stop watching space   Manage Notifications  


 


 


  This message was sent by Atlassian Confluence 5.0.3, Team Collaboration Software  






[CONF] Apache ActiveMQ Download

2015-02-04 Thread Gary Tully (Confluence)














  


Gary Tully edited the page:
 


Download   






...



 Section








 Column








width
20%


 








 div








style
padding-right:20px;float:left;

 

[CONF] Apache ActiveMQ Apache ActiveMQ 5.11.0 Released

2015-02-04 Thread Gary Tully (Confluence)














  


Gary Tully wrote a blog post:
 


Apache ActiveMQ 5.11.0 Released   





 The ActiveMQ team is delighted to announce the release of ActiveMQ 5.11.0 
 A hearty thanks to everyone who contributed to this release. 
 We look forward to your feedback. 

  

   





 View Online   Like  
 Stop watching space   Manage Notifications  


 


 


  This message was sent by Atlassian Confluence 5.0.3, Team Collaboration Software  






[CONF] Apache ActiveMQ ActiveMQ 5.11.0 Release

2015-02-04 Thread Gary Tully (Confluence)














  


Gary Tully edited the page:
 


ActiveMQ 5.11.0 Release   









 div








style
padding-right:20px;float:left;margin-left:-20px;


 




  Image Removed  



  
ActiveMQ 5.11.0 Release
Apache ActiveMQ 5.11.0 resolves more than 130 issues, mostly bug fixes and improvements.
...






 View Online   Like   View Changes  
 Stop watching space   Manage Notifications  


 


 


  This message was sent by Atlassian Confluence 5.0.3, Team Collaboration Software  






[CONF] Apache ActiveMQ Download

2015-02-04 Thread Gary Tully (Confluence)














  


Gary Tully removed a comment from the page:
 


Download   





Does not provide link to ActiveMQ 4.0 Milestone release (http://people.apache.org/~chirino/incubator-activemq-4.0-M4/distributions/ ) nor Development Snapshots (http://cvs.apache.org/repository/incubator-activemq/).





 
 Stop watching space   Manage Notifications  


 


 


  This message was sent by Atlassian Confluence 5.0.3, Team Collaboration Software  






[CONF] Apache ActiveMQ New Features in 5.11

2015-02-04 Thread Gary Tully (Confluence)














  


Gary Tully edited the page:
 


New Features in 5.11   






New Features in 5.11.0

 Hardened MQTT Protocol Support 
 Hardened AMQP Protocol Support 
 Jetty 8 
 destination Destination import/export for lock down mode AMQ-5218 
  plugin for dynamic Dynamic camel root loading AMQ-5351 
  MQTT - QOS2 mapped to virtual topicsAMQ-5290  
 start scripts simplificationAMQ-5378 
 Recover scheduler database optionAMQ-3758 
 Jetty 8 
 Karaf 2.4.1 







 View Online   Like   View Changes  
 Stop watching space   Manage Notifications  


 


 


  This message was sent by Atlassian Confluence 5.0.3, Team Collaboration Software  






[CONF] Apache ActiveMQ QuickLinks

2015-02-04 Thread Gary Tully (Confluence)














  


Gary Tully edited the page:
 


QuickLinks   






 Download | JavaDocs More... | Source | Forums | Support 






 View Online   Like   View Changes  
 Stop watching space   Manage Notifications  


 


 


  This message was sent by Atlassian Confluence 5.0.3, Team Collaboration Software  






[CONF] Apache ActiveMQ ActiveMQ 5.11.0 Release

2015-02-03 Thread Gary Tully (Confluence)














  


Gary Tully created a page:
 


ActiveMQ 5.11.0 Release   






 


ActiveMQ 5.11.0 Release
Apache ActiveMQ 5.11.0 resolves more than 130 issues, mostly bug fixes and improvements.

New Features in 5.11.0

Hardened MQTT Protocol Support
Hardened AMQP Protocol Support
Jetty 8
destination import/export for lock down mode AMQ-5218
 plugin for dynamic camel root loading AMQ-5351  


Getting the Binary Distributions




 Description 
 Download Link 
 PGP Signature file of download 


 Windows Distribution 
  apache-activemq-5.11.0-bin.zip  
  apache-activemq-5.11.0-bin.zip.asc  


 Unix/Linux/Cygwin Distribution 
  apache-activemq-5.11.0-bin.tar.gz  
  apache-activemq-5.11.0-bin.tar.gz.asc  





Verify the Integrity of Downloads
It is essential that you verify the integrity of the downloaded files using the PGP or MD5 signatures. The PGP signatures can be verified using PGP or GPG. Begin by following these steps:

Download the KEYS 
Download the asc signature file for the relevant distribution
 Verify the signatures using the following commands, depending on your use of PGP or GPG:


$ pgpk -a KEYS
$ pgpv apache-activemq-version-bin.tar.gz.asc


 or


  

[CONF] Apache ActiveMQ New Features in 5.11

2015-02-03 Thread Gary Tully (Confluence)






 mode AMQ-5218 plugin for dynamic camel root loading  AMQ-52185351







  


Gary Tully edited the page:
 


New Features in 5.11   






...

Hardened MQTT Protocol Support
Hardened AMQP Protocol Support
Jetty 8
destination import/export for lock down mode 








 JIRA




server
Issues


key




 JIRA




server
Issues


key






 View Online   Like   View Changes  
 Stop watching space   Manage Notifications  


 



 This message was sent by Atlassian Confluence 5.0.3, Team Collaboration Software 



[CONF] Apache ActiveMQ Release Guide

2015-02-03 Thread Gary Tully (Confluence)














  


Gary Tully edited the page:
 


Release Guide   






...

 Verify the to-be-released version identifier exists in the META-INF/spring.schema mappings file, if not add it and commit. It should contain:



 Code Block




 http\://activemq.apache.org/schema/core/activemq-core-${pom.version}.xsd=activemq.xsd 


 
 Verify headers with rat 



 Code Block




 mvn -e apache-rat:check
grep -e ' !?' target/rat.txt -- will show any files without licenses
 


 
 Do a release dry run to check for problems



 Code Block




 mvn release:prepare -DdryRun=true
 


 Check that you are happy with the results. The poms for the proposed tags will be in pom.xml.tag. When you like the results, clean up:



 Code Block




 

[CONF] Apache ActiveMQ Web Samples

2015-01-12 Thread Gary Tully (Confluence)














  


Gary Tully edited the page:
 


Web Samples   






...



 Code Block




 bin/activemq console xbean:examples/conf/activemq-demo.xml 



See Also
...






 View Online   Like   View Changes  
 Stop watching space   Manage Notifications  


 


 


  This message was sent by Atlassian Confluence 5.0.3, Team Collaboration Software  






[CONF] Apache ActiveMQ ActiveMQ 5.10.0 Release

2014-12-10 Thread Gary Tully (Confluence)














  


Gary Tully edited the page:
 


ActiveMQ 5.10.0 Release   






...
To use this release in your maven project, the proper simplest dependency configuration that you should can use in your Maven POM is:



 Code Block









xml


 




 dependency
  groupIdorg.apache.activemq/groupId
  artifactIdactivemq-all/artifactId
  version5.10.0/version
/dependency
 



 If you need more fine grained control of your dependencies (activemq-all is an uber jar) pick and choose from the various components activemq-client, activemq-broker, activemq-xx-store etc. 



 div








Getting the Source Code
Source Distributions
...






 View Online   Like   View Changes  
 Stop watching space   Manage Notifications  


 


 


  This message was 

[CONF] Apache ActiveMQ Persistence

2014-07-22 Thread Gary Tully (Confluence)














  


Gary Tully edited the page:
 


Persistence   






...
For full explict control over configuration check out the Xml Configuration. However a quick way to set which persistence adapter to use is to set the following system property to be the class name of the PersistenceAdapter implementation.



 Code Block




 

activemq.persistenceAdapter
 



When running the broker from the command line, we look for the activemq.xml on the classpath unless you specify one to use. e.g. AMQ 4.x 



 Code Block




 

activemq xbean:file:myconfig.xml
 



 AMQ 3.x 



 Code Block




 

activemq myconfig.xml
 



or just AMQ3.x/AMQ4.x 



 Code Block




 

activemq
 



Here is a sample XML configuration which shows how to configure the journal and the JDBC persistence.
...
  

[CONF] Apache ActiveMQ Pluggable storage lockers

2014-03-28 Thread Gary Tully (Confluence)














  


Gary Tully edited the page:
 


Pluggable storage lockers   






...
In order for this mechanism to work correctly, each broker in the master/slave pair must have a different brokerName attribute defined on the broker tag or use thelease-database-locker leaseHolderId attribute, as it is this value that is used to reserve a lease. 
The lease based lock is acquired by blocking at startup. It is then retained for a period whose duration (in ms) is given by the lockKeepAlivePeriod attribute. To retain the lock the master broker periodically extends its lease by lockAcquireSleepInterval milliseconds each time. In theory, therefore, the master broker is always (lockAcquireSleepInterval- lockKeepAlivePeriod) ahead of the slave broker with regard to the lease. It is imperative that lockAcquireSleepInterval  lockKeepAlivePeriod, to ensure the lease is always current. As of ActiveMQ 5.9.0 a warning message is logged if this condition is not met.
...






 View Online   Like   View Changes  
 Stop watching space   Manage Notifications  


 


 


  This message was sent by Atlassian Confluence 5.0.3, Team Collaboration Software  






[CONF] Apache ActiveMQ ActiveMQ Message Properties

2014-03-26 Thread Gary Tully (Confluence)














  


Gary Tully edited the page:
 


ActiveMQ Message Properties   






...




 Property Name 
 type 
 default value 
 description 


 JMSDestination 
 javax.jms.Destination 
 set by the producer 
 Destination used by the producer 


 JMSReplyTo 
 javax.jms.Destination 
 null 
 user defined 


 JMSType 
 String 
 empty 
 user defined 


 JMSDeliveryMode 
 int 
 DeliveryMode.PERSISTENT 
 indicator if messages should be persisted 


 JMSPriority 
 int 
 4 
 value from 0-9 


 JMSMessageID 
 String 
 unique 
 unique identifier for the message 


 JMSTimestamp 
 long 
 time the message was sent 
 time in 

[CONF] Apache ActiveMQ Stomp

2014-03-07 Thread Gary Tully (Confluence)














  


Gary Tully edited the page:
 


Stomp   




 Comment: remove incorrect section on message order - order is determined by broker arrival order 


...
Its very easy to enable ActiveMQ for Stomp. Just add a connector to the broker using the stomp URL.



 Code Block









xml


 




 

transportConnectors
   transportConnector name=stomp uri=stomp://localhost:61613/
/transportConnectors
 



To see a full example, try this XML. If you save that XML as foo.xml then you can run stomp via the command line as



 Code Block









xml


 




 

activemq xbean:foo.xml