32bf9680f2 | ||
---|---|---|
.. | ||
src/main | ||
pom.xml | ||
readme.md |
readme.md
Rest Duplicate Send Example
This is an example of using duplicate detection for posted messages. The first file to look at is:
src/main/resource/activemq-rest.xml
You see that by default, all messages posted to msg-create URLs will follow the duplicate detection pattern talked about in the documentation.
To run the example you will need 3 shell-script windows (or you'll need to run 2 processes in background)
Step 1:
mvn jetty:run
This will bring up ActiveMQ Artemis and the ActiveMQ Artemis REST Interface.
Step 2:
mvn exec:java -Dexec.mainClass="ReceiveOrder"
This will bring up a REST client that is continuously pulling the broker through a consume-next (see doco for details).
Step 3:
mvn exec:java -Dexec.mainClass="PostOrder"
This class will post 3 orders. The first order will cause the 307 redirection as stated in the docs. A 2nd order will be posted twice through the same consume-next URL. You'll see from the ReceiveOrder process that only 2 messages are actually processed through the queue (instead of the 3 posts that were done).
Step 4:
In Step 4, you will use the create-with-id URL published by the container. To run the example, you must pass in your own order id. For example:
mvn exec:java -Dexec.mainClass="PostOrderWithId" -Dexec.args="001"
If you run this program with the same argument you'll see that only one of the messages passes through the queue
and is consumed by the ReceiveOrder process. Pass a different string to -Dexec.args
to post a new message that
isn't caught by the dup-detection facility.