Tuesday, 14 October 2014

IBM Tivoli Access Manager for e-Business - System Requirements

So I'm looking at IBM's WebSEAL secure reverse proxy solution for the first time in a while ( last time was ~2010 although I've worked with clients using WebSEAL since then ).

The world has moved on in that there's now an appliance solution, IBM Security Access Manager for Web, which appears to do much of what WebSEAL ( aka IBM Tivoli Access Manager for e-Business or TAMeB ) does.

In parallel, I'm going to download/install TAMeB, which is still available.

The current version is 6.1.1.8 for which the System Requirements can be found here: -


I'm specifically interested in the dependencies, including WebSphere Application Server ( 6.1 through 8.5.0 ) and DB2 Enterprise Server Edition ( 9.1 through 10.1 ) and Microsoft Active Directory ( 2003 through 2008 R2 ).

Guess what I'm off to do ?

Sunday, 12 October 2014

A blast from the past - suspend and resume in Ubuntu Linux

It has been a rather long while since I last blogged about the fun involved in getting Ubuntu Linux to successfully suspend and, more importantly, resume on an IBM Thinkpad.

Lookng back it was just soooo 2011: -

Ubuntu 10.10 on Lenovo Thinkpad W500 - Problems with Suspend

and 2010: -


and then 2009: -


I inherited a Lenovo Thinkpad W510 when one of my colleagues left IBM, and it's been sitting in a cupboard for a few months now.

However, I pulled it out of the cupboard a few weeks back and installed Linux onto it ( first OpenSuSE 13.1 and then, on Friday, Ubuntu 14.04 ).

However, I did find that the laptop would fail to resume after a suspend ( typically initiated by my closing the lid ).

I dug into it a bit yesterday, and found the following: -

Xorg crashed with SIGABRT

which gave me a few pointers.

I dug around online, and found a suggestion to switch video drivers ( I have a nVidia GT216GLM ( aka Quadro FX 880M ) card in the W510 ).

This is what I had: -


and this is to what I moved: -


Having made the change, suspend and resume are, at least for now, working perfectly, which is nice ;-)

Even better, I'm running a Windows Server 2008 VM under VMware Workstation 10.1, which also recovers nicely after the resume.

Friday, 10 October 2014

Problems with LDAPSearch against Active Directory 2008

So I was doing this: -

ldapsearch -h ad2008.uk.ibm.com -p 389 -D CN=ldapbind,CN=Users,DC=uk,DC=ibm -w passw0rd CN=ldapbind

but was seeing this: -

# extended LDIF
#
# LDAPv3
# base <> (default) with scope subtree
# filter: CN=ldapbind
# requesting: ALL
#

# search result
search: 2
result: 32 No such object
text: 0000208D: NameErr: DSID-031001E5, problem 2001 (NO_OBJECT), data 0, best match of: ''

# numResponses: 1


Can you see what I did wrong ?

Yep, I forgot to add the base Distinguished Name: -

ldapsearch -h ad2008.uk.ibm.com -p 389 -D CN=ldapbind,CN=Users,DC=uk,DC=ibm -w passw0rd -b DC=uk,DC=ibm CN=ldapbind 

...
dn: CN=ldapbind,CN=Users,DC=uk,DC=ibm
distinguishedName: CN=ldapbind,CN=Users,DC=uk,DC=ibm

...

which is nice.

Tuesday, 7 October 2014

WebSphere Application Server - Auditing Ports

So one of the core tenets of Java development is to re-use, not re-invent.

I had a requirement to report on the various TCP/IP ports being used by members of my various WAS 8.0 and 8.5 cells.

Steve Robinson came to the rescue with this: -

import java
lineSeparator = java.lang.System.getProperty('line.separator')

# get Nodes
NodeIDs = AdminConfig.getid('/Node:/')
arrayNodeIDs = NodeIDs.split(lineSeparator)

# get Ports
EndPointIDs = AdminConfig.getid('/EndPoint:/')
arrayEndPointIDs = EndPointIDs.split(lineSeparator)
NamedEndPointIDs = AdminConfig.getid('/NamedEndPoint:/')
arrayNamedEndPointIDs = NamedEndPointIDs.split(lineSeparator)

# print
for x in range(len(arrayNodeIDs)):
        for y in range(len(arrayEndPointIDs)):
                if arrayEndPointIDs[y].find(AdminConfig.showAttribute(arrayNodeIDs[x],'name')) > 0:
                        print AdminConfig.showAttribute(arrayNodeIDs[x],'name'),AdminConfig.showAttribute(arrayNamedEndPointIDs[y],'endPointName'),AdminConfig.showAttribute(arrayEndPointIDs[y],'port')
               

Monday, 6 October 2014

"gzip: stdin: invalid compressed data--format violated "

I've seen this before, albeit not with Linux: -


This is what I was doing: -

tar xvzf /mnt/hgfs/Software/DB2V10/Product/DB2_ESE_10_Linux_x86-64.tar.gz

and this is what I saw: -

ese/db2/linuxamd64/FILES/
ese/db2/linuxamd64/FILES/BASE_CLIENT_R_10.1.0.0_linuxamd64_x86_64.tar.gz
ese/db2/linuxamd64/FILES/BASE_CLIENT_NR_10.1.0.0_linuxamd64_x86_64.tar.gz
ese/db2/linuxamd64/FILES/DB2_PRODUCT_MESSAGES_EN_10.1.0.0_linuxamd64_x86_64.tar.gz
ese/db2/linuxamd64/FILES/BASE_CLIENT_10.1.0.0_linuxamd64_x86_64.tar.gz

ese/db2/linuxamd64/FILES/BASE_CLIENT_10.1.0.0_linuxamd64_x86_64.tar.gz

gzip: stdin: invalid compressed data--format violated
tar: Unexpected EOF in archive
tar: Unexpected EOF in archive
tar: Error is not recoverable: exiting now

I'd already set up my ulimits but - and this is important - had not rebooted OR restarted my shell.

I needed to reboot anyway ( in order to disable SELinux ).

Once done .... it still didn't work :-(

I tried various combinations, none of which worked.

I then tried the same .TAR.GZ file on my Mac, which .... threw: -

x ese/db2/linuxamd64/FILES/BASE_CLIENT_10.1.0.0_linuxamd64_x86_64.tar.gz: gzip decompression failed
tar: Error exit delayed from previous errors.

proving that the problem was NOT with the ulimits, but may be with the common item - the archive.

Given that this archive had worked ~24 hours ago and given that the external USB drive from whence I was unpacking the file had been accidentally ejected from the Mac a wee while previously, I put two and two together, and ran the Mac's Disk Utility against the drive to repair files/permissions etc.

Once done, the process was smoother than a smooth thing in smooth land .....

"WARNING: CRIMA1218W A problem occurred during..." the installation of IBM Operational Decision Manager 8.6

And another one down :-)

I've been "struggling" with the installation of IBM Operational Decision Manager 8.6 ( Decision Center / Decision Server ) over the past 24 hours or so.

It was somewhat annoying, and I couldn't find an obvious solution.

This was what I was seeing: -

<entry num='369' time='1412536153289' elapsed='01:01.01' level='WARNING' thread='main'>
 <logger>com.ibm.cic.agent.core.antInstallAdapter.Util</logger>
 <class>com.ibm.cic.agent.internal.core.IMLoggerImpl</class>
 <method>warning</method>
 <message>WARNING: CRIMA1218W A problem occurred during the execution of the /home/wasadmin/var/ibm/InstallationManager/adapters/ant/Operational Decision Manager V8.6/com.ibm.websphere.odm.common.dc.ilmt_8.6.0.20140507_2330/update_ilmt_ear.xml file. The specified severity null is not valid.
  explanation: The severity value must be one of the following values: ERROR, WARNING, or INFO. If the severity value is not one of these values, then severity defaults to ERROR.
  userAction: Identify the package that has the issue by looking at the installation history. In Installation Manager, click File &gt; Installation History. In console mode, enter S: View Installation History. Contact IBM customer support.</message>
</entry>
<entry num='370' time='1412536153301' elapsed='01:01.02' level='ERROR' uid='CRIMA1217E' thread='main'>
 <logger>com.ibm.cic.agent.core.antInstallAdapter.ant.AntInstallOperation</logger>
 <method>doPerform</method>
 <message>
  <key>A problem occurred during the execution of the {0} file.
  ERROR: The following error occurred while executing this line:
/home/wasadmin/var/ibm/InstallationManager/adapters/ant/Operational Decision Manager V8.6/com.ibm.websphere.odm.common.dc.ilmt_8.6.0.20140507_2330/update_ilmt_ear.xml:143: The following error occurred while executing this line:
/home/wasadmin/var/ibm/InstallationManager/adapters/ant/Operational Decision Manager V8.6/com.ibm.websphere.odm.common.dc.ilmt_8.6
.0.20140507_2330/update_ilmt_ear.xml:268: The following error occurred while executing this line:
/home/wasadmin/var/ibm/InstallationManager/adapters/ant/Operational Decision Manager V8.6/com.ibm.websphere.odm.common.dc.ilmt_8.6
.0.20140507_2330/update_ilmt_ear.xml:305: Use a resource collection to copy directories. [/home/wasadmin/var/ibm/InstallationManag
er/adapters/ant/Operational Decision Manager V8.6/com.ibm.websphere.odm.common.dc.ilmt_8.6.0.20140507_2330/update_ilmt_ear.xml:254
]
A package has an issue that cannot be resolved by Installation Manager.
Identify the package that has the issue by looking at the installation history. In Installation Manager, click File &gt; Installation History. In console mode, enter S: View Installation History. Contact IBM customer support.</key>
  <arg>/home/wasadmin/var/ibm/InstallationManager/adapters/ant/Operational Decision Manager V8.6/com.ibm.websphere.odm.common.dc.ilmt_8.6.0.20140507_2330/update_ilmt_ear.xml</arg>
 </message>
</entry>
<entry num='371' time='1412536153302' elapsed='01:01.02' level='ERROR' thread='main'>
 <logger>com.ibm.cic.agent.core.antInstallAdapter.ant.AntInstallOperation</logger>
 <method>doPerform</method>
 <message href='ant/20141005_2009.log'>Invoking antfile "/home/wasadmin/var/ibm/InstallationManager/adapters/ant/Operational Decision Manager V8.6/com.ibm.websphere.odm.common.dc.ilmt_8.6.0.20140507_2330/update_ilmt_ear.xml".</message>
</entry>


using a response file, which I'd mainly adapted from the previous 8.5.0.1 version of IBM ODM.

The solution ?

Well, I went against my normal practice, and used the GUI ( IBM Installation Manager ) to install ODM, which ( quelle surprise ) worked a treat.

I did, however, tell IIM to create a response fie: -

/opt/IBM/InstallationManager/eclipseIBMIM -record foobar.rsp

which I then compared/contrasted against my own version.

This is what I had ( specifically for ODM ): -

<server>
<repository location='/tmp/Repo/IIM/'/>
<repository location='/tmp/Repo/WAS85/Base/Product/'/>
<repository location='/tmp/Repo/WAS85/Base/Fixes/'/>
<repository location='/tmp/Repo/WAS85/Supplements/Product/'/>
<repository location='/tmp/Repo/WAS85/Supplements/Fixes/'/>
<repository location='/tmp/Repo/ODM86/Product/DC'/>
<repository location='/tmp/Repo/ODM86/Product/DecisionServerRules'/>
</server>
<profile id='Operational Decision Manager V8.6' installLocation='/opt/IBM/WebSphere/ODM86'>
<data key='eclipseLocation' value='/opt/IBM/WebSphere/ODM86'/>
<data key='user.import.profile' value='false'/>
<data key='cic.selector.os' value='linux'/>
<data key='cic.selector.ws' value='gtk'/>
<data key='cic.selector.arch' value='x86_64'/>
<data key='cic.selector.nl' value='en'/>
<data key='user.wodm_express' value='false'/>
<data key='user.wodm_was_home' value='/opt/IBM/WebSphere/AppServer'/>
</profile>
<offering id='com.ibm.websphere.odm.dc.v86' version='8.6.0.20140507_2334' profile='Operational Decision Manager V8.6' features='jdk,base,Decision Center' installFixes='none'/>
<offering id='com.ibm.websphere.odm.ds.rules.v86' version='8.6.0.20140507_2359' profile='Operational Decision Manager V8.6' features='com.ibm.wds.jdk.feature,base,com.ibm.wds.rules.studio.feature' installFixes='none'/>


and this is what the GUI generated for me: -

  <server>
    <repository location='/tmp/Repo/ODM86/Product/ProfileTemplateDC'/>
    <repository location='/tmp/Repo/ODM86/Product/ProfileTemplateRules'/>
    <repository location='/tmp/Repo/ODM86/Product/DecisionServerRules'/>
    <repository location='/tmp/Repo/ODM86/Product/DC'/>
    <repository location='/tmp/Repo/WAS85/Supplements/Fixes/'/>
    <repository location='/tmp/Repo/WAS85/Supplements/Product/'/>
    <repository location='/tmp/Repo/WAS85/Base/Fixes/'/>
    <repository location='/tmp/Repo/WAS85/Base/Product/'/>
  </server>
  <profile id='Operational Decision Manager V8.6' installLocation='/opt/IBM/WebSphere/ODM86'>
    <data key='eclipseLocation' value='/opt/IBM/WebSphere/ODM86'/>
    <data key='user.import.profile' value='false'/>
    <data key='cic.selector.os' value='linux'/>
    <data key='cic.selector.ws' value='gtk'/>
    <data key='cic.selector.arch' value='x86_64'/>
    <data key='cic.selector.nl' value='en'/>
    <data key='user.wodm_express' value='false'/>
    <data key='user.wodm_was_home' value='/opt/IBM/WebSphere/AppServer'/>
    <data key='user.lic.dsr' value=''/>
    <data key='user.prod.dsr' value=''/>
    <data key='user.lic.dc' value='full'/>
    <data key='user.wodm_admin_username' value='wasadmin'/>
    <data key='user.wodm_admin_password' value='passw0rd'/>
    <data key='user.confirm_password' value='passw0rd'/>

  </profile>
  <install modify='false'>
    <!-- Decision Center 8.6.0.0 -->
    <offering profile='Operational Decision Manager V8.6' id='com.ibm.websphere.odm.dc.v86' version='8.6.0.20140507_2334' features='jdk,base,Decision Center,Rule Solutions for Office,com.ibm.wdc.rules.samples.feature,Documentation' installFixes='none'/>
    <!-- Decision Center profile templates for WebSphere Application Server   8.6.0.0 -->
    <offering profile='Operational Decision Manager V8.6' id='com.ibm.websphere.odm.pt.dc.v86' version='8.6.0.20140508_0103' features='main.feature' installFixes='none'/>
  </install>

I've highlighted the most substantial differences.

Following the normal Dave Hay practice of "Make a change, test a change", I first added in: -

    <data key='user.wodm_admin_username' value='wasadmin'/>
    <data key='user.wodm_admin_password' value='passw0rd'/>
    <data key='user.confirm_password' value='passw0rd'/>

but to no avail.

I then added in the remaining three lines: -

    <data key='user.lic.dsr' value=''/>
    <data key='user.prod.dsr' value=''/>
    <data key='user.lic.dc' value='full'/>

and that cracked it.

I've run through the installation a few times since I found the solution: -

/opt/IBM/InstallationManager/eclipse/tools/imcl uninstallAll
rm -Rf /opt/IBM/WebSphere/
/opt/IBM/InstallationManager/eclipse/tools/imcl -input ~/installODM86.rsp -acceptLicense

and it appears to work OK.

I am, however, going to throw away this VM, and build a brand-new one, just to be sure, to be sure :-)

#LifeIsGood

*UPDATE*

And ... it worked :-)

/tmp/Repo/IIM8/userinstc -input installODM86.rsp -acceptLicense

Installed com.ibm.cic.agent_1.8.0.20140902_1503 to the /opt/IBM/InstallationManager/eclipse directory.
Installed com.ibm.websphere.odm.dc.v86_8.6.0.20140507_2334 to the /opt/IBM/WebSphere/ODM86 directory.
Installed com.ibm.websphere.odm.ds.rules.v86_8.6.0.20140507_2359 to the /opt/IBM/WebSphere/ODM86 directory.
Installed com.ibm.websphere.ND.v85_8.5.5002.20140408_1947 to the /opt/IBM/WebSphere/AppServer directory.
Installed com.ibm.websphere.IHS.v85_8.5.5002.20140408_1947 to the /opt/IBM/HTTPServer directory.
Installed com.ibm.websphere.PLG.v85_8.5.5002.20140408_1947 to the /opt/IBM/WebSphere/Plugins directory.


Note to self - Firefox and local connections

 Whilst trying to hit my NAS from Firefox on my Mac, I kept seeing errors such as:- Unable to connect Firefox can’t establish a connection t...