Friday, 7 May 2010

ADMG0007E: The configuration data type CellCompRegistryCollection is not valid.

Whilst adding the first of two nodes to a WebSphere Portal 6.1.5 cluster, I kept hitting 

ADMG0007E: The configuration data type CellCompRegistryCollection is not valid.

whilst running the task: -

./ConfigEngine.sh cluster-node-config-pre-federation -DWasPassword=passw0rd

 Following this developerWorks forum post: -


the response from Hunter Tweed with regard to the ConfigEngine.bat collect-files-for-dmgr process made me think; I realised that I'd previously gone through the steps to copy the required JAR and XML files from the portal node to the DM node but ....

I'd then removed/reinstalled WAS ND on the DM node, meaning that these changes had been lost.

I then re-copied the files across to the DM, but still saw the same exception :-(

I looked back through my notes from a previous clustering engagement, and realised that I had not restarted the DM node since adding the new JARs etc. which meant that the WAS classpath was out-of-date.

I stopped the DM, cleared the logs and restarted it again.

As I type, the cluster-node-config-pre-federation task has just completed.

Sweet as the proverbial nut .......

I'm also following Hunter's most excellent WebSphere Portal 6.1.5 / 6.1.0.3 clustering guide, which is available online here: -

IBM WebSphere Portal Content Templates Catalog

Just experimenting with these templates on a freshly installed WebSphere Portal Enable 6.1.5 installation ( Linux ).

Being a typical used, I just jumped straight in and tried to install them using the shipped install.sh having modified it. I then realised that I first needed to: -

(a) copy the catalog components into /opt/IBM/WebSphere/PortalServer
(b) ensure that /opt/IBM/WebSphere/wp_profile/ConfigEngine/properties/wkplc.properties has the correct values for WasPassword and PortalAdminPwd.

Is it just me or would one not expect to take these values from install.sh given that it's necessary to amend it to reflect the WAS and Portal credentials ?

Have fed back same via the Catalog entry: -


In the meantime, here goes ...

Using WebSphere Portal Express Content Libraries on WebSphere Portal Enable/Extend

In scenarios where WCM has been installed as part of a WebSphere Portal Enable / Extend implementation, these two useful content libraries are on-disk but not configured/available for use.


They can be configured using the commands: -

./ConfigEngine.sh configure-express -DPortalAdminPwd=passw0rd -DWasPassword=passw0rd
./ConfigEngine.sh action-express-memberfixer -DPortalAdminPwd=passw0rd -DWasPassword=passw0rd


( the latter command being run once the file: -

/opt/IBM/WebSphere/wp_profile/PortalServer/wcm/shared/app/config/wcmservices/MemberFixerModule.properties file

has been updated to reflect the correct portal administration user name ).

which provides these two new WCM libraries: -

Internet Web Content 6.1.0
Intranet Web Content 6.1.0


It's then necessary to test for membership problems etc. using MemberFixer via the following URL: -

http://portaldemo.uk.ibm.com:10040/wps/wcm/connect?MOD=MemberFixer&Library=Internet Web Content 6.1.0

which returns: -

...
IWKCW1045X: SUMMARY INFORMATION
Library processed: Internet Web Content 6.1.0
IWKCW1046X: Items Processed: 119
IWKCW1047X: Items Updated and Saved: 0
IWKCW1047X: Member References requiring Removal: 0
IWKCW1048X: Member References requiring Update: 0
IWKCW1049X: Virtual Members requiring Update: 0
Errors Detected: 0
...



and: -

http://portaldemo.uk.ibm.com:10040/wps/wcm/connect?MOD=MemberFixer&Library=Intranet Web Content 6.1.0

which returns

...
IWKCW1045X: SUMMARY INFORMATION
Library processed: Intranet Web Content 6.1.0
IWKCW1046X: Items Processed: 108
IWKCW1047X: Items Updated and Saved: 0
IWKCW1047X: Member References requiring Removal: 0
IWKCW1048X: Member References requiring Update: 0
IWKCW1049X: Virtual Members requiring Update: 0
Errors Detected: 0
IWKCW1050X: Non-existent Members that have alternate Distinguished Names available: 6.

...

Given that these are non-existent members, we can remove them using the &fix=true and &alt_dn=remove commands: -

http://portaldemo.uk.ibm.com:10040/wps/wcm/connect?MOD=MemberFixer&Library=Intranet Web Content 6.1.0&fix=true&alt_dn=remove

This returns: -

...
IWKCW1045X: SUMMARY INFORMATION
Library processed: Intranet Web Content 6.1.0
IWKCW1046X: Items Processed: 108
IWKCW1047X: Items Updated and Saved: 2
IWKCW1047X: Member References requiring Removal: 6
IWKCW1048X: Member References requiring Update: 0
IWKCW1049X: Virtual Members requiring Update: 0
Errors Detected: 0

IWKPL1368X: Utility completed.

...

To be sure, we re-run the MemberFixer query, which now returns: -
...
IWKCW1045X: SUMMARY INFORMATION
Library processed: Intranet Web Content 6.1.0
IWKCW1046X: Items Processed: 108
IWKCW1047X: Items Updated and Saved: 0
IWKCW1047X: Member References requiring Removal: 0
IWKCW1048X: Member References requiring Update: 0
IWKCW1049X: Virtual Members requiring Update: 0
Errors Detected: 0

...

Life is good ...

For more information, see here: -

Exploring the sample site templates

Installing WebSphere Portal on Linux

Sample Lotus Web Content Management member fixer tool commands after running ConfigEngine configure-express

XMing The Merciful ...

Whilst working on-site where I was temporarily unable to connect my own Mac to the client's network ( not unreasonable ), I needed a solution to allow me to access the multitude of Red Hat Enterprise Linux boxes on which I'm installing WebSphere Portal, Lotus Connections and Lotus Quickr - from a shared Windows XP desktop.

Now I've been using Simon Tatham's most excellent PuTTY client for many a year, but also needed a mechanism to tunnel X11 back from the server to the Windows client.

VNC wasn't an option, because there were no suitable window managers ( twm etc. ) or terminal clients ( xterm etc. ) on the RHEL servers.

I have in the past used Cygwin, but that looked like a sledge hammer to crack a nut.

When I cast my mind back to the last time I hit this problem in November 2009, I remembered a neat little XWindows server called XMing.

This, combined with PuTTY, allowed me to connect, securely using SSH, to the remote Linux boxes, and then tunnel the X11 display back across the SSH connection to the XMing server, which sits in the system tray, and listens for X11 connections on 127.0.0.1:0.0.

The only additional thing that I needed to do was to "tell" PuTTY to allow X11 forwarding, via Connection -> SSH -> X11, with Enable X11 forwarding checked and also set the default X11 display location to localhost:0
















Easy as darn fine cherry pie ...

IBM HTTP Server 6.1 - Too Many Bits ...

Had an interesting problem today whilst trying to install IBM HTTP Server 6.1 on Red Hat Enterprise Linux.

Having expanded the TGZ file that contains the IHS server, along with other goodies that form part of the bundle WebSphere Application Server 6.1 Supplemental, I attempted to install IHS using the command

/tmp/IHS/install

which merely took me back to the command line, with absolutely no error message etc.

I debugged things a little further, using the strace command: -

strace /tmp/IHS/install

This returned a little bit more detail, including: -

stat64("/tmp", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
stat64("/tmp/JDK", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
stat64("/tmp/JDK/jre.pak", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
stat64("/tmp/JDK/jre.pak/repository", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
stat64("/tmp/JDK/jre.pak/repository/package.java.jre", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
stat64("/tmp/JDK/jre.pak/repository/package.java.jre/java", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
stat64("/tmp/JDK/jre.pak/repository/package.java.jre/java/jre", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
stat64("/tmp/JDK/jre.pak/repository/package.java.jre/java/jre/bin", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
chdir("/tmp/JDK/jre.pak/repository/package.java.jre/java/jre/bin") = 0
which made me start to think.

To be sure, I attempted to run the JRE that is packaged as part of the IHS installer: -

cd /tmp/JDK/jre.pak/repository/package.java.jre/java/jre/bin
./java -version

which returned: -

bash: ./java: cannot execute binary file


I again used strace to debug things: -

strace ./java -version

which returned: -

execve("./java", ["./java", "-version"], [/* 26 vars */]) = -1 ENOEXEC (Exec format error)
dup(2)                                  = 3
fcntl64(3, F_GETFL)                     = 0x8002 (flags O_RDWR|O_LARGEFILE)
fstat64(3, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 1), ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7fc6000
_llseek(3, 0, 0xbff2f314, SEEK_CUR)     = -1 ESPIPE (Illegal seek)
write(3, "strace: exec: Exec format error\n", 32strace: exec: Exec format error
) = 32
close(3)                                = 0
munmap(0xb7fc6000, 4096)                = 0
exit_group(1)                           = ?

Now I *may* be wrong, but I'm guessing that the fstat64 references in the two strace stacks indicate that I have a 64-bit JVM, whereas I'm using a 32-bit operating system.

I downloaded the WAS 6.1 Supplemental code again ( as C88T0ML.tar.gz ), ensuring that I definitely selected the 32-bit version, and was able to install IHS successfully.

The moral of the story - use strace ...

Thursday, 6 May 2010

WebSphere Portal Enable 6.1.5 / 6.1.30 - Unpacking on Linux ...

Following on from my occasional series of unpack scripts, here's the one that I've been using to install WebSphere Portal Enable 6.1.5 on Linux ( 32-bit ): -

unzip    cz8g9ml.zip       -d    IL-Setup
mkdir                            IL-1
tar    xvzf cz8h5ml.tgz    -C    IL-1
mkdir                            IL-2
tar    xvzf cz8hdml.tgz    -C    IL-2
unzip    cz8ibml.zip       -d    IL-3
unzip    cz8icml.zip       -d    IL-4
unzip    cz8idml.zip       -d    IL-5
unzip    cz8ieml.zip       -d    IL-5A

Wednesday, 5 May 2010

Running WebSphere Portal as a non-root user

This is a Work-In-Progress article, and I'm sure to make changes as I go through the next few days.

One of my clients has a requirement to run WebSphere Portal 6.1.5 as a non-root user on Linux, which is fairly standard. In most production environments, organisations are reluctant to release the root user's password to anyone, and control often remains with the hardware/OS administrators, whereas WebSphere etc. lives up at the application level.

In my scenario, I have installed WebSphere Portal Enable 6.1.5 *as* root; installing as non-root is far more tricksy, and requires one to install WebSphere Application Server as root, change the permissions of the newly installed WAS, and then install WebSphere Portal into the existing WAS environment.

This is far better explained here: -

In my case, I did the installation, as root, using the standard installation wizard, which lays down WAS, Portal/WCM etc.

Once installed, I did the following - as root: -
  1. Created an ibmusers group

    groupadd ibmusers
  2. Created an ibmuser account ( as a member of the ibmusers group )

    useradd -g ibmusers ibmuser
  3. Set the password for the ibmuser account

    passwd ibmuser
  4. Set permissions for the /opt directory structure for the ibmusers group - on my system, this is ONLY used by WebSphere

    chmod -R g+rwx /opt/IBM
    chgrp -R ibmusers /opt/IBM
     
  5. Set permissions for the /tmp directory structure for the ibmusers group

    chmod -R g+wr /tmp
    chgrp -R ibmusers /tmp

  6. Set permissions for the /var/tmp directory structure for the ibmusers group

    chmod -R g+wr /var/tmp
    chgrp -R ibmusers /var/tmp
I then ran the following tests: -

  • Having checked, as root, that WebSphere Portal was stopped - using the serverStatus.sh command, I logged in as ibmuser and navigated to the following directories: -

    /tmp
    /var/tmp
    /opt/IBM/WebSphere/AppServer/log

    and verified that I could create/edit/delete files using the touch, vi and rm commands
     
  • Again, as ibmuser, I then used the startServer.sh and stopServer.sh commands to start and stop WebSphere Portal
     
  • Having run up the server, again as ibmuser, I checked that I could view and delete the logs in: -

    /opt/IBM/WebSphere/AppServer/profiles/wp_profile/logs 
     
Having done all of the above, I performed one final test: -
  •  I rebooted the server, and logged on from the Gnome login panel as ibmuser and ran through the same tests as before, just to ensure that there were no root permissions hanging around :-)
I did hit one small, but semi-obvious, snag - when I rebooted the server at a later stage, I was unable to log in to Gnome as root; to be more precise, I was able to log in, but received a whole host of Gnome errors, implying that it couldn't talk to the network, even though I could see that eth0 had a valid IP address and that I could ping the server's hostname.

Given that I'd made a change to the permissions of /tmp, I though that there might be lock files etc. hanging around. I changed the runlevel to 3 to fully kill the X11 server, via the init 3 command, cleared the contents of /tmp using the command rm -Rf /tmp/* and then restarted X11 using the command init 5.


When I logged into Gnome as root, all was well.


So far, so good. The next test is to add a new user to the ibmusers group and see whether I can run through the same set of tests again.



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...