The Message Forward tool can be attached to a Message Responder tool to forward messages to another endpoint (for example, the actual resource, an internal proxy, a virtual asset, and so on). The response returned from the endpoint will be used as the response returned by the Message Responder.

Sections include:

Understanding Message Forward

A Message Forward tool can be added as an output to a Message Responder tool so that when an incoming request is not handled by a Message Responder, the Message Forward tool directs that request to another endpoint. 

For instance, here is an example for a virtualized service:

  1. A client sends a request to a Parasoft Virtual Asset.
  2. A Message Responder is selected based on the specified correlations.
  3. The selected Message Responder, which has a Message Forward attached to it, doesn't have a response for the incoming request.
  4. That Message Responder provides the incoming request to Message Forward, which will invoke the actual live service being virtualized.
  5. Message Forward provides a response from the live service to the Message Responder, which then uses it as its response to the client.

Configuring Message Forward

The Message Forward tool can be used with a Message Responder that is configured to use either the Multiple Response view or Data Source Correlation (but not both).

Do not chain a Message Forward tool against a Message Responder using BOTH the Multiple Response view and Data Source Correlation.

If you want to use Message Forward to route a message to another endpoint when all other Message Responders in your Responder suite fail, set up your Responder suite with the appropriate Message Responders, some that are configured to virtualize messages, and one last one that is configured to forward responses (acting as a catch-all).

To add a Message Forward tool:

  1. Right-click the related Message Responder tool and choose Add Output.
  2. Choose Forward > Traffic > All Tools > Message Forward.
  3. Configure the tool settings to specify where (to which endpoint) you want the message redirected.

The internal transport allows you to forward to an internal endpoint type: either a virtual asset or an internal-transport proxy. 

  • To forward to a virtual asset, choose Endpoint > Virtual asset and specify the full path to the virtual asset (from the Virtualize Server view). For a virtual asset at Virtual Assets > folder > name, you would enter folder/name. For a virtual asset at Virtual Assets > name, you would enter name.
  • To forward to an internal proxy, choose Endpoint > Internal message proxy, then specify the proxy identifier assigned to that proxy.

Preventing Infinite Loops

If your message proxies and/or Message Forward tools inadvertently set up a forwarding cycle like A > B > C > A, this could result in an infinite loop. To prevent such loops, Virtualize is configured to stop forwarding after 10 hops. You can change this by setting the system property parasoft.proxy.loop.max.limit (for example, parasoft.proxy.loop.max.limit=5). 

Note that this loop detection applies only to internally routed forwarding (for example, it applies to routing to localhost, not routing to a host name).