Wednesday, 30 January 2013

IBM Process Designer - Not playing nicely with IBM Process Center ( BPM Advanced 8.0.1 )

I've seen this a few times now, and wanted to get my initial thoughts down on "paper".

As part of an IBM Business Process Manager Advanced 8.0.1 installation, there's normally a requirement to use the IBM Process Designer (IPD) developer client to create and deploy processes up to the Process Center server.

BPM makes this even easier by including a link to the Process Designer tool from the Process Center page: -



One thing that has been bugging me is that the downloaded Process Designer bundle: -

-rw-r--r--@  1 hayd  staff   423M 30 Jan 09:41 IBM Process Designer.zip

( which includes Eclipse )

doesn't seem to automagically connect to the right Process Center URL.

Once one expands the downloaded ZIP file, there's a configuration file - eclipse.ini e.g. /Users/hayd/Downloads/IBM Process Designer/eclipse.ini which contains the following line: -

-install
file:.
-configuration
configuration
-name
IBM BPM
-consoleLog
-dir
ltr
-clean
-vm
./AppClient/java/jre/bin/javaw.exe
-vmargs
-Xms128m
-Xmx512m
-XX:PermSize=128m
-XX:MaxPermSize=128m
-Djavax.net.ssl.keyStoreType=PKCS12
-Djavax.net.ssl.keyStore=./etc/key.p12
-Djavax.net.ssl.keyStorePassword=WebAS
-Djavax.net.ssl.trustStoreType=PKCS12
-Djavax.net.ssl.trustStore=./etc/trust.p12
-Djavax.net.ssl.trustStorePassword=WebAS
-Dcom.ibm.CORBA.ConfigURL="file:resources/sas.client.props"
-Dcom.ibm.CORBA.FragmentSize="0"
-Dcom.ibm.SSL.ConfigURL="file:resources/ssl.client.props"
-Djava.security.auth.login.config="file:resources/wsjaas_client.conf"
-Djava.naming.factory.initial=com.ibm.websphere.naming.WsnInitialContextFactory
-Dcom.ibm.bpm.processcenter.url=https://bpmpc.uk.ibm.com:8443
-Djava.ext.dirs="./AppClient/java/jre/lib/ext;./AppClient/lib;./AppClient/plugins"
-Dcom.lombardisoftware.core.TWEnvironment.environmentName=AUTHORING_ENVIRONMENT
-DentityExpansionLimit=2147483647


which looks good.

However, upon startup, IPD was still trying to connect to the wrong port with the wrong protocol during the authentication process.

Using the above example, IPD would try and authenticate against: -


rather than: -


Talking with a learned colleague in Germany, it looks like IPD is making a request to the Process Center on the right URL - bpmpc.uk.ibm.com:8443 - *BUT* is then retrieving the wrong bootstrap host/port combination: -

the initial call is to /repo, which will respond with the server's bootstrap address, which then will be used for EJB and JMS communication.
It that bootstrap address contained an unresolvable host name, you'd see the described behaviour.


He also directed me to a new ( to me ) configuration file: -

/opt/IBM/WebSphere/AppServer/profiles/PCDMProfile/config/cells/PCCELL/nodes/PCNODE1/servers/PCSR011.AppTarget/process-center/TeamWorksConfiguration.running.xml

which contains a whole slew of WRONG host/port combinations: -

    <images-prefix>http://rhel6.uk.ibm.com:9080/teamworks</images-prefix>
    <portal-prefix>http://rhel6.uk.ibm.com:9080/portal</portal-prefix>
    <repository-prefix>http://rhel6.uk.ibm.com:9080/ProcessCenter</repository-prefix>
    <servlet-prefix>http://rhel6.uk.ibm.com:9080/teamworks</servlet-prefix>
    <webapi-prefix>http://rhel6.uk.ibm.com:9080/webapi</webapi-prefix>
      <base-url>http://rhel6.uk.ibm.com:9080/teamworks/webservices</base-url>
TeamWorks Link:  http://rhel6.uk.ibm.com:9080/portal/jsp/getProcessDetails.do?bpdInstanceId=<#= tw.system.process.instanceId #>
    <portal-prefix>http://rhel6.uk.ibm.com:9080/portal</portal-prefix>
    <process-admin-prefix>http://rhel6.uk.ibm.com:9080/ProcessAdmin</process-admin-prefix>
    <teamworks-webapp-prefix>http://rhel6.uk.ibm.com:9080/teamworks</teamworks-webapp-prefix>
      <default-namespace-uri>http://rhel6.uk.ibm.com:9080/schema/</default-namespace-uri>
    <coach-designer-xsl-url>http://rhel6.uk.ibm.com:9080/teamworks/coachdesigner/transform/CoachDesigner.xsl</coach-designer-xsl-url>
      <provider-url>corbaname:iiop:rhel6.uk.ibm.com:2810</provider-url>
    <jndi-url>corbaname:iiop:rhel6.uk.ibm.com:2810</jndi-url>
        <url>jdbc:db2://rhel6.uk.ibm.com:50000/BPMDB</url>
        <client-link>http://rhel6.uk.ibm.com:9080/teamworks</client-link>
    <repository-server-url>http://rhel6.uk.ibm.com:9080/ProcessCenter</repository-server-url>
    <server-host>rhel6.uk.ibm.com</server-host>
      <env key="java.naming.provider.url" value="corbaname:iiop:rhel6.uk.ibm.com:2810" />

I've yet to find out if I can automagically update this file during the installation and configuration phase BUT at least I know where to look.

Meantime, here's some required reading: -



*UPDATE* Reading the last link, it looks like TeamWorksConfiguration.running.xml gets its configuration from 99Local.xml and 100Custom.xml, so that's the first place I'm going to look :-)

*UPDATE AGAIN*

Thanks to some help from my mate, Bob, it's now working OK.

It's all down to 100Custom.xml AND the need to perform a FULL resynchronization of the cell configuration.

This is the DM Profile cell/node/server copy: -

-rw-r--r-- 1 wasadmin wasadmins 3880 Jan 29 16:09 /opt/IBM/WebSphere/AppServer/profiles/PCDMProfile/config/cells/PCCELL/nodes/PCNODE1/servers/PCSR011.AppTarget/process-center/config/100Custom.xml

and this is the Node Profile cell/node/server copy: -

-rw-r--r-- 1 wasadmin wasadmins 2757 Jan 29 13:52 /opt/IBM/WebSphere/AppServer/profiles/PCN1Profile/config/cells/PCCELL/nodes/PCNODE1/servers/PCSR011.AppTarget/process-center/config/100Custom.xml
I did a full resynch. and this is what I now have: -

-rw-r--r-- 1 wasadmin wasadmins 3880 Jan 29 16:09 /opt/IBM/WebSphere/AppServer/profiles/PCN1Profile/config/cells/PCCELL/nodes/PCNODE1/servers/PCSR011.AppTarget/process-center/config/100Custom.xml

So the full resynch. was the missing link :-)

After restarting the AppTarget cluster, I'm now seeing that the Node Profile copy of TeamWorksConfiguration.running.xml is getting updated: -

-rw-r--r-- 1 wasadmin wasadmins 373599 Jan 30 17:13 /opt/IBM/WebSphere/AppServer/profiles/PCN1Profile/config/cells/PCCELL/nodes/PCNODE1/servers/PCSR011.AppTarget/process-center/TeamWorksConfiguration.running.xml

and it's got the correct entries from 100Custom.xml: -

...
    https://bpm801.uk.ibm.com:8443/teamworks
    https://bpm801.uk.ibm.com:8443/portal
    https://bpm801.uk.ibm.com:8443/ProcessCenter
    https://bpm801.uk.ibm.com:8443/teamworks
    true
    https://bpm801.uk.ibm.com:8443/webapi

...

Now to download a new copy of Process Designer, and see whether it connects OK.

No comments:

Note to self - use kubectl to query images in a pod or deployment

In both cases, we use JSON ... For a deployment, we can do this: - kubectl get deployment foobar --namespace snafu --output jsonpath="{...