Good practice – Use the sync-over-async invocation pattern with caution
By Phil Coulthard
When you develop advanced IBM® Business Process Manager (BPM) applications using IBM Integration Designer, use caution when you invoke an asynchronous component or import using a synchronous invocation style.
Invoking an asynchronous component or import using a synchronous invocation style causes the infrastructure underneath to switch from synchronous to asynchronous, often with unintended consequences including a new transaction boundary, use of threads to wait on the asynchronous response, and specific retry behavior if the invocation fails. This now infamous “Sync Over Async” situation is considered an anti-pattern because of the issues it can cause.
Follow the instructions in Synchronous over asynchronous invocation.
Applicable editions: Advanced
Applicable releases: All
Source: IBM
Hi, I am having all problems because of this anti pattern i.e.
Lack of transaction propagation
Multiple retries that result in multiple invocations of the same service
Time outs when the default wait time for invocations is exceeded
Blocked threads and thread pool depletion, which are caused when a thread is allocated for each asynchronous call and waits for a response.
How can i resolved these issue in our code.
The Sync-Async boundary hasn’t been demarcated properly. So the issues.