I believe that you have referred my last post that elaborates simple use case of "Message Store" and "Message Processor" of WSO2 ESB.
So lets experiment this and see!
Step 1 - Deactivate the Message Processor and Shutdown the Backend.
Step 2 - Go to you Message Broker (I am using ActiveMQ in this scenario) and try to insert message manually.
As a result of Step 2, you can notice that in the "JMSMessageStore_Queue" will be having a message that we inserted now!!! Hmmmm So far so Good!!!!
Step 3 - Start-up the Backend and Reactivate the "Message Processor" in WSO2 ESB and have a look at the Carbon Log!
What ?? something gone wrong!!!!
Step 4 - Send some messages from client and observe what is happening!!
What ??? Nothing is happening!!!! Hmmmm... Until i explain next situation.... keep on thinking.
Note - you will see the error log In WSO2 ESB 4.6.0. Nonetheless, WSO2 4.7.0 does not show any error log until you enable debug log. However, end of the day nothing will happen!!!
Other scenario also quite interesting!! As you see in Figure 2, another different JMS Listener is trying to access the persisted message in our JMS Queue. So what are you going to do with the message that you got from JMS Queue???? Nothing can do!!!
There can be several issues occur in Real time or mistakes made by user
Lets take it one by one!
Lets take it one by one!
Issue #1 - Real Time
There can be network loss in between Backend and ESB!! Or Backend can be fail in the real world situation. Nevertheless, these situations are handled by several Enterprise Integration Patterns. And also above situation can be over come with use of Message Store and Message processor. That i have already mentioned in my last post.
Issue #2 - User Error
User error is mainly occur due to lack of knowledge on concept of "Message Store" and "Message Processor" of WSO2 ESB. As I have noticed several time, Users are making two main issues, that i have mentioned below.
Message Insertion manual in JMS Queue -Figure 1 |
As figure-1 illustrated, "Message Store" and "Message Processor" are configured to persist the message and send to Backend. However, User or Client is trying to manually add a message into the give JMS Queue!!
So lets experiment this and see!
Step 1 - Deactivate the Message Processor and Shutdown the Backend.
Step 2 - Go to you Message Broker (I am using ActiveMQ in this scenario) and try to insert message manually.
Click on "Send To" to insert message manually in ActiveMQ - Figure 3 |
Add your message into Message body and Click on Send in ActiveMQ - Figure 4 |
Step 3 - Start-up the Backend and Reactivate the "Message Processor" in WSO2 ESB and have a look at the Carbon Log!
What ?? something gone wrong!!!!
Step 4 - Send some messages from client and observe what is happening!!
What ??? Nothing is happening!!!! Hmmmm... Until i explain next situation.... keep on thinking.
Note - you will see the error log In WSO2 ESB 4.6.0. Nonetheless, WSO2 4.7.0 does not show any error log until you enable debug log. However, end of the day nothing will happen!!!
Fetch the message from JMS Queue using JMS Listener - Figure 2 |
Other scenario also quite interesting!! As you see in Figure 2, another different JMS Listener is trying to access the persisted message in our JMS Queue. So what are you going to do with the message that you got from JMS Queue???? Nothing can do!!!
Why????? So until i write my next blog keep on thinking!!!!!
No comments:
Post a Comment