Chained services

Questions that you might ask about chained services.

Although chained services are supported in production environments, you should avoid them. For better results, define a solution that requires only one service that processes the message.

What is service-chaining?

Service-chaining is when a two or more services on the same DataPower® Gateway are required to process messages. In rare situations, the processing that a single service offers is insufficient and you must use multiple services for correct processing. For example, you might need the Multi-Protocol Gateway to accept the request and then pass the message to the Web Service Proxy for additional processing.

Are there configuration considerations for chained services?

When you chain services, be aware of the following configuration considerations.
  • Disable persistent connections between services. You can use persistent connections with chained services.
    • Between the remote client and the first local service
    • Between the last local service and the remote server
  • The entry point to the second or later service in the chain must use 127.0.0.1 for front-end access. Do not use the VIP of a standby group that is assigned to a network interface.
    • The destination address for the first service must be 127.0.0.1.
    • The listening address for the handler of the second or later service must be 127.0.0.1. If you do not use this internal, loopback connection, a remote client can directly access these services.

Do chained services process messages differently?

Chained services process messages like a single service, but the first service sends the partially processed message to other services for additional processing. Unlike a single service, the error from the remote server cannot be directly returned to the remote client because the error must be handled through the service chain. Therefore, you must define custom error-handling within the appropriate services in the message flow.

Before sending XML content between services, all XML content is serialized. Serialization takes time and resources.

Based on the services in the chained service, the system logs can include a global transaction ID for each transaction. The following services support the global transaction ID.
  • Multi-Protocol Gateway
  • Web Service Proxy
  • XML Firewall

Are the startup considerations for chained services?

With chained services, you might need to allow all services to become active by including a delay. During a reboot or firmware reload, the first service in the chain might become active before the other required services. In this case, a health check can return a positive result although the entire chain is not ready to process messages.

Are there considerations for lifecycle management of chained services?

To manage the deployment of chained services, you must manage all services in the chain as a collective. When you export a single service, the operation does not include the other services in the created package. To transfer a chained service across your development, test, and production environments, locate and export all services in the chain to create a single package.