Tuesday 30 June 2009

Error "ERROR: Invalid bundled JVM. Missing 'jvm' file" when attempting to install Domino 8.5 on Red Hat Enterprise Linux

Haven't yet cracked this, but I will .......

Am getting: -

ERROR: Invalid bundled JVM. Missing 'jvm' file.

when I attempt to install Domino 8.5 on Red Hat Enterprise Linux AS release 4 (Nahant Update 7).

Initially, this presented at a simple fail when I ran /tmp/linux/domino/install ( having extracted the Domino 8.5 installation package ).

Following: -

I added the switch -is:log /tmp/foobar.txt to the command e.g.: -

/tmp/linux/domino/install -is:log /tmp/foobar.txt

which then gave me the "Missing 'jvm' file" error.

As I say, I've not yet cracked it but ......

Monday 29 June 2009

Error "Failed to create event client" when trying to use Lotus Sametime Server 8.0.2 on Red Hat Enterprise Linux

Having installed Domino 8.0.2 and Sametime 8.0.2 on Red Hat Enterprise Linux 5.2, I was annoyed to find that the Sametime tasks would crash shortly after the server started, with no obvious error apart from: -

Failed to create event client

in the Domino console.

As per usual, I Googled around until I found this: -

which suggested that the problem was that the Sametime server was unable to resolve / bind to the localhost address, due to an incorrect entry in /etc/hosts.

I checked my box and, lo and behold, my /etc/hosts file only had the line: -

::1 ip6-localhost ip6-loopback

This is, afaik, only relevant for IP v6 addresses, whereas I, like most of the rest of the intraweb, are using IP v4.

I added: - localhost.localdomain localhost

to the file, and restarted the Domino server and...... it all worked nicely.

As ever, one lives and, if you will, one learns :-)

Lotus Sametime and /etc/security/limits.conf on Red Hat Enterprise Linux

If you see: -

WINUX: Please see /etc/security/limits.conf RECOMMENDATION: * hard nofile 65535
WINUX: Please see /etc/security/limits.conf RECOMMENDATION: * soft nofile 65535

then you'll probably find a reference to the Lotus Sametime 8.0.2 Information Center at: -

which directs one to add: -

soft    nofile          65535
hard    nofile          65535

to /etc/security/limits.conf and reboot.

However, on my own Red Hat Enterprise Linux 5.2 server, this did not work until I added leading "*" symbols to both lines: -

*      soft    nofile          65535
*      hard    nofile          65535

and again rebooted.

Copying files on Linux using SSH

Well, I was familiar with using Secure CoPy ( SCP ) and have been using it extensively today to copy gigabytes of software products, including DB2 UDB, WebSphere Portal Express, Lotus Domino, Lotus Sametime and Lotus Connections.

However, I was struggling to know how to upload one file and have it append to another e.g. perform the equivalent of "cat foo >> bar" which appends the contents of foo onto bar.

Thanks to this most useful blog, I now know how - don't use SCP, use SSH instead: -

How to append remote file with local file over ssh connection

cat local-source-file-name | ssh user@some.domain "cat >> remote-target-file-name"

How to append to local file from remote file over ssh connection

ssh user@some.domain "cat remote-source-file-name" >> local-target-file-name

SMTP task fails to start on Domino 8.5 on Red Hat Enterprise Linux 5.3

When trying to start the Domino SMTP task on my RHEL 5.3 box, I kept seeing: -

SMTP Server: Listener failure: 'bindsock' is missing, not executable, not owned by root, not setuid root or user needs net_privaddr privilege
Suspending listen task for 20 seconds due to network errors
Unable to bind to port = 6400 errono = 98 "Address already in use"

As usual, a quick Google search ( other search engines are available ) pointed me at this TechNote: -

which indicated a conflict with the sendmail task.

Being a command line junkie, I used the following command to check that sendmail was, indeed, the culprit: -

chkconfig --list | grep -i sendmail

which returned: -

sendmail       0:off 1:off 2:on 3:on 4:on 5:off 6:off

e.g. that it was set to run whenever the server was at runlevel 3 or 4.

Now I generally run my servers at runlevel 3 ( multiuser without X11 ), so this made sense.

That being the case, I disabled the task as follows: -

chkconfig --level 34 sendmail off

and checked that it was definitely OFF using: -

chkconfig --list | grep -i sendmail

Having done this, I then forced the sendmail task to shut down ( I could have simply rebooted ) using the command: -

killall sendmail

which then allowed the SMTP task to start after it's 20 second delay ( on port 25 ).

Sunday 28 June 2009

Installing Lotus Domino 8.5 on Red Hat Enterprise Linux 5.3

Am having fun and games trying to get Domino 8.5 working on Linux.

After spending quite some time trying ( and failing ) to get it running on Red Hat Enterprise Linux ( RHEL ) 4, I decided to try an updated version of the OS, 5.0 update 3 aka 5.3.

I downloaded the code as C1SQ1EN.tar, extracted it to a temporary directory ( /tmp ) and then installed it via the command /tmp/linux/domino/install -console.

However, when I attempted to run the server to perform the setup: -

su - notes
cd /local/notesdata/

I received the error: -

expr: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory

A quick Google led me here: -
Domino ../linux/startup script evaluates Red Hat 5.3 as Red Hat 3

This suggests that the server script looks at the file /etc/issue which contains the line: -

Red Hat Enterprise Linux Server release 5.3 (Tikanga)

and evaluates the version as Red Hat 3 rather than 5.3. This causes an environment variable LD_ASSUME_KERNEL=2.4.19 to be set, which isn't correct for this later release of RHEL.

The TechNote directed me to amend the server script, but I decided to plow my own furrow and simply backup/amend /etc/issue to read: -

Red Hat Enterprise Linux Server release 5.1 (Tikanga)

which appeared to have the same effect.

Having made this minor change, I was able to start the server, and complete the setup.


This worked for me - I'm not sure if there are any other knock-on effects from this modification, and I will follow the TechNote at a later date. Don't try this at home, kids.


Monday 22 June 2009

DB2 not appearing to listen

During my recent travails with WebSphere Portal and Lotus Forms Server, I hit a problem whereby DB2 UDB was installed and started, but didn't appear to be listening on any TCP/IP ports.

After some digging, I found that DB2 was not correctly set up to automatically listen, despite having the relevant entries in /etc/services.

In summary, I needed to ensure that I had the following: -

DB2_db2inst1 60000/tcp
DB2_db2inst1_1 60001/tcp
DB2_db2inst1_2 60002/tcp
DB2_db2inst1_END 60003/tcp

in /etc/services ( I'm using the 6000x port range but this could easily be another range such
as 5000x etc. ).

Having done this, I then needed to run the following three commands ( as the DB2 instance owner, db2inst1 ): -


( note that the first command uses the service name that's listed in /etc/services and may vary
from installation to installation )

Once I updated the DBM configuration and set the DB2 environment variable, all appeared to
be well.

Friday 19 June 2009

My next challenge - cloning

No, not in some kind of wierd scifi way, I'm not trying to create a race of Dave Hay-alikes ( although that does sound quite interest, now I think of it ).

I'm trying to get to the bottom of WebSphere Portal cloning, as a way to automate installation, and provide a mechanism for instance replication etc. using IBM Installation Factory for WebSphere Application Server: -

I'm starting with this presentation: -

and will keep you posted.

Marshall Lamb's excellent article here: -

Cloning a WebSphere Portal V6 installation

is also a good reference.

Automagically starting DB2 UDB on Linux - revisited

Following on from my earlier posting, I've been experimenting further with DB2 automatic startup.

It appears to be a complex case, and I ended up booting and rebooting a number of times, before I cracked it.

In the end, it looks like the process that starts DB2 is known as the Fault Monitor ( db2fm ), which starts up when the server is booted, via this line: -

fmc:2345:respawn:/opt/ibm/db2/V9.1/bin/db2fmcd #DB2 Fault Monitor Coordinator

in /etc/inittab.

However, this relies upon the Fault Monitor to be correctly configured.

I checked that it was running via the following command: -

ps -ef | grep db2fm

which showed: -

root 5627 1 0 19:23 ? 00:00:00 /opt/ibm/db2/V9.1/bin/db2fmcd
dasusr1 6829 1 0 19:24 ? 00:00:00 /opt/ibm/db2/V9.1/das/bin/db2fmd -i dasusr1 -m /opt/ibm/db2/V9.1/das/lib/libdb2dasgcf.so.1
db2inst1 6838 1 0 19:24 ? 00:00:00 /opt/ibm/db2/V9.1/bin/db2fmd -i db2inst1 -m /opt/ibm/db2/V9.1/lib32/libdb2gcf.so.1

so that wasn't the problem.

Using: -

DB2 does not automatically restart after restart on Unix system

How to use fault monitors to automatically restart DB2 UDB instances

for inspiration, I ran the command: -

db2fm -s -S

which showed: -

Gcf module 'fault monitor' is NOT operable
Gcf module '/home/instance_name/sqllib/lib/libdb2gcf.so' state is AVAILABLE

so I ran: -

Start up the fault monitor daemon

./db2fm -i instance_name -U

Start up the fault monitor service

./db2fm -i instance_name-u

Turn on the fault monitor for the instance

./db2fm -i instance_name -f on

and, after a reboot, ran: -

db2fm -s -S

which showed: -

Gcf module 'fault monitor' state is AVAILABLE
Gcf module '/home/test/sqllib/lib/libdb2gcf.so' state is AVAILABLE

However, following a reboot, DB2 still adamantly refused to start.

So, before reaching for a hammer, I tried two more things - I ran the following command

/opt/IBM/db2/V9/bin/db2greg -clean

as root and then ran: -

db2iauto -on db2inst1

Following a reboot, DB2 now seems to start automatically - it was a long road, but it was worth it.

Problems with T2 ( and, no, I don't mean rogue cyborgs or airport terminal buildings )

Having just gone through the process to migrate my WebSphere Portal Server environment from the out-of-the-box Apache Derby ( fka Cloudscape ) database to DB2 UDB, I was annoyed to be seeing errors such as this: -

Failure in loading T2 native library db2jcct2, reason: java.lang.UnsatisfiedLinkError: db2jcct2 (Not found in java.library.path)DSRA0010E: SQL State = null, Error Code = -99,999. View JVM logs for further details.

when trying to use/test JDBC datasource connections.

The SystemErr.log gave me this: -

[19/06/09 18:05:25:062 BST] 00000035 SystemErr     R java.sql.SQLException: Failure in loading T2 native library db2jcct2, reason: java.lang.UnsatisfiedLinkError: db2jcct2 (Not found in java.library.path)DSRA0010E: SQL State = null, Error Code = -99,999

and SystemOut.log gave me much the same: -

java.sql.SQLException: Failure in loading T2 native library db2jcct2, reason: java.lang.UnsatisfiedLinkError: db2jcct2 (Not found in java.library.path)DSRA0010E: SQL State = null, Error Code = -99,999

all of which is nice and consistent.

At this point, I thought "D'oh, I've seen this before once or fifty-eleven trillion times (ish)".

It's the same old DB2 vs. Java on Unix challenge - Java ( in this case, WebSphere ) is running as root whereas the DB2 libraries, path, instance etc. are also "owned" by the DB2 instance owner ( db2inst in my case ).

Therefore, the trick is to allow root to use the DB2 instance's profile, by adding the line: -

. /home/db2inst1/sqllib/db2profile

to the root user's profile.

There are two or three ways to do this - in my particular case, I chose to modify /etc/profile which would mean that ALL users on my box will be able to access DB2. An alternative approach would to amend /root/.bash_profile or /root/.bashrc.

I'm sure a Linux sysadmin will tell me that there is a right and wrong way to do this, especially where bash isn't being used but ...... it works for me.

Having made this changed, I logged out and back in as root, started my portal server and all is now well.

Tuesday 16 June 2009

Automagically starting DB2 UDB on Linux

I'm going through my Forms Portal VMware setup, as posted previously, I wanted to set DB2 UDB to automatically start, following a server reboot.

I did the normal Google search, and found reference to the command db2iauto,.

As the DB2 instance user ( db2inst1  in my case ), I ran the command: -

db2iauto -on db2inst1

and am now waiting to see whether it actually works.

I'll post an update either way ...

Sunday 14 June 2009

SQL0970N when running DB2SAMPL on Unix

*** HACK ALERT ***

If you're trying to implement DB2 UDB on Unix ( I'm using Red Hat Enterprise Linux ) and you keep getting: -

SQL0970N The system attempted to write to a read-only file.

when running SQL commands as a DB2 user ( db2inst1 in my case ), it is worth checking that the user has write access to the /tmp directory.

I hit this when running db2sampl as db2inst1 which should create a sample database which allows me to test that DB2 is working OK.

As this is my own demonstration environment on VMware, I took the shortcut and merely gave ALL users write permission to the /tmp directory, using the command: -

chmod 777 /tmp

This gives EVERY SINGLE USER the right to read, write and execute files from /tmp which could be a security issue in a production environment.

Therefore, only do this if (a) you have a similar demo/test environment or (b) you really really really know what you're doing. If in doubt, consult a Unix sysadmin ( which I am categorically NOT NOT NOT ).

*** HACK ALERT ***

Saturday 13 June 2009

Forms Portal - Integrating Lotus Forms 3.5 and WebSphere Portal 6.1 together

I have not yet written this up fully, but I am working on a demonstration whereby I can provide a user with a list of available e-forms within a portlet, and then allow the user to select one of the forms to be displayed in a second portlet on the same page.

This is being achieved using WebSphere Portal 6.1 and Lotus Forms 3.5 - the Lotus Forms product includes a Webform Server ( aka Translator ) which can be interacted with from a Java web application ( portlet / servlet ) using the Lotus Forms APIs.

In my demo, I have installed all the relevant products: -

WebSphere Portal 6.1
Lotus Forms Server 3.5 - Webform Server
Lotus Forms Server 3.5 - API

on the same VMware image running Red Hat Enterprise Linux.

For this reason, the Webform Server ( which runs on its own WebSphere Application Server instance ) runs within the same cell as the portal server, meaning that I only have one cell/node configuration to manage, with a pair of application server instances ( WebSphere_Portal and TranslatorServer ) running on the one node in the one cell.

DB2 UDB is required by the Webform Server, rather than the portal, although both could share DB2 ( for this demo environment ).

Installing WP and LF was a matter of running through some installation wizards, and was very pain-free.

Setting up the Lotus Forms API to interact with WAS and the Linux OS was a little more tricky, but this document was of immense help.

I did hit a couple of issues, but these turned out to be typographical errors on my part - in one case, I copied the relevant Linux OS binaries ( /usr/lib/libpe_cc.so /usr/lib/libpe_java.so /usr/lib/libuwi_java.so ) into the wrong directory. In the other, I forgot to add a second WebSphere environment variable ( LFS_API_LIB_DIR ).

I will write this up more fully, and share it here.


PS I have done this many times before, since IBM acquired PureEdge in 1995 ( using a number of versions of Forms and Portal/Workplace ), but this is the first time I've done it with the latest versions on Linux ...

Friday 12 June 2009

Customising Finder in OSX

Following a challenge from a friend, I found these two terminal commands that modify the way that Finder works, in terms of displaying hidden files and showing the path: -

Show hidden files

- Open a terminal session ( press CMD + SPACE together, enter the command "terminal" and then press ENTER )
- Type "defaults write com.apple.finder AppleShowAllFiles TRUE" and press ENTER
- Type "killall Finder" and press ENTER

Show path names

- Open a terminal session ( press CMD + SPACE together, enter the command "terminal" and then press ENTER )
- Type "defaults write com.apple.finder _FXShowPosixPathInTitle -bool YES" and press ENTER
- Type "killall Finder" and press ENTER

New from SNAPPS - PandaBear for Lotus Quickr

A nice beta from those lovely SNAPPS people - I'm using it on OSX, but it works on Linux and Windows as well ...

Thursday 11 June 2009

From our lovely Lotus User Group friends ...

Lotusphere Comes to You ONLINE (LCTYO) is a premier on-line event series featuring newly updated presentations from Lotusphere 2009 and some 10 minute partner video demos. Designed to bring anyone who couldn't get to Orlando the critical information and the excitement they missed, this FREE online series will help you get more from your existing IT investment and boost collaboration across your enterprise.

The recorded webinars below will let you learn more about the latest exciting news and announcements from Lotus. Viewing the sessions is free, but requires registration.

Lotus Technical Seminars One-day seminars to supercharge your Lotus skills

Seminar benefits

    * One-day seminar moves participants quickly to the next skill level
    * Expert IBM consultants who design, build and manage complex Lotus product solutions provide key insights
    * The Lotus consulting method will be taught to clients and business partners; not available in traditional classes or online training
    * In-depth coverage of Domino, Portal and Collaboration development and administration
    * Focused networking opportunities with peers and Lotus subject matter experts
    * Proven strategies for success provide frameworks to help participants build their own solutions
    * Deep-dive approach enhances understanding of emerging technologies for future planning

Out now - Lotus Symphony 1.3 - Installed and running on Apple Mac OSX 10.5.7

Tuesday 9 June 2009

Solved - Sametime chat windows disappearing off the screen on OSX

At some point this morning, I'd managed to extend my Sametime chat window ( I use a row of horizontal chat tabs within one window ) to the point where it was hiding under the Dock ( I'm using Lotus Notes 8.5 and Sametime 8.0.1 on OSX 10.5.7 ).

I couldn't get at the little draggy pointer on the bottom right-hand corner of the window, and thus couldn't resize the window - this was very annoying as I couldn't see the status of chat recipients e.g. "So- and-so is typing", "Mr Thingy is off-line" etc. and also couldn't see whether the files I'd sent to someone via a chat were being received or not.

Thanks to the power of the intraweb, I was able to solve the problem, and it's quite obvious really - there are three little blobs on the top right-hand corner of any OSX window; red, amber and green. Red closes the window, amber minimises the window and green maximises the window.

I hit the green blob and, c'est voila, the chat window expanded to fill the entire screen, from where I can then resize it.

Obvious really ...

WebSphere Portlet Factory 6.1.2 - Support for Rational Application Developer and Rational Software Architect

Following a question from a colleague, I wanted to check whether IBM supported WPF on RAD/RSA 7.5.

After a quick search, I confirmed that this combination IS supported as per: -

.2.1 Software requirements, WebSphere Portlet Factory Designer

Operating Systems

* Microsoft Windows 2003 Standard and Enterprise Editions
* Microsoft Windows XP Professional
* Microsoft Windows Vista Business and Ultimate
* Red Hat Enterprise Linux release 5.1
* SUSE Linux Enterprise SLED 10

Integrated Development Environments (IDEs)

* IBM Rational Application Developer 7.5
* IBM Rational Software Architect 7.5
* IBM WebSphere Integration Developer 6.2
* Eclipse SDK 3.4 (also requires Eclipse Web Tools 3.0)

Wednesday 3 June 2009

Lotus Sametime Gateway Adds Integration with Microsoft Office Communications Server

One of my Dutch Lotus colleagues also alerted me to the fact that IBM has just released an update to Sametime Gateway 8.0.2 to provide integration with Microsoft OCS.

The fix ( ST- ) is available on Fix Central here, and Mitch Cohen ( aka CuriousMitch ) has also blogged about it here.

I believe a TechNote is due later today, at which point I'll update this post.

Updated - here is the TechNote

Problems with Lotus Quickr Services for Lotus Domino 8.5 on upgrade/installation - Blank page or JavaScript error "Object expected" ...

Thanks to one of my Dutch colleagues for sharing this: -

Blank page or JavaScript error "Object expected" after install or upgrade of Lotus Quickr 8.2 if you do not enable Domino Servlet Manager

WebSphere Portal - Moving from Standalone LDAP to Federated Repository

One of our clients recently experienced a problem whereby they were trying, and failing, to migrate a WebSphere Portal clustered environment from a standalone LDAP to a federated repository.

The Fed. Rep. concept was introduced quite recently, as a way of allowing a portal infrastructure to support multiple user repositories ( LDAP or Custom User Registry ). This would, for example, facilitate an intranet/extranet solution, whereby two Virtual Portals were deployed on the same physical installation of WebSphere Portal, with the Fed Rep approach being used to separate the user's into two different registries; perhaps OpenLDAP for extranet and Active Directory for intranet.

Anyway, back to the problem - the client was trying to configure WP using the ConfigEngine command line tool, using the command: -

ConfigEngine wp-modify-federated-security -DWasPassword=<password> 

which was failing with: -

Given user '<value from federated.primaryAdminId in wkplc.properties>' does not exist

The solution, as documented in this TechNote: -


was to add the switch: -


to the command, giving us: -

ConfigEngine wp-modify-federated-security -DWasPassword=<password> -Dskip.ldap.validation=true

Job done !

PS As a matter of interest, I did the same thing, but used the Wizard instead of ConfigEngine, and it worked for me - although I did have to start the WebSphere_Portal instance BEFORE running the WIzard.

Monday 1 June 2009

IBM WebSphere Portal Version 6.1 Reviewer's Guide

Saw this PDF document online whilst writing a response to a customer's Request for Information (RFI): -

This paper describes these new features and the other features that are available with IBM WebSphere 
Portal Version 6.1 software. It provides a comprehensive look at the software, making it a must-read for 
companies that are considering a WebSphere Portal solution.

Stefan Hepper: Achieve tighter integration between WebSphere Portal and Lotus Web Content Management

Thanks to the power of Twitter, saw this posted earlier today: -

Your portal and web content management system should play well together

If you've been working with IBM Lotus Web Content Management and tried to get your content rendered in IBM WebSphere Portal, you might have had a difficult time deciding where to define your site structure. Up to now, you have basically had two options:

* Define the site structure in both WebSphere Portal and Lotus Web Content Management, thus duplicating each WebSphere Portal page with a newly created Lotus Web Content Management site area for that page.
* Create only a stub page in WebSphere Portal and do all the rest in Lotus Web Content Management via the site areas.

Neither of these options is exactly optimal. Besides being very tedious and error prone, the first option requires that you put the Web content rendering portlets on each page and configure them to point to the current site area. Creating links between different pages requires a lot of hardcoded customization in each of the Web content rendering portlets to get it to dispatch to the right place. The second alternative isn't all that attractive either. Because WebSphere Portal is no longer aware of the navigation structure, you lose basic portal benefits.

But there is hope! You can now have a fully integrated solution in which WebSphere Portal V6.1 knows about your Lotus Web Content Management V6.1 content without requiring you to make hundreds of clicks to set up your site. The magic is contained in Web content pages and in new Web content rendering portlets.


Visual Studio Code - Wow 🙀

Why did I not know that I can merely hit [cmd] [p]  to bring up a search box allowing me to search my project e.g. a repo cloned from GitHub...