CloudStreams 10.5 | webMethods CloudStreams | Administering webMethods CloudStreams | Virtual Services | Creating a New Virtual Service (SOAP) | The In Sequence Step (SOAP) | The Routing Rule Step for HTTP or HTTPS (SOAP) | The Content-Based Routing Rule Step (SOAP)
 
The Content-Based Routing Rule Step (SOAP)
If you have a native service that is hosted at two or more endpoints, you can use the Content-Based routing protocol to route specific types of messages to specific endpoints based on specific values that appear in the request message.
You might use this capability, for example, to determine which operation the consuming application has requested, and route requests for complex operations to an endpoint on a fast machine.
The requests are routed according to the content-based routing rules you create. That is, they are routed based on the successful evaluation of one or more XPath expressions that are constructed utilizing the content of the request payload. For example, a routing rule might allow requests for half of the methods of a particular service to be routed to Service A, and the remaining methods to be routed to Service B.
*To configure the Routing Rule step for Content-Based routing (SOAP)
1. Open Software AG Designer and display the CloudStreams Development perspective by clicking Window > Open Perspective > Other > CloudStreams Development.
2. In the CloudStreams Governance view, expand your CloudStreams Governance project and double-click the virtual service name.
3. Expand In Sequence.
4. Click Routing Rule and complete the fields in the General page in the Properties view as follows.
Option
Description
Name
You can optionally change the step name. There are no naming restrictions.
Type
(Read-only field.) Routing Rule.
Protocol
(Read-only field.) HTTP.
Routing Type
Select Content-Based.
Rule Name
Assign a name to the rule.
XPath
Create an XPath expression as follows:
a. Click the icon next to this field to display the XPath Editor.
b. In the XPath Editor that appears, the Namespace tab displays all predefined namespaces in the WSDL. If you want to add custom namespaces, click Add Custom Namespace/prefix, specify a name and value for the namespace, and click OK. To add additional rows, use the plus button at the end of the row to add them.
c. In the XPath Editor's Nodes tab, expand the namespace's node, choose the method you want for the XPath expression, and click OK.
d. In the XPath Editor's Evaluator tab, evaluate the XPath expression by specifying an argument in the XPath Expression field, and clicking Evaluate.
The true/false result of the evaluation is displayed in the Result field.
To specify additional XPath expressions, use the plus button at the end of the row to add them.
Route To
Specify where to route the request if the rule criteria are met. Specify either the URL of a native service or a connection pool name.
Click the icon next to this field and complete the Configure Endpoint Properties dialog box as follows:
*Optimization Method: Select one of the following options:
*None: The default.
*MTOM: Indicates that CloudStreams expects to receive a request with a Message Transmission Optimization Mechanism (MTOM) attachment, and will forward the attachment to the native service.
*SwA: Indicates that CloudStreams expects to receive a SOAP with Attachment (SwA) request, and will forward the attachment to the native service.
Note:
Bridging between SwA and MTOM is not supported. If a consumer sends an SwA request, CloudStreams can only forward SwA to the native provider. The same is true for MTOM, and applies to responses received from the native provider. That is, an SwA or MTOM response received by CloudStreams from a native provider will be forwarded to the caller using the same format it received.
Note:
When sending SOAP requests that do not contain a MTOM or SWA attachment to a virtual service for a native provider endpoint that returns an MTOM or SWA response, the request Accept header must be set to 'multipart/related' (or the virtual service's Request Processing Step should include an IS service callout that sets the BUILDER_TYPE context variable to 'multipart/related'). This is necessary so CloudStreams knows how to parse the response properly.
*Connection Timeout: The time interval (in seconds) after which a connection attempt will timeout. If a value is not specified (or if the value 0 is specified), CloudStreams will use the default value specified in Integration Server.
*Read Timeout: The time interval (in seconds) after which a socket read attempt will timeout. If a value is not specified (or if the value 0 is specified), the default is 30 seconds.
*SSL Options: Optional. To enable SSL client authentication for the endpoint, you must specify values for both the Client Certificate Alias field and the IS Keystore Alias field. If you specify a value for only one of these fields, a deployment error will occur. You may leave both fields blank.
*Client Certificate Alias: The client's private key to be used for performing SSL client authentication.
*IS Keystore Alias: The keystore alias of the instance of Integration Server on which CloudStreams is running. This value (along with the value of Client Certificate Alias) will be used for performing SSL client authentication.
Default To
Enter a native service endpoint to route the request to in case all routing rules evaluate to False. Then, click the icon next to this field and complete the Configure Endpoint Properties dialog box, as described for the Route To field above.