Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

This example scenario demonstrates how to send a test message and get to know about determine the availability of a service. In addition to that, you You can also see how the Scheduled Tasks in WSO2 ESB are used.

...

Figure 2: Example Scenario of the Test Message EIP

We have described below Following are descriptions of several components of the example scanrioscenario.

  • Test Data Generator: Task Scheduler plays this role. It creates a message periodically after a given interval , and hands over the message to the main sequence.
  • Test Message Injector: Main sequence injects messages it gets from Task scheduler in to into sendSeq, where the rest of the messages go to.
  • Test Message Separator and Test Data Verifier: A Filter mediator inside receiveSeq filters out the test messages , and prints the outcome of the test. There's another filter in fault c to monitor any failures in sending test messages.

Environment setup

  1. Download an and install the WSO2 ESB from http://wso2.com/products/enterprise-service-bus. For a list of prerequisites and step-by-step installation instructions, refer to Getting Started in the WSO2 ESB documentation.
  2. Start two Sample Axis2 server instances in ports 9001 and 9002. For instructions, refer to the section ESB Samples Setup - Starting Sample Back-End Services in the WSO2 ESB documentation.

ESB configuration

Start the ESB server and log into its management console UI (https://localhost:9443/carbon). In the management console, navigate to Main Menu, click Service Bus and then Source View. Next, copy and paste the following configuration, which helps you explore the example scenario, to the source view.

Anchor
step3
step3

...

After setting this configuration, note that axis2Server the Axis2 server is invoked every 25 seconds, and the following message on the WSO2 ESB console saying indicates that the test has passed.

Code Block
INFO - LogMediator To: http://www.w3.org/2005/08/addressing/anonymous, WSAction: , SOAPAction: , MessageID: urn:uuid:fa29b7c1-98cb-48a2-87b3-54dc96b9c817, Direction: response, TEST PASSED = *** Test Message Passed ***, TESTED SERVICE = *** localhost:9000/services/SimpleStockQuoteService ***

If you stop the axis2 Axis2 server, you will get the following message saying indicating that the test has failed.

Code Block
INFO - LogMediator To: http://localhost:9000/services/SimpleStockQuoteService, WSAction: urn:getQuote, SOAPAction: urn:getQuote, MessageID: urn:uuid:008c1cf5-a13b-44ec-8e1c-566a39275f67, Direction: request, FAILURE = *** Test Message Failed ***, FAILED SERVICE = *** localhost:9000/services/SimpleStockQuoteService ***

...

Let's investigate the elements of the ESB configuration in detail. The line numbers below refer to the ESB configuration in step 3 shown above.

  • sequence [line 7 8 in ESB config] -  The sequence with key sendSeq defines an the endpoint to send messages that go through this sequence, and also a where messages will be sent and defines the sequence (receiveSeq) to that will receive responses. 
  • fault sequence [line 17 in ESB config] - The fault sequence provides a channel to handle for handling faults. 
  • filter [line 29 in ESB config] - A filter mediator is used within the fault sequence to see if determine whether the symbol property of the message passing through this filter contains TEST. If it does, it will be logged, and no fault message is passed onto the requesting client. If TEST does not exist, a fault message is passed as usual. 
  • sequence [line 66 in ESB config] - This is the main sequence invoked by default when a request is made to the ESB. This sequence calls the sendSeq sequence (line 7 8 in ESB config).
  • task [line 76 in ESB config] - A task in the ESB runs periodically based on a given timer. This timer is specified using the trigger element. In this case, the task is set to run every 25 seconds. This task uses the synapse Synapse MessageInjector class to inject a message into the synapse Synapse environment. 
  • property [line 83 in ESB config] - This property, defined inside the task, specifies the message body. 
  • property [line 90 in ESB config] - This property, defined inside the task, specifies sets the SOAP Action to getQuote.
  • property [line 93 in ESB config] - This property, defined inside the task, specifies the address to which where the message generated by the task is sent to