My dear Readers,
Today I wanted to share with you a recent performance issue that I came accross.
My patient reported that the deployment of a specific process application took hours to complete. The application had advanced content and the environment was Intranet only without any access to the Internet.
In the logs I discovered several timeout exceptions, and digging deeper into the FFDCs I found this:
Caused by: org.eclipse.emf.ecore.xmi.PackageNotFoundException: Package with uri 'http://www.ibm.com/xmlns/prod/websphere/scdl/wsdl/6.0.0' not found.
Checking the affected Process Application showed that these URI-References were included in AIS.
The exception stated that BPM was trying to find a so called SCDL-file (Service Component Definition Language) from an internet resource ('http://www.ibm.com/xmlns/prod/websphere/scdl/wsdl/6.0.0'). Since this environment had no internet access, it's pretty clear this request would fail as the file was unreachable. This caused delays and thereby causing the reported performance impact.
A first thought is that all requests to this file would time out and the timeout period multiplied with the components pointing to the respective internet resource would add up to the total delay my patient complained about. But could we tackle this now?
I could think of 2 possible options:
Option 1) Modify all Internet-References in the components of the Process Application
Option 2) Configure the environment in such a way that Internet-Requests get redirected to the localhost or an Intranet-Resource
As my patient's application contained a huge load of components that were referencing Internet-Resources, option 1 would have meant huge efforts. But option 2 needs to be handled with care. Redirecting requests to resources where the file is not present may cause side-effects in case the file requested is needed for important actions. Hence, the files should bemade available in the local/intranet environment to ensure they can be accessed by BPM. Or at least you should verify if the missing files are impacting your applications.
In this case, we determined that an EAR file was validated against the mentioned SCDL-file before the deployment. Since the file was just needed for validation and as it had no impact on the application itself, we went with option 2, which solved the problem.
I hope that some day this will also help you.
And if it does not, take two of these and call me in the morning.
Your Dr. Debug