cordaactivemq-artemis

For the default ActiveMQ Artemis queue, can the queue be queried for outbound transactions?


If the node.config file does not have an entry for messagingServerAddress, the default Artemis queue is spun up. Is it possible in the Corda API (V2 or V3) to query the queue for any proposed transactions, which originated from self node, and have yet to be sent/received by a counter-party node? The business case is if a counter-party node is offline, I want to be able to see what is accumulating in the queue.


Solution

  • This is not possible as of Corda 3.

    The Artemis queue is stored locally as a high performance journal that contains all kinds of metadata in case it needs to restore state from a hard bounce. Extracting info from this format is not easy.

    A better way to see which messages have accumulated would be to query the node's flow checkpoints, to see which ones are blocking on an unACK'ed message send. But we haven't written the code to do this either yet.