I’m not sure what IS uses as the key for the cached data–it may use data from just the input fields or it may use everything from the pipeline.
[
Potentially.
What is also something to be wary of is that the cached service will restore all the variables to the pipeline from the cache. The means if var foo had ABC in it at cache time, and some other service also uses foo which is set to XYZ when the cached service is called, then the resulting pipeline upon return will have foo set to ABC–which can be disastrous for the integration. (This issue bit me a couple months back and took me a bit of time to debug!)
Here are a few ways in which to call cached services safely:
- As a transformer. This limits the scope of the pipeline for caching.
- Call the service specifying a scope–same impact, just different config/usage.
- Wrap the cached service with a non-cached service. For example, serviceX accepts A, B, C and returns X, Y, Z. Not cached. It does one thing–calls (as a transformer or via scoped invoke) serviceX_cached which has the same inputs and outputs and is cached.
The 3rd approach has the advantage of not requiring anything special by the callers–just call the service as they would anything else.
Hope this helps.
#webMethods#Integration-Server-and-ESB#Flow-and-Java-services