Suppressing the compensation service
Not all web servers are configured to handle SOAP messages containing CoordinationContext elements. We can use WebSphere Application Server to configure a custom property for the compensation service which processes a predefined list of Enterprise Java Beans for which no CoordinationContext should be sent on web service requests.
When the compensation service is used, CoordinationContext elements are included in the outgoing SOAP header. For example:
<wscoor:CoordinationContext soapenv:mustUnderstand="1" ... </wscoor:CoordinationContext>If such a SOAP message is received by a web server which is not configured to process CoordinationContext elements, an exception message is produced. See the following example:Header block local name 'CoordinationContext' is not defined.
We can construct a file containing a list of all Enterprise Java Beans which should not send the CoordinationContext element in web service requests. This file must be in plain text format and must contain one entry per line, in the following format:
application_name#module#bean application_name#module#bean application_name#module#beanHere application_name is the name of the application as known on the server; module is the name of the Enterprise Java Bean jar; and bean is the name of the Enterprise Java Bean.This file must only contain entries for beans not configured to use the compensation service. This custom property will not be effective for any beans listed in the file which have compensation service metadata associated with them.
- Start the console.
- In the navigation pane, click Servers > Server Types > WebSphere application servers > server_name > [Container Settings] Container Services > Compensation Service > [Additional Properties] Custom Properties
- Click New.
- Enter SUPPRESS_CSCOPE_ON_WS_CALLS in the Name field.
- In the Value field, enter a fully qualified file name.
- Click Apply or OK.
- Click Save to save the changes to the master configuration.
- Restart the server.
Results
Web service requests sent from Enterprise Java Beans listed in the custom property file will not contain CoordinationContext metadata in the outgoing SOAP message header.
Compensation service settings Compensation service custom properties