Debugging Mediation
com.atlassian.confluence.content.render.xhtml.migration.exceptions.UnknownMacroMigrationException: The macro 'next_previous_links' is unknown.

Debugging Mediation

Message mediation mode is one of the operational modes of the ESB profile where the ESB profile functions as an intermediate message router. When operating in this mode, it can filter, transform, drop or forward messages to an endpoint based on the given parameters. A unit of the mediation flow is a mediator. Sequences define the message mediation behavior of the ESB profile. A sequence is a series of mediators, where each mediator is a unit entity that can input a message, carry out a predefined processing task on the message, and output the message for further processing. 

What is debugging with respect to mediation

Debugging is where you want to know if these units, which function as separate entities are operating as intended, or if a combination of these units are operating as a whole as intended. The ESB profile packs the Mediation debugger that enables you to debug the ESB profile message mediation flow in the server. Tooling support for the Mediation debugger is provided by the WSO2 Integration Studio Plugin which comes out of the box with WSO2 Integration Studio. 

First follow the steps below to create a sample the ESB profile artifact, which you will debug .

  1. Install the plugin and run it. For instructions, see Installing WSO2 Integration Studio. 

  2. Create the ESB profile artifact using the WSO2 Integration Studio. For instructions, see WSO2 Integration Studio. 

There are two ways to debug a developed mediation flow. 

  1. Instant debugging using Micro Integrator ( a light version of ESB profile) packaged with WSO2 Integration Studio. 

  2. Deploy artifacts to an external WSO2 EI server and debug 

Above two approaches are discussed in detail below. 

Instant debugging using Micro Integrator

 

  1. When project artifacts are ready, on the project panel select the project you want to debug and click on Run > Debug



  2. It will ask to choose the artifacts those needs to be deployed to Embedded Micro EI server. Internally WSO2 Integration Studio will generate a CAR application with choosed artifacts and deploy. 

  3. On the console of WSO2 Integration Sturdio, notice that Micro Integrator is started with artifacts deployed. HTTP traffic is listened on 8290 port. 

  4. Add some breakpoints in the flow as below. You can mark a particular mediator as a breakpoint. 

  5. Invoke the service using SOAP UI or some external client. As soon as a request comes to the proxy service fisrt brak point will hit.



    Note that you can view the payload that comes into the mediator and the properties that you can access on the message context. 

  6. Click on "Continue" button. Then the message will be sent to the backend by call mediator and next breakpoint, the log mediator will hit. 



    Note that response can be viewed on Message Envelope tab. The property set before calling the endpoint is also accessible in the context. 

  7.  Click on  "Continue" button again. Response will be received by the client. 

 

Debugging with external WSO2 EI server

Creating the artifact

  1. Deploy the artifact you created on the ESB profile. For instructions, see Packaging your Artifacts into Composite Applications.

Enabling mediation debugging 

Follow the steps below to enable debugging with respect to mediation.

  1. Click Run in the top menu of the WSO2 Integration Studio, and then click Debug Configurations.

  2. Enter the details to create a new configuration as shown in the example below. You need to define two port numbers and a hostname to connect the ESB profile with WSO2 Integration Studio in the mediation debug mode. Note that you need to specify debug mode as Remote



  3. Add the new configuration to debug menu as below. Then you can access the configuation easily. 



  4. Execute the following commands to start WSO2 EI server in the debug mode by passing a system variable at start up:    

    • On Windows: <EI_HOME>\bin\integrator.bat --run -Desb.debug=true

    • On Linux/Solaris: sh <EI_HOME>/bin/integrator.sh -Desb.debug=true

  5. Click downward arrow beside Debug in the WSO2 Integration Studio, and select the new profile above created when the Console indicates the following.

  6.   In WSO2 Integration Studio, right-click and add breakpoints or skip points on the desired mediators to start debugging as shown in the example below. 

     

  7. Now you can send a request to the external WSO2 EI server and debug the flow as discussed under "Instant debugging using Micro Integrator". 

Information provided by the Debugger Tool

When your target artifact gets a request message and when the mediation flow reaches a mediator marked as a breakpoint, the message mediation process suspends at that point. A tool tip message of the suspended mediator displays the message envelope of the message payload at that point as shown in the example below

You can view the message payload at that point of the message flow also in the Message Envelope tab as shown below.

Also, you can view the message mediation properties in the Variables view as shown in the example below.

The Variable view contains properties of the following property scopes.

  • Axis2-Client Scope Properties

  • Axis2 Scope Properties

  • Operation Scope Properties

  • Synapse Scope Properties

  • Transport Scope Properties

You can have a list of selected properties out of the above, in the properties table of the Message Envelope tab, and view information on the property keys and values of them as shown below.

Click Add Property, specify the context and name of the property, and then click OK, to add that property to the properties table in the Message Envelope tab as shown below.

Click Clear Property, to remove a property from the properties table.

Changing the property values

There are three operations that you can perform on message mediation property values as described below.

Injecting new properties

com.atlassian.confluence.content.render.xhtml.migration.exceptions.UnknownMacroMigrationException: The macro 'next_previous_links2' is unknown.