Wednesday, 30 July 2014

WebSphere Application Server - Migrating to 8.5.5

IBM WebSphere Application Server Migration Toolkit

The IBM®WebSphere®Application Server Migration Toolkit is a suite of tools and knowledge collections that enables your organization to quickly and cost-effectively migrate to WebSphere Application Server V7.0 through V8.5.5, whether from a previous version of WebSphere Application Server or competitive application servers including Apache Tomcat Server, JBoss Application Server, Oracle®Application Server, and Oracle WebLogic Server.

http://www.ibm.com/developerworks/websphere/downloads/migtoolkit/vtov.html

Knowledge Collection: Migrating to WebSphere Application Server V8.5

A focused compilation of links to documents and resources to help you plan and perform your migration to IBM WebSphere Application Server Version V8.5.

http://www-01.ibm.com/support/docview.wss?uid=swg27008727


IBM Business Monitor 8.5.5 - My First Installation ....

.... failed rather spectacularly, mainly because I didn't read the manual :-)

So BAM 8.5.5 has a different approach to creating the configuration, rather than the previous 8.0.1.2 installation, which used the IBM BPM Deployment Environment process.

So I installed the binaries: -

com.ibm.cic.agent_1.7.2000.20140227_0303
com.ibm.websphere.MON.v85_8.5.5000.20140530_1037
com.ibm.websphere.ND.v85_8.5.5002.20140408_1947
com.ibm.ws.cognos.v1021.linuxia64_10.2.1.20140530_2310


and then configured the clusters using the new scripted process: -

cd /opt/IBM/WebSphere/AppServer/scripts.wbm/monConfig
./monConfig.sh -c ~/monconfig_threeCluster.properties -d Dmgr01 -p passw0rd -u wasadmin


and then tried to start the clusters, one of which ( the Support cluster, which hosts Cognos ) failed with: -

[29/07/14 17:21:22:589 BST] 00000001 VariableExpan E   WSVR0244E: An undefined i.wbmCognosUrl product variable has been encountered in the value property of the /opt/IBM/WebSphere/AppServer/profiles/AppSrv01/config/cells/bam855Cell/resources.xml#J2EEResourceProperty_1406649536784 configuration object.
[29/07/14 17:21:22:591 BST] 00000001 ResourceMgrIm E   WSVR0017E: Error encountered binding the J2EE resource, CognosEndpoint, as resource/wbm/CognosEndpoint from /opt/IBM/WebSphere/AppServer/profiles/AppSrv01/config/cells/bam855Cell/resources.xml
com.ibm.wsspi.runtime.variable.UndefinedVariableException: Undefined variable i.wbmCognosUrl


So I checked the resources.xml file: -

view /opt/IBM/WebSphere/AppServer/profiles/AppSrv01/config/cells/bam855Cell/resources.xml

which showed: -

...
      <resourceProperties xmi:id="J2EEResourceProperty_1406649536784" name="{com.ibm.cognos}cognosServiceRootId.url" type="java.lang.String" value="${i.wbmCognosUrl}" description="Cognos end point setting" required="false"/>
...

The offending value actually comes from one of two files: -

/opt/IBM/WebSphere/AppServer/profiles/Dmgr01/config.wbm/MonitorProfileVals.py

...
wbmCognosUrl = "${i.wbmCognosUrl}"
...

/opt/IBM/WebSphere/AppServer/profiles/Dmgr01/config.wbm/MonitorProfileVals.ant

...
wbmCognosUrl = $@i.wbmCognosUrl@
...

The root cause ?

(a) I did not read the manual
(b) I had not actually deployed / configured Cognos to the Support cluster :-)

The latter part of the solution is to actually run a script to deploy Cognos.

Here's an EXAMPLE from my own environment: -

/opt/IBM/WebSphere/AppServer/profiles/Dmgr01/bin/wsadmin.sh -lang jython -user wasadmin -password passw0rd

AdminTask.wbmDeployCognosService('[-cluster monSupportCluster1 -dbName COGNOSCS -dbUserName cognos -dbUserPassword passw0rd -adminUserName wasadmin -adminPassword passw0rd]')
AdminConfig.save()
AdminNodeManagement.syncActiveNodes()
quit


Once I did this, the Support cluster came up nicely :-)

Tuesday, 29 July 2014

IBM Installation Manager - Listing What's Available to Install

How to list what's available to install

/opt/IBM/InstallationManager/eclipse/tools/imcl listAvailablePackages -repositories /tmp/Repo/BAM855/repository/repository.config 

com.ibm.websphere.MON.v85_8.5.5000.20140530_1037
com.ibm.websphere.ND.v85_8.5.5002.20140408_1947
com.ibm.ws.DB2EXP.linuxia64_10.1.1.20140530_0055
com.ibm.ws.cognos.v1021.linuxia64_10.2.1.20140530_2310


and with added detail: -

/opt/IBM/InstallationManager/eclipse/tools/imcl listAvailablePackages -repositories /tmp/Repo/BAM855/repository/repository.config -features

com.ibm.websphere.MON.v85_8.5.5000.20140530_1037 : Monitor.Production,Monitor.NonProduction
com.ibm.websphere.ND.v85_8.5.5002.20140408_1947 : core.feature,ejbdeploy,thinclient,embeddablecontainer,samples,com.ibm.sdk.6_32bit,com.ibm.sdk.6_64bit
com.ibm.ws.DB2EXP.linuxia64_10.1.1.20140530_0055 : db2exp.linuxia64.feature
com.ibm.ws.cognos.v1021.linuxia64_10.2.1.20140530_2310 : com.ibm.cognos.feature


IBM BPM 8.5.5 - What goes where ?

Or, to be more precise, what applications sit on what cluster ?

Note that, in BPM 8.5.X, we only have three clusters; the old WebApp cluster has been morphed into the AppCluster, meaning that the need to "jump" across the cell via a load-balancer has gone away .....

This is what I've discovered thus far: -

AppCluster

Process Center

Process Admin

Process Portal


BPC Explorer

https://rhel6.uk.ibm.com:9445/bpc

MECluster

Nowt but the Messaging Engine :-)

Note that in BPM 8.5.X, we only have a single Service Integration Bus ( SIbus ) by default, with a single Messaging Engine.


Monday, 28 July 2014

More fun with BPM 8.5.5.0 and DB Bootstrapping

If you see this: -

[28/07/14 15:13:24:354 BST] 00000072 wle           E   CWLLG2229E: An exception occurred in an EJB call.  Error: null
                                 java.lang.NullPointerException
        at com.lombardisoftware.server.ejb.persistence.dao.TWAclEntryDAO.findByFilter(TWAclEntryDAO.java:73)


[28/07/14 15:13:24:382 BST] 00000072 wle_servlet   E   CWLLG0011E: Caches did not initialize because of an unexpected exception.  Error: com.lombardisoftware.client.delegate.BusinessDelegateException: java.lang.NullPointerException

Caused by: com.lombardisoftware.core.TeamWorksException: java.lang.NullPointerException


when attempting to log into Process Center on a newly-minted BPM 8.5.5 environment, then you've probably forgotten to run the bootstrap process: -

/opt/IBM/WebSphere/AppServer/profiles/Dmgr01/bin/bootstrapProcessServerData.sh -clusterName AppCluster

Can you say "Doh" ? I did ...

Problems with DBMS_LOCK on Oracle with IBM BPM Advanced 8.5.5.0

If you see this: -

[28/07/14 15:10:54:461 BST] 00000097 XmlBeanDefini I org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions Loading XML bean definitions from class path resource [org/springframework/jdbc/support/sql-error-codes.xml]
[28/07/14 15:10:54:703 BST] 00000097 SQLErrorCodes I org.springframework.jdbc.support.SQLErrorCodesFactory <init> SQLErrorCodes loaded: [DB2, Derby, H2, HSQL, Informix, MS-SQL, MySQL, Oracle, PostgreSQL, Sybase]
[28/07/14 15:10:54:731 BST] 00000097 wle_perf_load I   Error locking system table: ConnectionCallback; bad SQL grammar []; nested exception is java.sql.SQLException: ORA-06550: line 1, column 13:
PLS-00201: identifier 'DBMS_LOCK' must be declared
ORA-06550: line 1, column 7:
PL/SQL: Statement ignored

                                 org.springframework.jdbc.BadSqlGrammarException: ConnectionCallback; bad SQL grammar []; nested exception is java.sql.SQLException: ORA-06550: line 1, column 13:
PLS-00201: identifier 'DBMS_LOCK' must be declared
ORA-06550: line 1, column 7:
PL/SQL: Statement ignored


during the startup of an IBM BPM 8.5.5.0 environment, when using Oracle, then you'll need to add an additional DB grant

GRANT execute ON DBMS_LOCK TO pdwuser;

as per this IBM Technote: -


which was written for BPM 7.5 and 8.0, but still appears to be relevant.

<Caveat>
Of course, for all DB-related issues, check check check this with your DBA and, if needed, raise a PMR with IBM Support to validate that this is the RIGHT approach for your environment.
</Caveat>

Thursday, 24 July 2014

How to run IBM Integration Bus v9 on SoftLayer Servers

This from my IBM Hursley colleague, Simon Holdsworth: -


In this article I will describe the steps I took to get IBM Integration Bus Version 9 installed and running on SoftLayer servers.  You might want to do this as part of establishing an off-premise cloud environment that includes integration capability, or for managing a pool of integration servers for development and testing.

This article shows how to set up a SoftLayer-hosted server and install and run software on it - in this case IBM Integration Bus - either through a traditional product install, or by using a Hypervisor Edition.  You can get everything working without leaving your desk, plugging in a cable or hitting a switch.