Tuesday, September 24, 2013

IBM Connections 4 - SPNEGO ain't working

This was a blast from the past for me, having been away from IBM Connections and WebSphere Portal for nearly a year.

I took a call from a customer with whom I worked in 2010-12, who was finding that SPNEGO-based Single Sign-On was NOT working for IBM Connections 4, even though it WAS working for WebSphere Portal 8, both of which run on WAS 8, and use the same Active Directory infrastructure.

In essence, they accessed any protected URL in Connections, but found that the HTTP 401 Authenticate/Negotiate response was never issued.

I made a few suggestions on the call, including referencing back to my Connections/SPNEGO/AD presentation: -


including enabling tracing to see what's going on.

I also raised a question about DNS and reverse lookups ( IP addresses to hostnames ) as I know that had caused a problem in the past.

Later in the day, I received an email from my customer, with some good news - he'd fixed it, and it's all now working.

They enabled tracing, and could see the following in the logs: -

[24/09/13 14:23:17:458 BST] 00000081 WebAuthentica <  handleSSO: (null) Exit
[24/09/13 14:23:17:458 BST] 00000081 WebAuthentica 3   handleSpnegoWebAuthentication was skipped.

which made no sense, as the URL was definitely protected, and yet they were falling back to the fallback login page: - 

[24/09/13 14:23:17:458 BST] 00000081 WebAuthentica >  handleCustomLogin Entry
[24/09/13 14:23:17:458 BST] 00000081 WebAuthentica 3   Form based login is configured for the resource
[24/09/13 14:23:17:458 BST] 00000081 WebAuthentica >  getFormURL Entry


When they accessed an unprotected URL ( one not being protected by SPNEGO ), they could see a log entry acknowledging that the URL was to be skipped.

They then removed all of the SPNEGO filters e.g.

request-url!=noSPNEGO;
request-url!=/mobile;
request-url!=/nav;
request-url!=/bundles/js;
request-url!=/static

 validating them by reformatting the list in Notepad, and then identified the problem - they had: -

requesturl

rather than: -

request-url

:-)

Thanks to Dave and his team for sharing the problem and, better still, the solution :-)

Monday, September 23, 2013

Book Review - Shortcuts to Success: Project Management in the Real World - Second Edition

This is the second edition of Elizabeth Harrin's excellent book on project management, the first of which I read a few years back.

Whilst I've never been interested in switching disciplines per se, I find it useful to maintain a working knowledge of the Project Management profession, especially as I've worked with so many good PMs over the years, most recently since I've worked in SWG Services.

This is the second PM book that I've reviewed in the past few months, with John Turner's A Project in your Pocket here on the blog back in July.

In Shortcuts to Success, Elizabeth has provided a really useful cookbook for PMs of all levels, whether new to the profession, or experienced practitioners.

This is a relatively short book - ~200 pages - and is chock-full of references, case studies and quotations. Each short chapter is clear and concise, focusing on a specific area of the discipline. It's not quite pocket-sized, but I'm absolutely certain that there's an ebook version for the ebook readers out there.

The covers all the important aspects of project management, from budgeting, through scope and people management, to teaming, collaboration and documentation.

As you can imagine, with my background in collaboration, some of my favourite chapters include those that focus on mentoring, matrix management, collaborative document management, and experience sharing.

Each chapter includes one or more case studies, hence the "real world" title, which are used to illustrate the particular point that Elizabeth is seeking to make.

The book is clearly based upon experience, both of the author and the contributors, which makes it a useful reference into which anyone involved in project delivery can, and, in my view, should, dip.

I strongly recommend this book to anyone working in a project delivery role, regardless of age, discipline and experience.


BT Home Hub 3 and Cisco VPN - Clamp Those Ports, Baby

This morning, I was struggling to get a Cisco VPN client ( Version 5.0.07.0410 ) to connect to its target VPN server, even though I'd previously used it - ON A DIFFERENT NETWORK.

Thanks to a quick Google search, I found reference to a Port Clamping setting within my BT Home Hub's configuration screen: -


Once I enabled this ( no restart required ), it worked like a dream, and I was up and running in no time at all.

Thanks, Google :-)

Updating WAS JDBC Data Source Passwords - Don't forget to reboot

In the words of The IT Crowd ( back on for a final time on September 27 ), "Have you tried turning it off and on again?".

As part of a normal password expiration process, we needed to update the JDBC Data Source passwords ( actually, the Java2 Authentication Aliases = J2C Aliases ) for a BPM Standard 7.5.1Process Server installation.

Having changed the passwords, remembering to add a comment indicating when and who, I tested the JDBC data sources, which immediately failed with: -

The test connection operation failed for data source LocalZoneDB on server nodeagent at node gbrdsr000000918_base with the following exception: java.sql.SQLException: [jcc][t4][2013][11249][3.61.65] Connection authorization failure occurred. Reason: User ID or Password invalid. ERRORCODE=-4214, SQLSTATE=28000DSRA0010E: SQL State = 28000, Error Code = -4,214. View JVM logs for further details.

The test connection operation failed for data source LocalZoneDB on server nodeagent at node gbrdsr000000917_base with the following exception: java.sql.SQLException: [jcc][t4][2013][11249][3.61.65] Connection authorization failure occurred. Reason: User ID or Password invalid. ERRORCODE=-4214, SQLSTATE=28000DSRA0010E: SQL State = 28000, Error Code = -4,214. View JVM logs for further details.


Hmmm, I thought - what have I missed ?

Initially, I restarted the Deployment Manager ( from where I was running the Test Connection ), but to no avail.

I then checked and rechecked the passwords that I'd entered via the Integrated Solutions Console GUI, by comparing them to the encoded passwords here: -

/opt/IBM/WAS/wasadmin1/app/profiles/dmgr/config/cells/ProcServ02Cell/security.xml

and confirmed that they were all exactly as I'd intended to enter them.

I then asked the DBA to validate the passwords; again, they worked perfectly ( he was testing from the DB2 server using su - for the respective user ID ).

Finally ……

I restarted the Node Agents :-)

And…. guess what ….. ?

It worked.

Why, I hear you cry ?

Because the JDBC Data Source Test Connection process, whilst initiated by the Deployment Manager, actually runs in the Node Agent JVM, hence the need for the restart :-)


 



Thursday, September 19, 2013

IBM BPM Standard 7.5.1.1 - Problem importing snapshots into a Process Server

So I've been doing a lot of work with BPM snapshots and scripting recently.

This time around I was looking to install a snapshot to an offline Process Server, as follows: -

$ cd /opt/IBM/WAS/wasadmin1/app/profiles/dmgr/bin
./wsadmin.sh -host processserver.uk.ibm.com -port 43003 -user tw_admin -password passw0rd -lang jython -p /home/wasadmin1/davehay_soap_override.props
wsadmin> AdminTask.BPMInstallOfflinePackage('[-inputFile /home/wasadmin1/LR2R3_1.zip]')

 which (sadly) failed with: -

WASX7015E: Exception running command: "AdminTask.BPMInstallOfflinePackage('[-inputFile /home/wasadmin1/LendingR2R3.twx]')"; exception information:
java.lang.Exception: java.lang.Exception: java.lang.NullPointerException


Want to know what was wrong ?

I was trying to install the actual TWX file, rather than the ZIP file that contains the TWX file ( as generated by BPMCreateOfflinePackage and BPMExtractOfflinePackage ).

What a muppet :-)

Featured documents for the IBM Business Process Manager products including WebSphere Process Server, WebSphere Enterprise Service Bus, and WebSphere Lombardi Edition

Again, this popped into my inbox, following an interaction with IBM Support over a PMR for the IBM BPM product: -

This document features the most requested documents as well as those identified as valuable in helping answer your questions related to the IBM Business Process Manager (BPM) products including WebSphere Process Server (WPS), WebSphere Enterprise Service Bus (WESB), and WebSphere Lombardi Edition (WLE).

<snip>
In the Spotlight 

• Follow IBM_BPM on Twitter! 
Follow us to receive timely updates on IBM Business Process Manager products, WebSphere Process Server, WebSphere Enterprise Service Bus, and WebSphere Lombardi Edition. Over 3,000 Twitter accounts already follow us. Do you? The following information was in some of our top tweets:
IBM Business Process Management V8.5 products are available 
The IBM Business Process Management V8.5 suite of products are available as of June 14, 2013. Download the files by clicking the links in this document.
Data querying takes a long time and process server database tables are using too much disk space with WebSphere Lombardi Edition (WLE) and the IBM Business Process Manager (BPM) products 
You see long query times on business process definition (BPD) and Task tables, and your process server database tables are occupying too much disk space.
Configuring SSL for IBM Business Process Manager (BPM) V7.5.x 
The Information Center is missing a description of the steps to configure Secure Sockets Layer (SSL) communication between product components.
How can I delete a large number of failed events at once for WebSphere Process Server (WPS)? 
The Failed Event Manager (FEMgr) shows a large number of failed events. The failed events must be deleted. Using the "Clear All" button in the Failed Event Manager application, different exceptions (transaction timeouts, OutOfMemoryExceptions etc.) occur. A smaller number of failed events can be selected and deleted at once without problems.
• Follow the IBM Business Process Management Products Support Blog! 
This blog provides technical information for the business process management family of products. The following blog entries represent some of the recent entries in the blog. You might want to check them out!
</snip>

Wednesday, September 18, 2013

IBM BPM - Getting a list of installed Toolkits

My client asked me how they could get a list of installed Toolkits without needing to paste through pages of UI.

I checked the IBM BPM Information Center: -


specifically: -


which provides the following REST endpoint URL: -

/rest/bpm/wle/v1/toolkit

I tried this on one of our Process Center boxes: -

https://process-center.uk.ibm.com/rest/bpm/wle/v1/toolkit

and got back an XML document listing all of the toolkits: -

<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
- <bpm:ResponseData xmlns:bpm="http://rest.bpm.ibm.com/v1/data" xmlns:ex="http://rest.bpm.ibm.com/v1/data/exception">
  <status>200</status>
- <data xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:sys="http://rest.bpm.ibm.com/v1/data/system" xsi:type="sys:ProcessApps">
- <processAppsList>
  <ID>2066.1b351583-e5cb-43b7-baee-340a63130ea7</ID>
  <shortName>TWSYS</shortName>
  <name>System Data</name>
  <description>Teamworks System Data</description>
  <lastModifiedBy>tw_admin</lastModifiedBy>
  <lastModified_on>2013-06-25T09:49:16Z</lastModified_on>
  </processAppsList>
- <processAppsList>
  <ID>2066.9715841f-b0f3-4e32-9db0-708f8bd3e93a</ID>
  <shortName>PTK</shortName>
  <name>Processes and Tasks</name>
  <description>A toolkit for interfacing with the Javascript API for retrieval of generic information about Processes Instances and Tasks.</description>
  <lastModifiedBy>tw_admin</lastModifiedBy>
  <lastModified_on>2013-07-23T09:46:00Z</lastModified_on>
  <defaultVersion>Main</defaultVersion>
  </processAppsList>
- <processAppsList>

... 

which is useful.

:-)

Tuesday, September 17, 2013

Featured documents for IBM WebSphere Application Server

This list kindly popped up in my in-box today, thanks to IBM Support, following an interaction I'd had with them regarding a Problem Management Report (PMR).

Here's a snippet: -

Abstract

This list features the most requested documents as well as those identified as valuable in helping answer your questions related to IBM WebSphere Application Server. The list will be updated periodically to reflect new trends and issues.

In the Spotlight 

• 11 September 2012 UPDATE: End of Support for WebSphere Application Server 6.1 is now 30 Sept 2013 

This is a reminder of the upcoming WebSphere Application Server V6.1 products' End of Support date of 30 September 2013.

• So you didn't migrate from WAS V6.1? Now What? 

This blog outlines the options you have available from IBM in terms of migrating (upgrading) to a new version or obtaining a support extension (SE).

• Security Bulletin: Potential Security Vulnerabilities fixed in IBM WebSphere Application Server 8.5.5 

Cross reference list for security vulnernabilities fixed in IBM WebSphere Appplication Server Fix Pack 8.5.5

• Security Bulletin: Potential Security Vulnerabilities fixed in IBM WebSphere Application Server 8.0.0.7 

Cross reference list for security vulnerabilities fixed in IBM WebSphere Application Server Fix Pack 8.0.0.7

The full document is here: -



Storing transaction and compensation logs in a relational database for high availability

This is something about which I've been reading recently.

I was semi-aware that WebSphere Application Server 8.5.5 offers the option to store transaction and compensation logs in a relational database rather than as operating system files, providing high availability (HA) support without having to use a shared file system.


However, a colleague also pointed out that this functionality has been retrofitted into WAS 8.0 via Fixpack 7 ( 8.0.0.7 ), as per the Information Center here: -


Case study: Tuning WebSphere Application Server V7 and V8 for performance

This is relatively old ( 2011 ) but good: -

Summary:  IBM® WebSphere® Application Server supports an ever-growing range of applications, each with their own unique set of features, requirements, and services. Just as no two applications will use an application server in exactly the same way, no single set of tuning parameters will likely provide the best performance for any two different applications. Most applications will generally realize some performance improvement from tuning in three core areas: the JVM, thread pools, and connection pools. This article uses the Apache DayTrader Peformance Benchmark Sample application to demonstrate what you can tune and how to go about tuning it, depending on the major server components and resources that your application uses. Updated for WebSphere Application Server V8. This content is part of the IBM WebSphere Developer Technical Journal.

Monday, September 16, 2013

Monitoring business processes: How your topology influences your monitoring approach

This popped up in Twitter, from IBM developerWorks: -


Summary:  IBM® Business Process Manager and IBM Business Monitor can work in concert to provide superior visibility and process performance insight. Choosing the appropriate deployment topology is an important step in any project that involves combining these products. Different topological choices may influence the development and deployment process of the application artifacts created for IBM BPM and IBM Business Monitor. This article describes the topological options that are available, their trade-offs, and how you need to plan for development and deployment depending on the topology you adopt.

Definitely worth a read if you have an interest in, or requirement for, Business Activity Monitoring (BAM).

Exporting large applications from IBM Business Process Manager (BPM) might take over an hour

Saw this on Twitter last week: -

Problem(Abstract)

When you export a very large application or export from a very active process center, the export time might take over an hour. The export process might even fail or result in an incomplete file.

Diagnosing the problem

Check the following key points to resolve this problem:

• Verify that the user, who is exporting the application, is a local user or LDAP user.
• Examine the row count size of the LSW_PO_VERSIONS table.
• Obtain a list of indexes in the LSW_PO_VERSIONS table.
• Obtain the current size of the buffer cache and the shared pool size for the database.

Resolving the problem

There are several resolutions to this problem. You might need to address one or all of the following resolutions to decrease the time to export an application:

• If a local user export is faster, apply the fix for APAR IC91473, which is available through the following links in Fix Central:
• IBM Business Process Manager Standard
• IBM Business Process Manager Advanced

• The growth of the LSW_PO_VERSIONS table is normal and expected. When the row size reaches 2 million rows or more, the time to export an application can increase. Each save to an asset in the process designer is a new row in this table. The following indexes can assist with the speed of the export process. Add the indexes and have the database server process these indexes before running the export process again.
• CREATE INDEX IDXA_PO_VERSIONS ON lsw_po_versions 
(PO_TYPE,BRANCH_ID,START_SEQ_NUM,END_SEQ_NUM,PO_VERSION_ID) COMPUTE STATISTICS;
• CREATE INDEX IDXB_PO_VERSIONS ON lsw_po_versions
(BRANCH_ID,END_SEQ_NUM)COMPUTE STATISTICS;
• CREATE INDEX IDXC_PO_VERSIONS ON lsw_po_versions
(BRANCH_ID,START_SEQ_NUM,END_SEQ_NUM) COMPUTE STATISTICS;
• CREATE INDEX IDXD_PO_VERSIONS ON lsw_po_versions 
(BRANCH_ID,END_SEQ_NUM,PO_TYPE,PO_ID) COMPUTE STATISTICS;
• CREATE INDEX IDXE_PO_VERSIONS ON lsw_po_versions 
(PO_VERSION_ID,PO_TYPE,BRANCH_ID,START_SEQ_NUM,END_SEQ_NUM) COMPUTE 
STATISTICS; 


• The database also needs to have adequate cache space. The buffer cache should be 2 GB or more. The shared pool size should be 1 GB or greater.


This is definitely worth a look …..

Friday, September 6, 2013

Configuring cross data center BPM deployment environment to achieve faster disaster recovery

Thanks to @WAS_John for sharing this with me: -

This article describes an infrastructure topology for IBM® Business Process Manager that includes elements that reside in distinct data centers that may be geographically separated from each other. Such a topology can be useful in achieving disaster recovery objectives in certain circumstances, especially when recovery times faster those offered by traditional approaches are desired. Additionally, the strategy described in this paper uses Oracle®'s Data Base File System (DBFS) to enable the database manager to control replication of the WebSphere® transaction and compensation logs, as well as traditional IBM BPM database content. This content is part of the IBM Business Process Management Journal.

Wednesday, September 4, 2013

From the coal face - IBM BPM - Tracing Process Center to Process Server communication

A friend of mine was having fun and games with the installation of a BPD snapshot from his Process Center to a connected Process Server, via HTTPS.

The solution to the problem was to ensure that he had: -

<deploy-snapshot-using-https merge="replace">true</deploy-snapshot-using-https>

in 99Local.xml ( or, better still, the overriding 100Custom.xml ) on BOTH the Process Center and Process Server cells.

However, on the voyage of discovery, he realised that he could learn a LOT about the way that the process works by enabling JVM-level tracing.

The particular trace strings that made a difference were: -

com.ibm.bpm.fds.*=all:ProcessApplicationLifecycle=all:com.ibm.bpm.fds.repo.util.ContributionHelper=off

and: -

WLE.*=all

Nice :-)


Tuesday, September 3, 2013

IBM Update Installer for WebSphere Software - Problem updating IBM HTTP Server 6.1

One of my colleagues had some fun and games upgrading IHS yesterday, using the IBM Update Installer for WebSphere Software.

He was trying to update IHS 6.1 to the latest Fixpack 45 level.

This is what he saw in the Update Installer logs: -

(Sep 3, 2013 10:04:51 AM), Install, com.ibm.ws.install.ni.ismp.actions.ISMPLogFileAction, msg1, Selected Maintenance Package Path: /opt/IBM/WebSphere/UpdateInstaller/maintenance/Fixcentral-6.1.0-WS-IHS-LinuxX64-FP0000045.pak
(Sep 3, 2013 10:04:51 AM), Install, com.ibm.ws.install.ni.ismp.actions.ISMPLogFileAction, msg1, ********************************************************************************
(Sep 3, 2013 10:04:51 AM), Install, com.ibm.ws.install.ni.ismp.actions.ISMPLogFileAction, msg1, Information for the current install/uninstall operation.
(Sep 3, 2013 10:04:51 AM), Install, com.ibm.ws.install.ni.ismp.actions.ISMPLogFileAction, msg1, ********************************************************************************
(Sep 3, 2013 10:04:51 AM), Install, com.ibm.ws.install.ni.ismp.actions.ISMPLogFileAction, msg1, Current Operation: install
(Sep 3, 2013 10:04:51 AM), Install, com.ibm.ws.install.ni.ismp.actions.ISMPLogFileAction, msg1, Product Location: /opt/IBM/HTTPServer
(Sep 3, 2013 10:04:51 AM), Install, com.ibm.ws.install.ni.ismp.actions.ISMPLogFileAction, msg1, Product Name: null
(Sep 3, 2013 10:04:51 AM), Install, com.ibm.ws.install.ni.ismp.actions.ISMPLogFileAction, msg1, Prereq Check Messages:
(Sep 3, 2013 10:04:51 AM), Install, com.ibm.ws.install.ni.ismp.actions.ISMPLogFileAction, msg1, Maintenance Package Path: /opt/IBM/WebSphere/UpdateInstaller/maintenance/Fixcentral-6.1.0-WS-IHS-LinuxX64-FP0000045.pak
(Sep 3, 2013 10:04:52 AM), Install, com.ibm.ws.install.ni.ismp.actions.SettleNIFRegistryAction, msg1, Current install/uninstall process failed.
(Sep 3, 2013 10:04:52 AM), Install, com.ibm.ws.install.ni.ismp.actions.SetExitCodeAction, msg1, CWUPI0000I: EXITCODE=1
(Sep 3, 2013 10:04:52 AM), Install, com.ibm.ws.install.ni.ismp.actions.ISMPLogFileAction, msg1, For more information on installing components, see the following trace file:
/opt/IBM/HTTPServer/logs/update/unknown/updatetrace.log.gz
(Sep 3, 2013 10:04:52 AM), Install, com.ibm.ws.install.ni.ismp.actions.ISMPLogFileAction, msg1, For more information on running configuration commands, see the following trace file:
/opt/IBM/HTTPServer/logs/update/unknown/updateconfig.log.gz
(Sep 3, 2013 10:04:52 AM), Install, com.ibm.ws.install.ni.ismp.actions.ISMPLogSuccessMessageAction, msg1, INSTCONFFAILED


When he looked at the more detailed log - /opt/IBM/HTTPServer/logs/update/unknown/updatetrace.log.gz - he saw more of the same: -

2013.09.03 10:04:50.568 EDT I IBM Update Installer for WebSphere Software 7.0.0.15
2013.09.03 10:04:50.614 EDT NIFRegistryPlugin.getNIFRegistryURI()
Use normal algorithm to get nifregistry path.
2013.09.03 10:04:50.614 EDT NIFRegistryPlugin.getNIFRegistryURI()
NIFRegistryPath: /opt/.ibm/.nif/.nifregistry
2013.09.03 10:04:50.615 EDT NIFRegistryPlugin.getNIFRegistryURI()
NIFRegistryURI: file:///opt/.ibm/.nif/.nifregistry
2013.09.03 10:04:50.682 EDT NIFRegistryPlugin.doesNIFRegistryFileExist()
NIFRegistry file exists under location: file:///opt/.ibm/.nif/.nifregistry
2013.09.03 10:04:50.682 EDT NIFRegistryPlugin.doesNIFRegistryFileExist()
NIFRegistry file exists under location: file:///opt/.ibm/.nif/.nifregistry
2013.09.03 10:04:51.201 EDT I Scanning metadata under the target location ......
/opt/IBM/HTTPServer
2013.09.03 10:04:51.272 EDT I Selected Maintenance Directory / Packages:/opt/IBM/WebSphere/UpdateInstaller/maintenance/Fixcentral-6.1.0-WS-IHS-LinuxX64-FP0000045.pak
2013.09.03 10:04:51.425 EDT I Fixcentral-6.1.0-WS-IHS-LinuxX64-FP0000045.pak is installed.
2013.09.03 10:04:51.426 EDT I No maintenance package is selected.
2013.09.03 10:04:51.442 EDT I ********************************************************************************
2013.09.03 10:04:51.444 EDT I Selected Maintenance Package Path: /opt/IBM/WebSphere/UpdateInstaller/maintenance/Fixcentral-6.1.0-WS-IHS-LinuxX64-FP0000045.pak
2013.09.03 10:04:51.546 EDT I ********************************************************************************
2013.09.03 10:04:51.549 EDT I Information for the current install/uninstall operation.
2013.09.03 10:04:51.550 EDT I ********************************************************************************
2013.09.03 10:04:51.551 EDT I Current Operation: install
2013.09.03 10:04:51.552 EDT I Product Location: /opt/IBM/HTTPServer
2013.09.03 10:04:51.554 EDT I Product Name: null
2013.09.03 10:04:51.556 EDT I Prereq Check Messages:
2013.09.03 10:04:51.559 EDT I Maintenance Package Path: /opt/IBM/WebSphere/UpdateInstaller/maintenance/Fixcentral-6.1.0-WS-IHS-LinuxX64-FP0000045.pak
2013.09.03 10:04:52.332 EDT I Current install/uninstall process failed.
2013.09.03 10:04:52.335 EDT SettleNIFRegistryAction.execute()
Current install/uninstall process failed.
2013.09.03 10:04:52.337 EDT I CWUPI0000I: EXITCODE=1
2013.09.03 10:04:52.346 EDT I For more information on installing components, see the following trace file:
/opt/IBM/HTTPServer/logs/update/unknown/updatetrace.log.gz
2013.09.03 10:04:52.348 EDT I For more information on running configuration commands, see the following trace file:
/opt/IBM/HTTPServer/logs/update/unknown/updateconfig.log.gz
2013.09.03 10:04:52.348 EDT I INSTCONFFAILED

again with nothing overly obvious.

Noting that he was using version 7.0.0.15 of the IBM Update Installer for WebSphere Software, I suggested that he consider updating the Update Installer itself.

This he did, downloading the most recent version - IBM Update Installer V7.0.0.29 for WebSphere Software for Linux - and tried again.

This time, it worked.

It's not obvious why it failed, but the moral of the story is …. update your Update Installer before updating your WebSphere software products :-)

PS Of course, with IHS 8 ( and all of the WAS 8 family ), updates are now handled by IBM Installation Manager, so the story is slightly different.

Thursday, August 29, 2013

Finding the needle in the Deadlock haystack

I'm reposting this from an excellent blog post here: -


<snip>
How many people out there have enjoyed the hunt for the deadlock culprits? If you are very analytical and enjoy a good murder mystery then perhaps you enjoy tracking down the two lines of application code that caused a deadlock that you wanted to resolve. For those that have not had the pleasure, let me start from the beginning…what is a deadlock?

In any database system a deadlock occurs when two applications are both waiting on a resource (row lock usually) that the other holds. Neither can proceed because they are waiting on each other and neither will voluntarily release their locks so you are in a deadlock. All database systems have a deadlock detector that wakes up on occasion, looks for deadlocks and if it finds one, it kills one of the transactions (rolls back the current unit of work) which results in that application releasing its lock so the other application can proceed. In the case of DB2 the application that is the victim gets a SQL0911 telling the app that the transaction was rolled back due to a deadlock or lock timeout.
</snip>

<snip>
With DB2 there is a deadlock event monitor that will dump out information when a deadlock occurs. In fact with DB2 v8.2, a DEADLOCKS WITH DETAILS event monitor is created automatically when the database is created and is started every time the database is started. This detailed deadlock monitor will dump information about the applications involved in any deadlock, including userids, hostnames of client machines, the statement text of the currently executing statement, and a list of all locks held by the application. The information is stored in the default database path (which you can find from your dbm configuration) in a directory called db2event/db2detaildeadlock.
</snip>

This from my own DB2 LUW environment: -

$ db2level

DB21085I  Instance "db2inst1" uses "64" bits and DB2 code release "SQL09075" 
with level identifier "08060107".
Informational tokens are "DB2 v9.7.0.5", "s111017", "IP23292", and Fix Pack 
"5".
Product is installed at "/opt/ibm/db2/V9.7".


$ db2evmon -db bpmdb  -evm db2detaildeadlock

Reading /home/db2inst1/db2inst1/NODE0000/SQL00003/db2event/db2detaildeadlock/00000000.evt ...
--------------------------------------------------------------------------
                            EVENT LOG HEADER
  Event Monitor name: DB2DETAILDEADLOCK
  Server Product ID: SQL09075
  Version of event monitor data: 11
  Byte order: LITTLE ENDIAN
  Number of nodes in db2 instance: 1
  Codepage of database: 1208
  Territory code of database: 1
  Server instance name: db2inst1
--------------------------------------------------------------------------

--------------------------------------------------------------------------
  Database Name: BPMDB   
  Database Path: /home/db2inst1/db2inst1/NODE0000/SQL00003/
  First connection timestamp: 29/08/2013 13:02:20.966657
  Event Monitor Start time:   29/08/2013 13:02:21.275886
--------------------------------------------------------------------------

--------------------------------------------------------------------------
  Database Name: BPMDB   
  Database Path: /home/db2inst1/db2inst1/NODE0000/SQL00003/
  First connection timestamp: 29/08/2013 13:07:52.540448
  Event Monitor Start time:   29/08/2013 13:08:10.467783
--------------------------------------------------------------------------

--------------------------------------------------------------------------
  Database Name: BPMDB   
  Database Path: /home/db2inst1/db2inst1/NODE0000/SQL00003/
  First connection timestamp: 29/08/2013 13:26:22.695516
  Event Monitor Start time:   29/08/2013 13:26:28.356203
--------------------------------------------------------------------------

--------------------------------------------------------------------------
  Database Name: BPMDB   
  Database Path: /home/db2inst1/db2inst1/NODE0000/SQL00003/
  First connection timestamp: 29/08/2013 13:31:07.766264
  Event Monitor Start time:   29/08/2013 13:31:08.846314
--------------------------------------------------------------------------

--------------------------------------------------------------------------
  Database Name: BPMDB   
  Database Path: /home/db2inst1/db2inst1/NODE0000/SQL00003/
  First connection timestamp: 29/08/2013 13:35:22.084183
  Event Monitor Start time:   29/08/2013 13:35:22.574086
--------------------------------------------------------------------------

--------------------------------------------------------------------------
  Database Name: BPMDB   
  Database Path: /home/db2inst1/db2inst1/NODE0000/SQL00003/
  First connection timestamp: 29/08/2013 13:35:22.756913
  Event Monitor Start time:   29/08/2013 13:35:23.409371
--------------------------------------------------------------------------

--------------------------------------------------------------------------
  Database Name: BPMDB   
  Database Path: /home/db2inst1/db2inst1/NODE0000/SQL00003/
  First connection timestamp: 29/08/2013 13:37:11.460381
  Event Monitor Start time:   29/08/2013 13:37:22.980311
--------------------------------------------------------------------------

IBM InfoSphere Data Architect V9.1

One of my colleagues was looking for a tool with which he could model some relational databases.

I asked my network, and found this: -


IBM® InfoSphere Data Architect is a collaborative data design solution to help you discover, model, relate, and standardize diverse and distributed data assets. It supports dimensional modelling.


He downloaded the trial, installed it and was up and running …...

Using DB2TOP to work out what table is being hit by an IBM BPM operation

I was trying to ascertain which DB2 table was being affected by a particular operation in IBM BPM, that of creating an internal group: -


To be 100% clear, these are INTERNAL groups, rather than groups that are available to WebSphere Application Server, perhaps held in LDAP,  accessible via WebSphere Identity Manager (WIM) / Virtual Member Manager (VMM).

So, to come back to my core requirement, I was trying to work out what table(s) get updated when I create a new group ( the reason for this is that I've just created ~470 groups by hand, and wanted to query DB2 to check that I'd not missed any!!! ).

My underlying database is DB2 LUW, and I was looking for a way to monitor the database whilst I was using it within BPM.

Introducing DB2TOP  ….

This neat-o utility, probably based on Unix' top command provides a GUI ( albeit NOT X11-based ) view of the world.

I executed it as follows: -

$ db2top -d bpmdb

 

and then hit T ( capital T ) for Tables, rather than t ( lowercase t ) for Tablespaces, and then added a new internal group - SNAFU - and watched DB2TOP: -



This showed me that the table being updated was LSW_USR_GRP_XREF, which is precisely what I was looking for: -

db2 "select GROUP_NAME from db2inst1.LSW_USR_GRP_XREF" with UR

GROUP_NAME

...
FOOBAR
SNAFU
foobar
tw_admins
...

Some further reading: -






Bad science ? Or just bad mathematics ? Or just me ?

From this BBC News article: -


<snip>
A team of researchers claims to have created the world's fastest spinning man-made object.

They were able to levitate and spin a microscopic sphere at speeds of up to 600 million revolutions per minute.

This spin speed is half a million times faster than a domestic washing machine and more than a thousand times faster than a dental drill.
</snip>

For some reason, this piqued my interest.

The way that I read the two highlighted phrases is this: -

1) The researchers have an object that can spin at up to 600 million RPM ( 600,000,000 RPM )
2) That is 0.5 million ( 500,000 ) RPM faster than a domestic washing machine
3) Ergo, domestic washing machines spin at 599.5 million RPM ( 599,500,000 RPM )

According to another reputable ( in my personal opinion ) source, Which?

<snip>
Many washing machines boast a high 1400 revolutions per minute (rpm), 1600rpm or even 1800rpm spin speed rather than the more common 1200rpm, which helps save time on the line or energy use in the tumble dryer by removing more water. However you'll usually pay extra for this feature, and 1200rpm is generally adequate for most loads.
</snip>

So the BBC are comparing this lab experiment with a washing machine … that can spin at 599.5 million RPM.

Can someone please explain the error in my working ? 'Cos I am confused.com

Wednesday, August 28, 2013

IBM BPM 8.5 - My first exposure ....

Hmmmm, over two months since it was released, and I finally made the time to download IBM BPM 8.5.

I've not yet installed it, but I'm looking forward to the process.

In the meantime, this is what I downloaded: -

IBM Business Process Manager Advanced Version 8.5 Linux X86 32Bit /X86 64Bit Multilingual eAssembly (CRMM5ML)

or, more specifically: -

IBM Business Process Manager Advanced Version 8.5 For Linux X86 32/64Bit Multilingual - 1 of 3 (CIL96ML) 
IBM Business Process Manager Advanced Version 8.5 For Linux X86 32/64Bit Multilingual - 2 of 3 (CIL97ML) 
IBM Business Process Manager Advanced Version 8.5 For Linux X86 32/64Bit Multilingual - 3 of 3 (CIL98ML) 

as I already have WAS 8.5 and DB2 10, and won't use LDAP in the first instance.

I do have to remember that I need WAS 8.5.0.2 ( aka 8.5.0 Fixpack 2 ) and DB2 10.1 Fixpack 1.


What fun :-)

Thursday, August 22, 2013

From the Twitter stream - IBM web server plug-in is not load balancing evenly

Problem(Abstract)

IBM web server plug-in appears to not be load balancing correctly. Too much load is going to only one of the members (application servers) in the cluster. Why is this happening?

Symptom

During load testing, you might notice that a lot more work is being handled by only 1 application server in the cluster. However, the other application servers in the same cluster are much less busy by comparison.

Cause

The IBM web server plug-in only load balances non-affinity requests. These are new requests that do not have a session cookie (JSESSIONID) in the request.

On the other hand, if it is an affinity request, that does have a session cookie (JSESSIONID), then the plug-in will honor session affinity by sending the request to the same application server as before. It will use the application server which matches the cloneid in the JSESSIONID cookie.

Want to know more ? Then read the IBM Technote 1449249 here: -

IBM Connections Connector for Apache OpenOffice

So it's been waaaaaaay too long since I posted about IBM Connections, even though it's a tool that I use each and every day.

I saw this on my "river of streaming news" this morning: -

IBM Connections Connector for Apache OpenOffice

IBM Connections connector 2.0 is now available for download. It can help you connect to IBM Connections server to access and manage your files and other resources, while you are still working on the OpenOffice. The innovative and popular feature of Sidebar in OpenOffice 4.0 has been brought here to provide you a better experience and usability.

2.0
This release is updated for the Apache OpenOffice 4.0. It provides a new UI which is fully integrated with the new feature of sidebar, which makes better use of today's widescreen and can let you access your files more easily.
This release will focus on connection with Files of IBM Connections. Other services e.g. status update will be supported in the following release.
Windows, Mac and Linux are all supported.

- See more at: http://extensions.openoffice.org/en/project/ibm-connections-connector-apache-openoffice#sthash.ZfFymCgi.dpuf


Will get on and download this …...

Wednesday, August 21, 2013

IBM HTTP Server - Disabling the HTTP TRACE method

One of my colleagues contacted me yesterday asking whether it was possible to disable the HTTP TRACE method in IBM HTTP Server.

He referenced me to this page in the IHS Information Center: -

Disabling the HTTP TRACE method


which says, in part: -

The HTTP TRACE request method causes the data received by IBM HTTP Server from the client to be sent back to the client, as in the following example:

$ telnet 127.0.0.1 8080
Trying...
Connected to 127.0.0.1.
Escape character is '^]'.
TRACE / HTTP/1.0
Host: foo
A: b
C: d

HTTP/1.1 200 OK
Date: Mon, 04 Oct 2004 14:07:59 GMT
Server: IBM_HTTP_SERVER
Connection: close
Content-Type: message/http

TRACE / HTTP/1.0
A: b
C: d
Host: foo

Connection closed.

The TRACE capability could be used by vulnerable or malicious applications to trick a web browser into issuing a TRACE request against an arbitrary site and then send the response to the TRACE to a third party using web browser features.

He didn't have an IHS server with which to play, so I tested the hypothesis on my own Red Hat Enterprise Linux box, using IHS 7.0.0.0: -

With TRACE enabled in HTTPD.CONF ( default state )

$ telnet rhel6.uk.ibm.com 8080

Trying 127.0.0.1...
Connected to rhel6.uk.ibm.com.
Escape character is '^]'.
TRACE / HTTP/1.0
Host: foo
A: b
C: d

HTTP/1.1 200 OK
Date: Wed, 21 Aug 2013 10:17:58 GMT
Server: IBM_HTTP_Server
Connection: close
Content-Type: message/http

TRACE / HTTP/1.0
Host: foo
A: b
C: d

Connection closed by foreign host.

With TRACE disabled in HTTPD.CONF

I added: -

LoadModule rewrite_module modules/mod_rewrite.so

RewriteEngine On 
RewriteCond %{REQUEST_METHOD} ^TRACE 
RewriteRule .* - [F] 

to httpd.conf and restarted IHS ( /opt/IBM/HTTPServer/lbin/apachectl start )

$ telnet rhel6.uk.ibm.com 8080

Trying 127.0.0.1...
Connected to rhel6.uk.ibm.com.
Escape character is '^]'.
TRACE /HTTP/1.0
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>403 Forbidden</title>
</head><body>
<h1>Forbidden</h1>
<p>You don't have permission to access /HTTP/1.0
on this server.</p>
<hr>
<address>IBM_HTTP_Server at localhost Port 8080</address>
</body></html>
Connection closed by foreign host.

which looks to be a good sign.

The access.log file also confirms the behaviour: -

127.0.0.1 - - [21/Aug/2013:11:17:58 +0100] "TRACE / HTTP/1.0" 200 43 <- This is what I see BEFORE I changed HTTPD.CONF and restarted IHS
127.0.0.1 - - [21/Aug/2013:11:32:07 +0100] "TRACE /HTTP/1.0" 403 273 <- This is what I see AFTER changing HTTPD.CONF and restarting IHS

We also "spoke" about the the HTTP TRACK method. Again, the Information Center article says this: -

The HTTP TRACK method

The TRACK method is a type of request supported by Microsoft web servers. It is not RFC compliant and is not supported directly by IBM HTTP Server. The method may be utilized as part of a cross-site scripting attack. See Vulnerability Note VU#288308 for more information.

Even though IBM HTTP Server does not support the TRACK method natively, it is possible for plug-in modules to provide support for it. To disable this capability for plug-in modules, in addition to disabling the TRACE method, add these two additional directives after the existing RewriteCond and RewriteRule directives which are used to disable TRACE:

RewriteCond %{REQUEST_METHOD} ^TRACK
RewriteRule .* - [F]

Here is a full example showing the directives to disable both TRACE and TRACK:

...
# disable TRACE and TRACK in the main scope of httpd.conf
RewriteEngine On 
RewriteCond %{REQUEST_METHOD} ^TRACE 
RewriteRule .* - [F] 
RewriteCond %{REQUEST_METHOD} ^TRACK
RewriteRule .* - [F] 
...
<VirtualHost www.example.com>
...
# disable TRACE and TRACK in the www.example.com virtual host
RewriteEngine On 
RewriteCond %{REQUEST_METHOD} ^TRACE 
RewriteRule .* - [F] 
RewriteCond %{REQUEST_METHOD} ^TRACK
RewriteRule .* - [F] 
</VirtualHost>

Note that for IBM HTTP Server 7.0 and later, the only method to disable TRACK is via mod_rewrite. Since IHS doesn't do anything with TRACK, there is no directive to "disable" it.

So, for completeness, here's HTTPD.CONF now: -

<snip>
LoadModule rewrite_module modules/mod_rewrite.so

RewriteEngine On 
RewriteCond %{REQUEST_METHOD} ^TRACE 
RewriteRule .* - [F] 
RewriteCond %{REQUEST_METHOD} ^TRACK
RewriteRule .* - [F]
</snip>

Sweet :-)

Finally, I also recommended that my colleague review ( and share ) this excellent developerWorks article by Martin Lansche and Keys Botzum: -


Summary:  Security consists of more than just some firewalls at the edge of your network protecting you from the outside. It is a difficult and complex set of actions and procedures that strive to strengthen your systems as much as is appropriate. This article discusses many aspects of security in general, including the IBM® WebSphere® Application Server security architecture, and discusses hardening a WebSphere Application Server environment. This updated article has been significantly revised for WebSphere Application Server V7, 8.0, and 8.5, and has been edited to focus solely on hardening. Part 1 of 2. This content is part of the IBM WebSphere Developer Technical Journal.



Tuesday, August 20, 2013

IBM BPM - Process Center to Process Server - How is the authentication handled ?

We're currently configuring a newly built Process Center / Process Server environment, and wondered how PC authenticates to PS in order to allow a developer to install a snapshot.

We're using BPM Standard 7.5.1.1.

This is configured, on the Process Server box, in 100Custom.xml as follows: -

    <repository-server-user-auth-alias>BPMRuntimeServer_Auth_Alias</repository-server-user-auth-alias>
    <repository-server-designated-user-auth-alias>BPMAuthor_Auth_Alias</repository-server-designated-user-auth-alias>
    <repository-server-interval>10</repository-server-interval>
    <!-- Force Process Center Server to use https to deploy ProcessApps and Toolkits to Process Servers -->
    <!--
        <deploy-snapshot-using-https>true</deploy-snapshot-using-https>
        -->
    <server-name>ProcessServer</server-name>
    <server-description>A running process server</server-description>
    <server-host>process-server.uk.ibm.com</server-host>
    <server-port>9443</server-port>

The aliases can be seen via the WAS Integrated Solutions Console, under SecurityGlobal security > JAASJ2C authentication data > BPMAuthor_Auth_Alias, as per the example: -


The IBM Information Center covers this in far more detail: -


Optional: Edit the <repository-server-user-auth-alias> and <repository-server-designated-user-auth-alias> property values. The <repository-server-user-auth-alias> value specifies the authentication alias for a user to connect from the process server to the Process Center. The user and password set in this alias must be present in the Process Center.

The <repository-server-designated-user-auth-alias> value specifies the authentication alias for a user to access and deploy snapshots to the runtime process server and access that process server from the Process Inspector, which is located in IBM Process Designer. This authentication alias must be defined in both that process server and the Process Center and the passwords must match.

Friday, August 16, 2013

CWLLG1162E: An exception occurred while setting the attribute Locale to value en for user wasadmin

Doh, twice this week, I've seen these exceptions in my IBM BPM Standard 7.5.1.1 server's SystemOut.log ( this is for the AppTarget cluster ): -

[15/08/13 17:33:40:004 BST] 00000031 wle_security  E   CWLLG1162E: An exception occurred while setting the attribute Locale to value en for user wasadmin. Error: com.lombardisoftware.client.delegate.BusinessDelegateException: java.lang.NullPointerException
                                 com.lombardisoftware.client.delegate.BusinessDelegateException: java.lang.NullPointerException
        at com.lombardisoftware.client.delegate.BusinessDelegateException.asBusinessDelegateException(BusinessDelegateException.java:41)
        at com.lombardisoftware.client.delegate.PersistenceServicesDelegateDefault.findSingleByFilter(PersistenceServicesDelegateDefault.java:251)

[15/08/13 17:33:40:076 BST] 00000031 wle           E   CWLLG2229E: An exception occurred in an EJB call.  Error: java.lang.NullPointerException
                                 com.lombardisoftware.client.delegate.BusinessDelegateException: java.lang.NullPointerException
        at com.lombardisoftware.client.delegate.BusinessDelegateException.asBusinessDelegateException(BusinessDelegateException.java:41)
        at com.lombardisoftware.client.delegate.PersistenceServicesDelegateDefault.findSingleByFilter(PersistenceServicesDelegateDefault.java:251)

[15/08/13 17:33:40:095 BST] 00000031 servlet       E com.ibm.ws.webcontainer.servlet.ServletWrapper service SRVE0068E: Uncaught exception created in one of the service methods of the servlet /repository/com.lombardisoftware.repository.Repository/Repository.jsp in application IBM_BPM_Repository_ProcessCenter.AppTarget. Exception created : com.ibm.websphere.servlet.error.ServletErrorReport: com.lombardisoftware.client.delegate.BusinessDelegateException: java.lang.NullPointerException

Each time, I spend a manic few moments trying to work out what\s gone wrong.

And then I remember …..

I did NOT bootstrap the database tables: -

cd /opt/IBM/WebSphere/AppServer/profiles/Dmgr01/bin
$ ./bootstrapProcessServerData.sh 

Can you say "Doh!" ?

PS The reason that I'm doing this over and again is that I've been cleaning down my environment ( stopping JVMs, deleting WAS profiles, dropping the BPMDB/PDWDB/MEDB databases etc. ) multiple times, whilst I test the application of a series of iFixes.

SRVE0255E: A WebGroup/Virtual Host to handle / has not been defined.

Another warning that we see in our logs in HUGE quantities is: -

SRVE0255E: A WebGroup/Virtual Host to handle / has not been defined.

This occurs, for us, because our WebSEAL secure reverse proxy servers ( WebSEAL is part of the IBM Tivoli Access Manager for e-Business authentication/authorisation/access management solution ).

It looks like WebSEAL regularly polls the IBM BPM servers, but "merely" requests the / context root e.g.


rather than: _


and the underlying WAS does not have a Virtual Host set up for /, only for context roots such as: -

/portal
/ProcessCenter
/ProcessAdmin

etc.

Given that we have a large farm of WebSEAL servers sitting in front of IBM BPM, we see the message really rather regularly.

It's another "error" that we can safely ignore, but it's a bit of a niggle.

CWLLG2101W: Retries were explicitly requested in ProgrammaticTransactionSupport but no new transaction is started

We've been seeing LOADS of these warnings in our logs: -

[16/08/13 08:26:39:608 BST] 00000054 wle           W   CWLLG2101W: Retries were explicitly requested in ProgrammaticTransactionSupport but no new transaction is started 5 definition: PROPAGATION_REQUIRED,ISOLATION_DEFAULT retryLimit:{2}

As a warning, I had assumed that it was mostly harmless.

This IBM Technote confirms that: -


This message is harmless.  It is currently showing up in levels of trace where it should not.

Further information: This message is intended to be internal to the components that are using transaction support. If one component calls another component within a transaction context and it specifies a number of retries greater than 0, the message is generated.

So it's a niggle, and I wish I didn't appear, but at least I / we can filter it out.

Thursday, August 15, 2013

Using IBM Installation Manager to report on available iFixes for IBM BPM

Another post in the "If I don't write it down, I'll forget it" tradition of this blog: -


So I have a bunch of iFixes downloaded as .ZIP files: -

-rw-r--r--  1 wasadmin wasadmins   142K Aug 12 13:15 7.5.1.1-WS-BPM-IFJR45071.zip
-rw-r--r--  1 wasadmin wasadmins   1.8M Aug 12 13:15 7.5.1.1-WS-BPM-IFJR44032.zip
-rw-r--r--  1 wasadmin wasadmins   189K Aug 12 13:15 7.5.1.1-WS-BPM-IFJR45553.zip
-rw-r--r--  1 wasadmin wasadmins   144K Aug 12 13:15 7.5.1.1-WS-BPM-IFJR45523.zip
-rw-r--r--  1 wasadmin wasadmins    26M Aug 12 13:15 7.5.1.1-WS-BPM-IFJR45124.zip
-rw-r--r--  1 wasadmin wasadmins   615K Aug 12 13:15 7.5.1.1-WS-BPM-IFJR44463.zip
-rw-r--r--  1 wasadmin wasadmins    25M Aug 12 13:15 7.5.1.1-WS-BPM-IFJR45344.zip
-rw-r--r--  1 wasadmin wasadmins   613K Aug 12 13:15 7.5.1.1-WS-BPM-IFJR44086.zip
-rw-r--r--  1 wasadmin wasadmins    16M Aug 12 13:15 7.5.1.1-WS-BPM-IFJR44606.zip
-rw-r--r--  1 wasadmin wasadmins   173K Aug 12 13:15 7.5.1.1-WS-BPM-Unix-IFJR43774.zip
-rw-r--r--  1 wasadmin wasadmins    40M Aug 12 13:15 7.5.1.1-WS-BPM-IFJR44617.zip
-rw-r--r--  1 wasadmin wasadmins   261K Aug 12 13:15 7.5.1.1-WS-BPM-IFJR45755.zip
-rw-r--r--  1 wasadmin wasadmins   261K Aug 12 13:15 7.5.1.1-WS-BPM-IFJR45931.zip
-rw-r--r--  1 wasadmin wasadmins    54M Aug 12 13:15 7.5.1.1-WS-BPM-IFJR46350.zip
-rw-r--r--  1 wasadmin wasadmins   1.5M Aug 12 13:15 7.5.1.1-WS-BPM-IFIC86727.zip
-rw-r--r--  1 wasadmin wasadmins    25M Aug 12 13:31 7.5.1.1-WS-BPM-IFJR45222.zip
-rw-r--r--  1 wasadmin wasadmins    16M Aug 12 13:31 7.5.1.1-WS-BPM-IFJR45851.zip
-rw-r--r--  1 wasadmin wasadmins   145K Aug 12 13:31 7.5.1.1-WS-BPM-IFJR44474.zip
-rw-r--r--  1 wasadmin wasadmins   288K Aug 12 13:31 7.5.1.1-WS-BPM-IFJR44199.zip
-rw-r--r--  1 wasadmin wasadmins   329K Aug 12 13:38 7.5.1.1-WS-BPM-IFJR44357.zip
-rw-r--r--  1 wasadmin wasadmins   259K Aug 12 13:38 7.5.1.1-WS-BPM-IFJR44690.zip
-rw-r--r--  1 wasadmin wasadmins   439K Aug 12 13:41 7.5.1.1-WS-BPM-IFJR42774.zip
-rw-r--r--  1 wasadmin wasadmins   158K Aug 12 16:24 7.5.1.1-WS-BPM-IFJR44428.zip
-rw-r--r--  1 wasadmin wasadmins   185K Aug 12 16:24 7.5.1.1-WS-BPM-IFJR44397.zip
-rw-r--r--  1 wasadmin wasadmins   138K Aug 12 16:24 7.5.1.1-WS-BPM-IFJR44503.zip
-rw-r--r--  1 wasadmin wasadmins    25M Aug 12 16:24 7.5.1.1-WS-BPM-IFJR45532.zip
-rw-r--r--  1 wasadmin wasadmins   246K Aug 15 13:56 7.5.1.1-WS-BPM-IFJR45939.zip
-rw-r--r--  1 wasadmin wasadmins   156K Aug 15 13:56 7.5.1.1-WS-BPM-IFJR44729.zip


I've unzipped each of these into their own discrete directory: -

drwxr-xr-x  3 wasadmin wasadmins 4.0K Aug 12 13:22 7.5.1.1-WS-BPM-IFIC86727
drwxr-xr-x  6 wasadmin wasadmins 4.0K Aug 12 13:22 7.5.1.1-WS-BPM-IFJR44032
drwxr-xr-x  3 wasadmin wasadmins 4.0K Aug 12 13:22 7.5.1.1-WS-BPM-IFJR44086
drwxr-xr-x  3 wasadmin wasadmins 4.0K Aug 12 13:22 7.5.1.1-WS-BPM-IFJR44463
drwxr-xr-x  3 wasadmin wasadmins 4.0K Aug 12 13:22 7.5.1.1-WS-BPM-IFJR44606
drwxr-xr-x  3 wasadmin wasadmins 4.0K Aug 12 13:22 7.5.1.1-WS-BPM-IFJR44617
drwxr-xr-x  3 wasadmin wasadmins 4.0K Aug 12 13:22 7.5.1.1-WS-BPM-IFJR45071
drwxr-xr-x  3 wasadmin wasadmins 4.0K Aug 12 13:22 7.5.1.1-WS-BPM-IFJR45124
drwxr-xr-x  3 wasadmin wasadmins 4.0K Aug 12 13:22 7.5.1.1-WS-BPM-IFJR45344
drwxr-xr-x  3 wasadmin wasadmins 4.0K Aug 12 13:22 7.5.1.1-WS-BPM-IFJR45523
drwxr-xr-x  3 wasadmin wasadmins 4.0K Aug 12 13:22 7.5.1.1-WS-BPM-IFJR45553
drwxr-xr-x  6 wasadmin wasadmins 4.0K Aug 12 13:22 7.5.1.1-WS-BPM-IFJR45755
drwxr-xr-x  3 wasadmin wasadmins 4.0K Aug 12 13:22 7.5.1.1-WS-BPM-IFJR45931
drwxr-xr-x  6 wasadmin wasadmins 4.0K Aug 12 13:22 7.5.1.1-WS-BPM-IFJR46350
drwxr-xr-x  3 wasadmin wasadmins 4.0K Aug 12 13:22 7.5.1.1-WS-BPM-Unix-IFJR43774
drwxr-xr-x  3 wasadmin wasadmins 4.0K Aug 12 13:34 7.5.1.1-WS-BPM-IFJR45222
drwxr-xr-x  3 wasadmin wasadmins 4.0K Aug 12 13:34 7.5.1.1-WS-BPM-IFJR45851
drwxr-xr-x  3 wasadmin wasadmins 4.0K Aug 12 13:35 7.5.1.1-WS-BPM-IFJR44474
drwxr-xr-x  3 wasadmin wasadmins 4.0K Aug 12 13:35 7.5.1.1-WS-BPM-IFJR44199
drwxr-xr-x  6 wasadmin wasadmins 4.0K Aug 12 13:39 7.5.1.1-WS-BPM-IFJR44357
drwxr-xr-x  3 wasadmin wasadmins 4.0K Aug 12 13:39 7.5.1.1-WS-BPM-IFJR44690
drwxr-xr-x  6 wasadmin wasadmins 4.0K Aug 12 13:41 7.5.1.1-WS-BPM-IFJR42774
drwxr-xr-x  3 wasadmin wasadmins 4.0K Aug 12 16:25 7.5.1.1-WS-BPM-IFJR44428
drwxr-xr-x  3 wasadmin wasadmins 4.0K Aug 12 16:25 7.5.1.1-WS-BPM-IFJR44397
drwxr-xr-x  3 wasadmin wasadmins 4.0K Aug 12 16:26 7.5.1.1-WS-BPM-IFJR44503
drwxr-xr-x  3 wasadmin wasadmins 4.0K Aug 12 16:26 7.5.1.1-WS-BPM-IFJR45532
drwxr-xr-x  7 wasadmin wasadmins 4.0K Aug 15 09:57 7.5.1.1-WS-BPM-IFJR44729
drwxr-xr-x  6 wasadmin wasadmins 4.0K Aug 15 13:57 7.5.1.1-WS-BPM-IFJR45939


Want to know how I did it ?

Read this post: -


Having got my fixes in order, I can now use IBM Installation Manager to report on what's available: -

$ for i in `find ~/Fixes/Install/ | grep repository.xml`; do /opt/IBM/InstallationManager/eclipse/tools/imcl listAvailableFixes com.ibm.ws.WBPMSTD_7.5.1001.20120915_1227 -repositories $i; done

which returns: -

7.5.1.1-WS-BPM-IFJR45124_0.0.0.20130121_1508
7.5.1.1-WS-BPM-IFJR44474_0.0.0.20121203_2247
7.5.1.1-WS-BPM-IFJR43774_0.0.0.20121113_1959
7.5.1.1-WS-BPM-IFJR44357_0.0.0.20130104_1511
7.5.1.1-WS-BPMPC-IFPD44357_0.0.0.20130104_1533
7.5.1.1-WS-BPM-IFIC86727_0.0.0.20130329_1242
7.5.1.1-WS-BPM-IFJR44729_0.0.0.20121116_1736
7.5.1.1-WS-BPM-IFJR45939_0.0.0.20130710_0014
7.5.1.1-WS-BPMPC-IFPD45939_0.0.0.20130711_1121
7.5.1.1-WS-BPM-IFJR45523_0.0.0.20130128_1539
7.5.1.1-WS-BPM-IFJR45222_0.0.0.20130123_0131
7.5.1.1-WS-BPM-IFJR45532_0.0.0.20130126_0434
7.5.1.1-WS-BPM-IFJR45553_0.0.0.20130131_1507
7.5.1.1-WS-BPM-IFJR44463_0.0.0.20121221_1452
7.5.1.1-WS-BPM-IFJR44086_0.0.0.20121206_2324
7.5.1.1-WS-BPM-IFJR44032_0.0.0.20130308_1342
7.5.1.1-WS-BPMPC-IFPD44032_0.0.0.20130308_1349
7.5.1.1-WS-BPM-IFJR45344_0.0.0.20130116_2314
7.5.1.1-WS-BPM-IFJR44617_0.0.0.20121101_1346
7.5.1.1-WS-BPM-IFJR42774_0.0.0.20121016_1300
7.5.1.1-WS-BPMPC-IFPC42774_0.0.0.20121126_1259
7.5.1.1-WS-BPMPC-IFPD42774_0.0.0.20121126_1517
7.5.1.1-WS-BPM-IFJR44397_0.0.0.20121106_1740
7.5.1.1-WS-BPM-IFJR45755_0.0.0.20130304_1154
7.5.1.1-WS-BPMPC-IFPD45755_0.0.0.20130220_1405
7.5.1.1-WS-BPM-IFJR44606_0.0.0.20121108_1605
7.5.1.1-WS-BPM-IFJR44428_0.0.0.20121024_1447
7.5.1.1-WS-BPM-IFJR44199_0.0.0.20130104_2055
7.5.1.1-WS-BPM-IFJR45071_0.0.0.20121218_1416
7.5.1.1-WS-BPM-IFJR46350_0.0.0.20130430_1238
7.5.1.1-WS-BPMPC-IFPC46350_0.0.0.20130424_1355
7.5.1.1-WS-BPMPC-IFPD46350_0.0.0.20130429_1544
7.5.1.1-WS-BPM-IFJR44690_0.0.0.20121108_1616
7.5.1.1-WS-BPM-IFJR44503_0.0.0.20121026_1403
7.5.1.1-WS-BPM-IFJR45931_0.0.0.20130523_1037
7.5.1.1-WS-BPM-IFJR45851_0.0.0.20130423_2340




Unzipping IBM iFixes in a FOR loop

I have a load of iFixes downloaded as .ZIP files: -

7.5.1.1-WS-BPM-IFIC86727.zip  7.5.1.1-WS-BPM-IFJR44463.zip  7.5.1.1-WS-BPM-IFJR45124.zip  7.5.1.1-WS-BPM-IFJR45931.zip
7.5.1.1-WS-BPM-IFJR42774.zip  7.5.1.1-WS-BPM-IFJR44474.zip  7.5.1.1-WS-BPM-IFJR45222.zip  7.5.1.1-WS-BPM-IFJR45939.zip
7.5.1.1-WS-BPM-IFJR44032.zip  7.5.1.1-WS-BPM-IFJR44503.zip  7.5.1.1-WS-BPM-IFJR45344.zip  7.5.1.1-WS-BPM-IFJR46350.zip
7.5.1.1-WS-BPM-IFJR44086.zip  7.5.1.1-WS-BPM-IFJR44606.zip  7.5.1.1-WS-BPM-IFJR45523.zip  7.5.1.1-WS-BPM-Unix-IFJR43774.zip
7.5.1.1-WS-BPM-IFJR44199.zip  7.5.1.1-WS-BPM-IFJR44617.zip  7.5.1.1-WS-BPM-IFJR45532.zip 
7.5.1.1-WS-BPM-IFJR44357.zip  7.5.1.1-WS-BPM-IFJR44690.zip  7.5.1.1-WS-BPM-IFJR45553.zip 
7.5.1.1-WS-BPM-IFJR44397.zip  7.5.1.1-WS-BPM-IFJR44729.zip  7.5.1.1-WS-BPM-IFJR45755.zip
7.5.1.1-WS-BPM-IFJR44428.zip  7.5.1.1-WS-BPM-IFJR45071.zip  7.5.1.1-WS-BPM-IFJR45851.zip


in a directory called /home/wasadmin/Fixes.

Here's a neat little script that I use to expand the fixes, neatly ready to be installed using IBM Installation Manager: -

$ cd /home/wasadmin/Fixes
$ mkdir Install
$ for i in *.zip;do unzip $i -d Install/`echo $i | sed -s 's/.zip//g'`; done

This results in each iFix unzipped into its own private directory: -

drwxr-xr-x  3 wasadmin wasadmins 4096 Aug 15 14:20 7.5.1.1-WS-BPM-IFIC86727
drwxr-xr-x  6 wasadmin wasadmins 4096 Aug 15 14:20 7.5.1.1-WS-BPM-IFJR42774
drwxr-xr-x  6 wasadmin wasadmins 4096 Aug 15 14:20 7.5.1.1-WS-BPM-IFJR44032
drwxr-xr-x  3 wasadmin wasadmins 4096 Aug 15 14:20 7.5.1.1-WS-BPM-IFJR44086
drwxr-xr-x  3 wasadmin wasadmins 4096 Aug 15 14:20 7.5.1.1-WS-BPM-IFJR44199
drwxr-xr-x  6 wasadmin wasadmins 4096 Aug 15 14:20 7.5.1.1-WS-BPM-IFJR44357
drwxr-xr-x  3 wasadmin wasadmins 4096 Aug 15 14:20 7.5.1.1-WS-BPM-IFJR44428
drwxr-xr-x  3 wasadmin wasadmins 4096 Aug 15 14:20 7.5.1.1-WS-BPM-IFJR44397
drwxr-xr-x  3 wasadmin wasadmins 4096 Aug 15 14:20 7.5.1.1-WS-BPM-IFJR44463
drwxr-xr-x  3 wasadmin wasadmins 4096 Aug 15 14:20 7.5.1.1-WS-BPM-IFJR44474
drwxr-xr-x  3 wasadmin wasadmins 4096 Aug 15 14:20 7.5.1.1-WS-BPM-IFJR44503
drwxr-xr-x  3 wasadmin wasadmins 4096 Aug 15 14:20 7.5.1.1-WS-BPM-IFJR44606
drwxr-xr-x  3 wasadmin wasadmins 4096 Aug 15 14:20 7.5.1.1-WS-BPM-IFJR44617
drwxr-xr-x  3 wasadmin wasadmins 4096 Aug 15 14:20 7.5.1.1-WS-BPM-IFJR44690
drwxr-xr-x  3 wasadmin wasadmins 4096 Aug 15 14:20 7.5.1.1-WS-BPM-IFJR44729
drwxr-xr-x  3 wasadmin wasadmins 4096 Aug 15 14:20 7.5.1.1-WS-BPM-IFJR45071
drwxr-xr-x  3 wasadmin wasadmins 4096 Aug 15 14:20 7.5.1.1-WS-BPM-IFJR45124
drwxr-xr-x  3 wasadmin wasadmins 4096 Aug 15 14:20 7.5.1.1-WS-BPM-IFJR45222
drwxr-xr-x  3 wasadmin wasadmins 4096 Aug 15 14:20 7.5.1.1-WS-BPM-IFJR45344
drwxr-xr-x  3 wasadmin wasadmins 4096 Aug 15 14:20 7.5.1.1-WS-BPM-IFJR45523
drwxr-xr-x  3 wasadmin wasadmins 4096 Aug 15 14:20 7.5.1.1-WS-BPM-IFJR45532
drwxr-xr-x  3 wasadmin wasadmins 4096 Aug 15 14:20 7.5.1.1-WS-BPM-IFJR45553
drwxr-xr-x  6 wasadmin wasadmins 4096 Aug 15 14:20 7.5.1.1-WS-BPM-IFJR45755
drwxr-xr-x  3 wasadmin wasadmins 4096 Aug 15 14:20 7.5.1.1-WS-BPM-IFJR45851
drwxr-xr-x  3 wasadmin wasadmins 4096 Aug 15 14:20 7.5.1.1-WS-BPM-IFJR45931
drwxr-xr-x  6 wasadmin wasadmins 4096 Aug 15 14:20 7.5.1.1-WS-BPM-IFJR45939
drwxr-xr-x  6 wasadmin wasadmins 4096 Aug 15 14:20 7.5.1.1-WS-BPM-IFJR46350
drwxr-xr-x  3 wasadmin wasadmins 4096 Aug 15 14:20 7.5.1.1-WS-BPM-Unix-IFJR43774


ready for installation using a response file.


SSL and WebSphere Application Server

The first of, almost certainly, a whole slew of posts as I dig into SSL in WAS 7.

I'm really trying to establish why my newly minted WAS profiles turn up with the cell-level and node-level root Signer certificate issuer set to: -

CN=localhost, OU=Root Certificate, OU=localhostNode01Cell, OU=rhel6Node01, O=IBM, C=US  

even though my fully-qualified hostname is: -

as confirmed by Java: -

import java.net.InetAddress;
import java.net.UnknownHostException;

public class getHost {

  public static void main(String[] args) {

    try {
      InetAddress address = InetAddress.getLocalHost();
      System.out.println("My name is " + address.getHostName());
    } catch (UnknownHostException e) {
      System.out.println("I'm sorry. I don't know my own name.");
    }

  }

}


which returns: -

My name is rhel6.uk.ibm.com

and Snoop: -


Of course, these are self-signed certificates, and WAS is the signer / root Certificate Authority (CA).

But why does the Common Name (CN) come out as localhost rather than, say rhel6.uk.ibm.com ??




This is what I have in my node-level trust store: -

${CONFIG_ROOT}/cells/localhostNode01Cell/nodes/rhel6Node01/trust.p12

For the record, this particular profile is a pure application server ( AppSrv01 ) with no managed cell.

I did find this command: -

$ /opt/IBM/WebSphere/AppServer/bin/retrieveSigners.sh -listRemoteKeyStoreNames

Realm/Cell Name: <default>
Username: wasadmin
Password:         
 CWPKI0306I: The following remote keystores exist on the specified server:
           NodeDefaultRootStore, NodeDefaultKeyStore, NodeRSATokenRootStore,
           NodeRSATokenTrustStore, NodeDefaultSignersStore,
           NodeDefaultDeletedStore, NodeDefaultTrustStore,
           NodeRSATokenKeyStore, NodeLTPAKeys

which is useful, but doesn't solve the problem :-)

Anyhow, this is how I created the profile: -

-create
 -applyPerfTuningSetting standard
 -adminUserName wasadmin
 -adminPassword ****************
 -enableAdminSecurity true
 -cellName localhostNode01Cell
 -nodeName rhel6Node01
 -portsFile /opt/IBM/WebSphere/AppServer/logs/manageprofiles/1376559474506_portdef.props
 -personalCertDN cn=localhost, ou=localhostNode01Cell, ou=rhel6Node01, o=IBM, c=US
 -profilePath /opt/IBM/WebSphere/AppServer/profiles/AppSrv01
 -serverName server1
 -signingCertDN, cn=localhost, ou=Root Certificate, ou=localhostNode01Cell, ou=rhel6Node01, o=IBM, c=US
 -hostName rhel6.uk.ibm.com
 -profileName AppSrv01
 -personalCertValidityPeriod 15
 -signingCertValidityPeriod 15
 -keyStorePassword ****************
 -templatePath /opt/IBM/WebSphere/AppServer/profileTemplates/default


NOTE I used Profile Management Tool (PMT) to do this, and that automatically populated the personalCertDN and signingCertDN values with localhost.

I can, and will, override these next time around, but I'm wondering where PMT gets localhost from.



IBM BPM - Checking the precise version of IBM Process Designer

As ever, IBM Installation Manager has the answer, IBM Installation Manager is your friend ….

Here's the GUI: -


Here's the command-line: -

C:\> "C:\IBM\Installation Manager\eclipse\tools\imcl.exe" listInstalledPackages -long

...
C:\IBM\ProcessDesigner\v7.5 : com.ibm.bpm.authoring.v75_7.5.1001.v20120914_0614 : IBM? Process Designer : 7.5.1.1
C:\IBM\ProcessDesigner\v7.5 : JR42774_0.0.0.20120925_1011 : 7.5.1.1-WS-BPMPD-IFJR42774 : 0.0.0.20120925_1011
C:\IBM\ProcessDesigner\v7.5 : JR44032_0.0.0.20120925_1001 : 7.5.1.1-WS-BPMPD-IFJR44032 : 0.0.0.20120925_1001
C:\IBM\ProcessDesigner\v7.5 : JR44357_0.0.0.20121126_1531 : 7.5.1.1-WS-BPMPD-IFJR44357 : 0.0.0.20121126_1531
C:\IBM\ProcessDesigner\v7.5 : JR45755_0.0.0.20121217_1010 : 7.5.1.1-WS-BPMPD-IFJR45755 : 0.0.0.20121217_1010



What this shows me is that some of the recently applied iFixes also update IBM Process Designer.

It also shows me that I need to update Process Designer again, as there's an iFix ( JR44729 ) on the Process Center, that's not currently showing up in Process Designer.

This is the version of Process Designer that I'd previously downloaded from the Process Center, prior to applying JR44729: -

-rw-r--r--@  1 hayd  staff  424501873 13 Aug 16:41 IBM Process Designer.zip

This is the version that I have since downloaded, having installed JR44729: -

-rw-r--r--@  1 hayd  staff  424501713 15 Aug 08:58 IBM Process Designer.zip

Interestingly, it's slightly smaller ….

Having uninstalled Process Designer, and then re-installed it from the newly downloaded ( and smaller ) ZIP file, I re-ran my query: -

C:\> "C:\IBM\Installation Manager\eclipse\tools\imcl.exe" listInstalledPackages -long

...
C:\IBM\ProcessDesigner\v7.5 : com.ibm.bpm.authoring.v75_7.5.1001.v20120914_0614 : IBM? Process Designer : 7.5.1.1
C:\IBM\ProcessDesigner\v7.5 : JR42774_0.0.0.20120925_1011 : 7.5.1.1-WS-BPMPD-IFJR42774 : 0.0.0.20120925_1011
C:\IBM\ProcessDesigner\v7.5 : JR44032_0.0.0.20120925_1001 : 7.5.1.1-WS-BPMPD-IFJR44032 : 0.0.0.20120925_1001
C:\IBM\ProcessDesigner\v7.5 : JR44357_0.0.0.20121126_1531 : 7.5.1.1-WS-BPMPD-IFJR44357 : 0.0.0.20121126_1531
C:\IBM\ProcessDesigner\v7.5 : JR45755_0.0.0.20121217_1010 : 7.5.1.1-WS-BPMPD-IFJR45755 : 0.0.0.20121217_1010
...

So what changed ? Apart from the size of the ZIP file ??

Apparently, nothing.

This is despite the fact that the Readme.txt for JR44729 says: -

After installing fixes on Process Center, updated Process Designer needs to be downloaded and installed else the Process Designer will be out of sync with Process Center. See post install instructions below.

6. Post Install Instructions:
(After starting servers)

a) Start the stand-alone server or network deployment environment.
b) Launch Process Center console on any/all environments where Process Designer was installed.                                              
c) Download updated Process Designer image by clicking the 'Download Process Designer' button on the right of the Process center console
d) Run installProcessDesigner.bat specifying the path of the current install location if different then default location. This will update the existing Process Designer install with the above fixes.

So, given that JR44729 appears to have absolutely nothing to do with Process Designer: -


...
Unable to add team manger group to ldap groups in process admin
console.
Logs show the following error PreparedStatementCallback; SQL
[insert into LSW_USR_GRP_XREF
(GROUP_ID,GROUP_NAME,DISPLAY_NAME,GROUP_TYPE,DESCRIPTION,GROUP_S
TATE,PARENT_GROUP_ID) values (?,?,?,?,?,?,?)]; Error for batch
element #1: DB2 SQL Error: SQLCODE=-803, SQLSTATE=23505,
SQLERRMC=2;BPMADMIN.LSW_USR_GRP_XREF, DRIVER=4.12.55; nested
exception is
com.ibm.db2.jcc.am.SqlIntegrityConstraintViolationException
This same problem might arise when you upgrade from TeamWorks
6.x to Business Process Manager 7.5.1.1.

I'm at a loss.

Perhaps a post-prandial PMR …..

*UPDATE* We discovered that we were missing a requisite iFix, IFJR45939 ,which also updates Process Designer.  This is required because we've applied a Recommended iFix, IFJR42774,

Therefore, I had to go back through another update of PD on my Windows VM.

This was the newly downloaded PD .ZIP file: -

-rw-r--r--@   1 hayd  staff  424609142 15 Aug 17:45 IBM Process Designer.zip

and this is what IBM Installation Manager now shows us in terms of the PD installation: -

Before

C:\IBM\ProcessDesigner\v7.5 : com.ibm.bpm.authoring.v75_7.5.1001.v20120914_0614 : IBM? Process Designer : 7.5.1.1
C:\IBM\ProcessDesigner\v7.5 : JR42774_0.0.0.20120925_1011 : 7.5.1.1-WS-BPMPD-IFJR42774 : 0.0.0.20120925_1011
C:\IBM\ProcessDesigner\v7.5 : JR44032_0.0.0.20120925_1001 : 7.5.1.1-WS-BPMPD-IFJR44032 : 0.0.0.20120925_1001
C:\IBM\ProcessDesigner\v7.5 : JR44357_0.0.0.20121126_1531 : 7.5.1.1-WS-BPMPD-IFJR44357 : 0.0.0.20121126_1531
C:\IBM\ProcessDesigner\v7.5 : JR45755_0.0.0.20121217_1010 : 7.5.1.1-WS-BPMPD-IFJR45755 : 0.0.0.20121217_1010


After

C:\IBM\ProcessDesigner\v7.5 : com.ibm.bpm.authoring.v75_7.5.1001.v20120914_0614 : IBM? Process Designer : 7.5.1.1
C:\IBM\ProcessDesigner\v7.5 : JR42774_0.0.0.20120925_1011 : 7.5.1.1-WS-BPMPD-IFJR42774 : 0.0.0.20120925_1011
C:\IBM\ProcessDesigner\v7.5 : JR44032_0.0.0.20120925_1001 : 7.5.1.1-WS-BPMPD-IFJR44032 : 0.0.0.20120925_1001
C:\IBM\ProcessDesigner\v7.5 : JR44357_0.0.0.20121126_1531 : 7.5.1.1-WS-BPMPD-IFJR44357 : 0.0.0.20121126_1531
C:\IBM\ProcessDesigner\v7.5 : JR45755_0.0.0.20121217_1010 : 7.5.1.1-WS-BPMPD-IFJR45755 : 0.0.0.20121217_1010
C:\IBM\ProcessDesigner\v7.5 : JR45939_0.0.0.20130508_1001 : 7.5.1.1-WS-BPMPD-IFJR45939 : 0.0.0.20130508_1001