Dear friends of the debugging fun,
Today I thought I would share a fairly common issue that I have come across quite frequently in the past weeks.
When creating a new managed asset in the BPM Process Designer, you may receive an error like the following:
Now, what can we do to debug this? We'll use fiddler!
For those of you who do not yet know fiddler, below a short explanation.
Fiddler will act as an HTTP proxy and will need to be installed on the client.
If all goes well it should capture ALL HTTP traffic on the client, which should include the HTTP communication between ProcessDesigner and ProcessCenter.
I will try my best in ASCII-Art:
This is how the communication usually works
| Process Center Repository | <----------http(s)----------> | Process Designer |
When you run fiddler, it will looks like this:
| Process Center Repository | <----------http(s)----------> | Fiddler | <----------http(s)----------> | Process Designer |
This will allow us to look into all the details of the communication between ProcessCenter and Process Designer. Header Information, Cookies, response codes etc.
There are actually 2 versions of fiddler that you could use. A very light weight version named "fiddlercap" (www.fiddlercap.com), which basically only provides a small UI with a few buttons and options. This should be sufficient for just capturing data.
Please find below an IBM Support TV video with instructions on how to use fiddlercap (starting at 2:40):
However, instead of recreating the problem in your browser you would simply recreate it in PD. Please remember to select the option "decrypt HTTPs traffic".
The second version is the full version of fiddler, with which you can (http://www.telerik.com/download/fiddler). This provides a lot of more options, but for recording we would also just need the "Decrypt HTTPs traffic" option to be enabled. For fiddler, we have another IBM Support TV video with instructions on how to record traffic:
Once you recorded the error, open fiddler and review the frames. You may see an HTTP call to the /assetServlet URI. This is the one to look at!
What you may see is something like this:
http://myhost.com:9080/ProcessCenter/repository/assetServlet to
https://myhost.com:9443/ProcessCenter/repository/assetServlet - so basically a redirect to the https port.
Now this indicates that you may not have set the "useHTTPSURLPrefixes" parameter to 'true' in your cluster-bpm.xml file.
The entry would usually look like this:
<bpdServer xmi:type="BPMConfiguration:BPMProcessCenter" xmi:id="BPMProcessCenter_1404198504697" useHTTPSURLPrefixes="true" httpProtocolOnly="true">
The following link to our Knowledge Center provides you with the steps to take to update your settings:
http://www-01.ibm.com/support/knowledgecenter/SSFTN5_8.5.5/com.ibm.wbpm.imuc.doc/topics/tconnect_to_pctr.html?cp=SSFTN5_8.5.5&lang=en
Once you have set the useHTTPSURLPrefixes to true, try again.
What this will do is it will prevent the redirect to the SSL port as the HTTPS URL will be used from the beginning. This will avoid the 302 redirect and the error.
And if this does not help, take two of these and call me in the morning.
Your Dr. Debug