Tuesday, 1 September 2015

CRIMA1062E ERROR: Installing IBM® Business Monitor 8.5.5.0 is not allowed ....

I saw this issue today: -

ERROR: The following errors were generated while installing.
  CRIMA1062E ERROR: Installing IBM® Business Monitor 8.5.5.0 is not allowed; it is not compatible with IBM® Cognos Business Intelligence 64 bit 10.2.1.2.
    ERROR: In root installation context:
      ERROR: Installation context "com.ibm.websphere.appserver.installcontext" was not resolved

whilst trying to install IBM Business Monitor 8.5.5.0 ( in order to configure/test DB2 HADR ).

As is often the case, it was a PEBCAK i.e. a user error.

The last line: -

      ERROR: Installation context "com.ibm.websphere.appserver.installcontext" was not resolved

was the most meaningful.

In my response file: -

<?xml version="1.0" encoding="UTF-8"?>
<agent-input acceptLicense='true'>
<server>
<repository location='/tmp/Repository/BAM/repository/'/>
</server>
<profile id='IBM WebSphere Application Server V8.5' installLocation='/opt/IBM/WebSphere/AppServer'>
<data key='eclipseLocation' value='/opt/IBM/WebSphere/AppServer'/>
<data key='user.import.profile' value='false'/>
<data key='cic.selector.os' value='linux'/>
<data key='cic.selector.arch' value='x86'/>
<data key='cic.selector.ws' value='gtk'/>
<data key='cic.selector.nl' value='en'/>
</profile>
<install modify='false'>
<offering id='com.ibm.websphere.MON.v85' version='8.5.5000.20140530_1037' profile='IBM WebSphere Application Server V8.5' features='Monitor.NonProduction' installFixes='none'/>
<offering profile='IBM WebSphere Application Server V8.5' id='com.ibm.ws.cognos.v1021.linuxia64' version='10.2.1.20140530_2310' features='com.ibm.cognos.feature' installFixes='none'/>
</install>
<preference name='com.ibm.cic.common.core.preferences.eclipseCache' value='/opt/IBM/IMShared'/>
<preference name='com.ibm.cic.common.core.preferences.connectTimeout' value='30'/>
<preference name='com.ibm.cic.common.core.preferences.readTimeout' value='45'/>
<preference name='com.ibm.cic.common.core.preferences.downloadAutoRetryCount' value='0'/>
<preference name='offering.service.repositories.areUsed' value='true'/>
<preference name='com.ibm.cic.common.core.preferences.ssl.nonsecureMode' value='false'/>
<preference name='com.ibm.cic.common.core.preferences.http.disablePreemptiveAuthentication' value='false'/>
<preference name='http.ntlm.auth.kind' value='NTLM'/>
<preference name='http.ntlm.auth.enableIntegrated.win32' value='true'/>
<preference name='com.ibm.cic.common.core.preferences.preserveDownloadedArtifacts' value='true'/>
<preference name='com.ibm.cic.common.core.preferences.keepFetchedFiles' value='false'/>
<preference name='PassportAdvantageIsEnabled' value='false'/>
<preference name='com.ibm.cic.common.core.preferences.searchForUpdates' value='false'/>
<preference name='com.ibm.cic.agent.ui.displayInternalVersion' value='false'/>
<preference name='com.ibm.cic.common.sharedUI.showErrorLog' value='true'/>
<preference name='com.ibm.cic.common.sharedUI.showWarningLog' value='true'/>
<preference name='com.ibm.cic.common.sharedUI.showNoteLog' value='true'/>
</agent-input>


I'd forgotten to actually install WAS :-)

Once I amended my response file to: -

<?xml version="1.0" encoding="UTF-8"?>
<agent-input acceptLicense='true'>
<server>
<repository location='/tmp/Repository/BAM/repository/'/>
</server>
<profile id='IBM WebSphere Application Server V8.5' installLocation='/opt/IBM/WebSphere/AppServer'>
<data key='eclipseLocation' value='/opt/IBM/WebSphere/AppServer'/>
<data key='user.import.profile' value='false'/>
<data key='cic.selector.os' value='linux'/>
<data key='cic.selector.arch' value='x86'/>
<data key='cic.selector.ws' value='gtk'/>
<data key='cic.selector.nl' value='en'/>
</profile>
<install modify='false'>
<offering id='com.ibm.websphere.ND.v85' version='8.5.5002.20140408_1947' profile='IBM WebSphere Application Server V8.5' features='core.feature,ejbdeploy,thinclient,embeddablecontainer,com.ibm.sdk.6_64bit,samples' installFixes='none'/>
<offering id='com.ibm.websphere.MON.v85' version='8.5.5000.20140530_1037' profile='IBM WebSphere Application Server V8.5' features='Monitor.NonProduction' installFixes='none'/>
<offering profile='IBM WebSphere Application Server V8.5' id='com.ibm.ws.cognos.v1021.linuxia64' version='10.2.1.20140530_2310' features='com.ibm.cognos.feature' installFixes='none'/>
</install>
<preference name='com.ibm.cic.common.core.preferences.eclipseCache' value='/opt/IBM/IMShared'/>
<preference name='com.ibm.cic.common.core.preferences.connectTimeout' value='30'/>
<preference name='com.ibm.cic.common.core.preferences.readTimeout' value='45'/>
<preference name='com.ibm.cic.common.core.preferences.downloadAutoRetryCount' value='0'/>
<preference name='offering.service.repositories.areUsed' value='true'/>
<preference name='com.ibm.cic.common.core.preferences.ssl.nonsecureMode' value='false'/>
<preference name='com.ibm.cic.common.core.preferences.http.disablePreemptiveAuthentication' value='false'/>
<preference name='http.ntlm.auth.kind' value='NTLM'/>
<preference name='http.ntlm.auth.enableIntegrated.win32' value='true'/>
<preference name='com.ibm.cic.common.core.preferences.preserveDownloadedArtifacts' value='true'/>
<preference name='com.ibm.cic.common.core.preferences.keepFetchedFiles' value='false'/>
<preference name='PassportAdvantageIsEnabled' value='false'/>
<preference name='com.ibm.cic.common.core.preferences.searchForUpdates' value='false'/>
<preference name='com.ibm.cic.agent.ui.displayInternalVersion' value='false'/>
<preference name='com.ibm.cic.common.sharedUI.showErrorLog' value='true'/>
<preference name='com.ibm.cic.common.sharedUI.showWarningLog' value='true'/>
<preference name='com.ibm.cic.common.sharedUI.showNoteLog' value='true'/>
</agent-input>

it all became wonderful and, more importantly, actually worked :-)

/opt/IBM/InstallationManager/eclipse/tools/imcl -input installBAM855.rsp -acceptLicense

Installed com.ibm.websphere.ND.v85_8.5.5002.20140408_1947 to the /opt/IBM/WebSphere/AppServer directory.
Installed com.ibm.websphere.MON.v85_8.5.5000.20140530_1037 to the /opt/IBM/WebSphere/AppServer directory.
Installed com.ibm.ws.cognos.v1021.linuxia64_10.2.1.20140530_2310 to the /opt/IBM/WebSphere/AppServer directory.


/opt/IBM/WebSphere/AppServer/bin/versionInfo.sh
 
WVER0010I: Copyright (c) IBM Corporation 2002, 2012; All rights reserved.
WVER0012I: VersionInfo reporter version 1.15.1.48, dated 2/8/12

--------------------------------------------------------------------------------
IBM WebSphere Product Installation Status Report
--------------------------------------------------------------------------------

Report at date and time 01 September 2015 14:23:00 BST

Installation
--------------------------------------------------------------------------------
Product Directory        /opt/IBM/WebSphere/AppServer
Version Directory        /opt/IBM/WebSphere/AppServer/properties/version
DTD Directory            /opt/IBM/WebSphere/AppServer/properties/version/dtd
Log Directory            /home/wasadmin/var/ibm/InstallationManager/logs

Product List
--------------------------------------------------------------------------------
WBM                      installed
ND                       installed

Installed Product
--------------------------------------------------------------------------------
Name                  IBM Business Monitor
Version               8.5.5.0
ID                    WBM
Build Level           20140530-093022
Build Date            5/30/14
Package               com.ibm.websphere.MON.v85_8.5.5000.20140530_1037
Architecture          x86-64 (64 bit)
Installed Features    Business Monitor Server Non-production

Installed Product
--------------------------------------------------------------------------------
Name                  IBM WebSphere Application Server Network Deployment
Version               8.5.5.2
ID                    ND
Build Level           cf021414.01
Build Date            4/8/14
Package               com.ibm.websphere.ND.v85_8.5.5002.20140408_1947
Architecture          x86-64 (64 bit)
Installed Features    IBM 64-bit WebSphere SDK for Java
                      WebSphere Application Server Full Profile
                      EJBDeploy tool for pre-EJB 3.0 modules
                      Embeddable EJB container
                      Sample applications
                      Stand-alone thin clients and resource adapters

--------------------------------------------------------------------------------
End Installation Status Report
--------------------------------------------------------------------------------


Monday, 31 August 2015

VMware Fusion on Mac OS X - Sleep, no wake-ee

I've had a few problems with my Mac ( a 15" 2012 MacBook Pro Retina ) when I try and resume ( wake ) the laptop up whilst I've got VMs running.

I'm using VMware Fusion 7.1.2 and OS X 10.10.5.

Typically the symptom is that the Mac fails to give me a login prompt, and I have to hit the power button. Once it's booted up, and I log in, I find that all my running apps have stopped, and try to automatically restart.

This means that any open documents go into recovery mode, and the VMware VMs themselves are shut down.

The Mac itself reports a "Sleep/Wake Failure" which I duly send off to Apple each time.

I did have this problem last year: -


but didn't find a specific resolution.

This time around, I did find this useful thread on the VMware forum: -


Again, it goes on for a loooooong while, but does have a few useful nuggets, including: -

- Changing the power management settings pertaining to suspend/hibernate, via the pmset command
- Switching from Integrated to Discrete graphics ( forcing VMware to use the Integrated card )
- Checking "Pass power status to VM" within the VMs themselves
- Using a 3rd party application called Sleepwatcher to suspend and resume the VMs themselves BEFORE OS X suspends / resumes

This far, I've not come to a specific conclusion, apart from that pmset changes have, quelle surprise, a horrifying impact upon battery life :-(

I will try the other three and report back .....

Thursday, 27 August 2015

WebSphere Application Server - High Availability Manager - What Is It Good For ?

I've just posted to the GWC blog here: -

This has come up in the past few weeks, as I've been configuring WebSphere Application Server (WAS) Network Deployment, aka WAS Full Profile, to store it's transaction log data in DB2 database tables.

This requirement exists because, for resilience and high availability, one typically deploys a WAS cell across multiple logical or physical nodes.


Want to know more ? You know where to go :-)

Building and deploying business monitor models for IBM Business Process Manager V8.5 processes

I saw this on Twitter and thought of .... well, everyone :-)

Learn how you can generate a monitor model from IBM® Business Process Manager V8.5 and deploy the monitor model in an IBM Business Monitor server installed in a separate WebSphere® cell. This content is part of the IBM Business Process Management Journal.

IBM Integration Designer (hereafter called Integration Designer) provides the capability to generate a monitor model from your IBM Business Process Manager (BPM) project. This tutorial will show you how to generate such a monitor model and subsequently deploy the monitor model to an IBM Business Monitor server, which runs in a cell separate from the IBM BPM hosting cell. The process model developer will need to turn the tracking on in the Process Designer for elements that will need to be monitored in the process.

Tuesday, 25 August 2015

Podcasts app in iOS - Sunk, not syncing

OK, so I managed to break, and then fix, the Podcasts app in iOS 8.4.1 on an iPhone 5s.

The lesson learned ? Don't do this in iTunes 


as it seems to stop the Podcasts app from downloading updates to the podcast feed.

In fact, it's worse than that ( it's dead, Jim ) in that the app hangs altogether, and then completely crashes.

I tried the IT Crowd trick: -


but to no avail.

The solution appeared to be related to the fact that BOTH iTunes and Podcasts were trying to sync.

Once I told iTunes to stop ( and synced the iPhone, and rebooted the phone again !! ), the Podcasts app just started working, and now tomorrow's commute is sorted.

Thursday, 20 August 2015

Comment lines: Encrypting WebSphere Application Server system passwords — if you insist

This from my IBM colleague, Martin Lansche: -

IBM® WebSphere® Application Server stores system passwords in files that are simply encoded. To support clients who want to implement their own password storage mechanism, WebSphere Application Server has provided a System Programming Interface (SPI) to do so. Encrypting these system passwords can provide some marginal additional security benefits for a specific class of vulnerability (poorly implemented application code), but it cannot provide defense against a malicious programmer or a determined attack. If you insist on implementing a password encryption solution, here is one example of how you could achieve this using the SPI. This content is part of the IBM WebSphere Developer Technical Journal.

Wednesday, 19 August 2015

"Invalid operation: result set is closed" with IBM BPM 8.5.5

This is in the context of an IBM Business Process Manager Advanced 8.5.5.0 installation on AIX.

I'd noticed a spurious exception in the First Failure Data Capture (FFDC) logs of both members of the AppCluster: -

19/08/15 09:44:01:200 BST]     FFDC Exception:org.springframework.jdbc.UncategorizedSQLException SourceId:com.ibm.ws.uow.UOWManagerImpl.runUnderNewUOW ProbeId:934 Reporter:com.ibm.ws.uow.UOWManagerImpl@f8de0965 org.springframework.jdbc.UncategorizedSQLException: PreparedStatementCallback; uncategorized SQLException for SQL [select reference_id, dep_path_id, target_type, target_id, target_summary_data from lsw_po_reference where branch_id = ? and start_seq_num <= ? and end_seq_num > ?]; SQL state [null]; error code [-4470]; [jcc][t4][10120][10898][4.19.26] Invalid operation: result set is closed. ERRORCODE=-4470, SQLSTATE=null; nested exception is com.ibm.db2.jcc.am.SqlException: [jcc][t4][10120][10898][4.19.26] Invalid operation:
result set is closed. ERRORCODE=-4470, SQLSTATE=null

which, whilst not necessarily representing a major issue was somewhat of an annoyance.

I dug around online, and found this thread on IBM developerWorks Answers ( dW Answers ): -


This, in part, suggested that the problem might be mitigated by changing a Custom Property of the JDBC data source used by the AppCluster, specifically jdbc/TeamWorksDB, as described here: -


In essence, it directs one to set resultSetHoldability to 1 rather than the default of not set.

I did this, and ended up with a cluster that refused to start, due: -

[19/08/15 08:34:36:288 BST] FFDC Exception:com.ibm.db2.jcc.am.SqlException SourceId:com.ibm.ws.rsadapter.jdbc.WSJdbcConnection.createStatement ProbeId:865 Reporter:com.ibm.ws.rsadapter.jdbc.WSJccSQLJPDQConnection@e99b8d0c com.ibm.db2.jcc.am.SqlException: [jcc][t4][10434][12579][4.11.69] Invalid operation: ResultSet holdability HOLD_CURSORS_OVER_COMMIT is not allowed on an XA connection. ERRORCODE=-4476, SQLSTATE=null

The dW Answers post also suggested that this iFix: -


would mitigate the problem.

Alas, I already had this applied to my BPM environment, as it was released ~12 months ago in August 2014.

Finally, it suggested that the DB2 JDBC driver might needed to be updated. I checked, and the BPM box was running an older version of the driver. I copied updated drivers ( db2jcc.jar and db2jcc4.jar ) across from the DB2 10.5.0.5 server, but to no avail. The problem persisted ....

For the record, the latest DB2 JDBC drivers can be found here: -


 I actually had the latest drivers applied to DB2, as they're consistent between 10.5.0.5 and 10.5.0.6: -


I then found this dW Answers post: -


which says, in part: -

For DB2, these driver properties can impact the behavior, although they don't really change things for the BPM XA transactions. 
resultSetHoldability Specifies whether cursors remain open after a commit operation. The data type of this property is int. Valid values are:

• DB2BaseDataSource.HOLD_CURSORS_OVER_COMMIT (1)
Leave cursors open after a commit operation.
This value is not valid for a connection that is part of a distributed (XA) transaction.

• DB2BaseDataSource.CLOSE_CURSORS_AT_COMMIT (2)
Close cursors after a commit operation.

downgradeHoldCursorsUnderXa Specifies whether cursors that are defined WITH HOLD can be opened under XA connections.

If downgradeHoldCursorsUnderXa is set to false, then an error is thrown for this scenario. 
If downgradeHoldCursorsUnderXa is set to true, a cursor that is defined WITH HOLD can be opened under an XA connection. However, the cursor has the following restrictions:

• When the cursor is opened under an XA connection, the cursor does not have WITH HOLD behavior. The cursor is closed at XA End.

• A cursor that is open before XA Start on a local transaction is closed at XA Start.

Therefore, I set resultSetHoldability back to 1 ( HOLD_CURSORS_OVER_COMMIT ) and also added a new Custom Property, downgradeHoldCursorsUnderXa, which 
I set to true.

This last most recent change appears to have fixed / mitigated the issue.

In summary, it was a combination of the JR50863 iFix AND the two JDBC data source Custom Properties. The JDBC driver version appears to make no difference, and I did roll back to the shipped version, at least for now.

Nice :-)