Friday, 31 December 2010

LotusKnows - When should I use Connections and when should I use Quickr ?

A very useful re-post from my friend, Darren  Adams, about a blog post that Louis Richardson, IBM's Worldwide Sales Executive for Social Software, on when one should use Connections and when one should use Quickr.

I've been asked this question many times before - my elevator version is that Quickr is for structured team collaboration and that Connections is for unstructured one-to-one and one-to-many collaboration, but Louis has done a far far better job of explaining it: -

"...
Within IBM's social software offerings, we have a couple of great products (Lotus Connections and Lotus Quickr). While on first glance, they may appear to serve similar functions, they each have their own strengths in meeting certain social business needs. You may have heard this question around which one to use or maybe you've pondered this question yourself. If you look feature vs. feature, you could get confused, but it's really not that difficult. Let's take a minute and think about this from another perspective.
...

Here's the original post - have a read, and  comment accordingly.

Suspend and Resume using Ubuntu 10.10 on the Lenovo Thinkpad W500

Following an upgrade to Ubuntu 10.10 (Maverick Meerkat) and a series of kernel updates, I'm now finding that the Thinkpad fails to suspend correctly each time.

Regardless of whether I initiate suspend using the [Fn] + [F4] key sequence, or by closing the lid, or similar, I get the same problem.

The screen goes blank, and the half-moon suspend indicator flashes. At the time, I get a blank screen, and cannot switch to any other virtual terminal to look at dmesg, logs etc.

When this first happened, I left it for an hour but it didn't suspend. I ended up having to power off completely, which is a pain.

The PC is a 4061-BL5 Lenovo ThinkPad W500 and I have the 2.6.35-24-generic-pae kernel.

I have seen this: -

<snip>
When the XHCI module is loaded for USB 3.0 operation the system cannot suspend.

Manually unloading XHCI will allow suspend to complete normally. To avoid future suspend problems, the workaround is to add SUSPEND_MODULES="xhci-hcd" to /etc/pm/config.d/unload_module then the system can suspend normally. (522998)
</snip>

https://wiki.ubuntu.com/MaverickMeerkat/ReleaseNotes

but I'm not using USB 3.0 ( I don't think the W500 supports it ).

I've also seen references to problems with suspend/resume when using the SD-card reader, but again this doesn't apply.

Digging further, with a lot of assistance from other Ubuntu-on-Thinkpad users, I found that the problem ONLY occurred if I used the integrated Intel graphics adapter, which is reported as follows by the command lspci | grep -i "vga": -

00:02.0 VGA compatible controller: Intel Corporation Mobile 4 Series Chipset Integrated Graphics Controller (rev 07)

If I switched to the OTHER graphics card, the discrete ATI Radeon card: -

01:00.0 VGA compatible controller: ATI Technologies Inc Mobility Radeon HD 3650

via the BIOS, then suspend/resume work OK.

Sadly, however, the ATI card draws a LOT more power, meaning that the battery life is very poor, whereas the Intel card is much more efficient.

Thankfully one of my colleagues found the following bug report on Launchpad: -

Suspend problem with Maverick on ThinkPad W500

and posted this script: -

/etc/pm/sleep.d/20_chvt_mjf

#!/bin/sh
case "$1" in
suspend) chvt 1; ;;
resume) chvt 7; ;;
esac
return 0

I created this script, set it as executable ( via the command chmod a+x /etc/pm/sleep.d/20_chvt_mjf ) and then tried the suspend process again.

This appears to have done the job. I'll keep an eye on it, and report back.

So, in conclusion, using the integrated Intel graphics option , I can safely suspend/resume and also get a better battery life.

We shall see ...

Tuesday, 28 December 2010

Project Vulcan update: The IBM Collaboration Toolkit is out - aka Vulcan "developer APIs" released

From Ed's blog: -

<snip>
At Lotusphere 2010, IBM announced Project Vulcan, a vision for the future of our collaborative solutions.  While Project Vulcan isn't a product, it is a blueprint for where the Lotus products are going--and you'll hear more about that progress at Lotusphere 2011 in January.

Meanwhile, one of the commitments made at Lotusphere was that we would release Project Vulcan "developer APIs" by the end of 2010.  That objective has been met through delivery of the IBM Collaboration Toolkit.  Now available to an initial community of ISVs and business partners on Lotus Greenhouse, the toolkit provides documentation on how to develop using the Toolkit APIs, some sample gadgets, and methods for polling for event information.  All of this feeds into the activity stream, a key component of the Project Vulcan user experience.
</snip>

Click here for more details.

Sunday, 26 December 2010

Top 10 64-bit IBM WebSphere Application Server FAQ

"As more organizations move to 64-bit IBM WebSphere Application Server, a few common questions always come up in the discussion. The purpose of this article is to quickly address these common questions in an FAQ style format that is easy to consume."

[PDF] Top 10 64-bit IBM WebSphere Application Server FAQ

Wednesday, 22 December 2010

IBM HTTP Server - Error "undefined symbol: apr_sockaddr_port_get" seen when starting IHS on Linux

Having installed IBM HTTP Server 7.0.0.11 and the corresponding version of the WebSphere Plugin, I started seeing the following: -

httpd: Syntax error on line 918 of /opt/IBM/HTTPServer/conf/httpd.conf: Cannot load /opt/IBM/HTTPServer/Plugins/bin/mod_was_ap20_http.so into server: /opt/IBM/HTTPServer/Plugins/bin/mod_was_ap20_http.so: undefined symbol: apr_sockaddr_port_get

when I tried to start the web server using the command: -

/opt/IBM/HTTPServer/bin/apachectl start

I had the following lines in my httpd.conf: -

LoadModule was_ap20_module /opt/IBM/HTTPServer/Plugins/bin/mod_was_ap20_http.so
WebSpherePluginConfig /opt/IBM/HTTPServer/Plugins/config/IHS7/plugin-cfg.xml

LoadModule ibm_ssl_module modules/mod_ibm_ssl.so
<IfModule mod_ibm_ssl.c>
        Listen 0.0.0.0:443
        <VirtualHost *:443>
                ServerName connections.lcboot.issl
                DocumentRoot /opt/IBM/HTTPServer/htdocs/en_US
                SSLEnable
        </VirtualHost>
</IfModule>
SSLDisable
Keyfile "/opt/IBM/HTTPServer/Plugins/config/IHS7/plugin-key.kdb"
SSLStashFile "/opt/IBM/HTTPServer/Plugins/config/IHS7/plugin-key.sth"

After a bit of a Googling, I found this forum post  which mentioned: -

did you check that the path is correct. Is the mod_was_ap20_http.so file found at /opt/ibmIHS/HTTPServer/Plugins/bin?

Also since you are using IHS v7, are you also using v7 of WAS and the Plugin? Or are you using v6 or v6.1 etc?

If you are using WAS and Plugin v7..then you should be using mod_was_ap22_http.so instead of ap20.

I checked, and I had both versions of the module: -

-rwxr-xr-x 1 root root 480735 Dec 22 08:05 /opt/IBM/HTTPServer/Plugins/bin/mod_was_ap22_http.so
-rwxr-xr-x 1 root root 480738 Dec 22 08:05 /opt/IBM/HTTPServer/Plugins/bin/mod_was_ap20_http.so

so I amended my httpd.conf as follows: -

LoadModule was_ap22_module /opt/IBM/HTTPServer/Plugins/bin/mod_was_ap22_http.so
WebSpherePluginConfig /opt/IBM/HTTPServer/Plugins/config/IHS7/plugin-cfg.xml

LoadModule ibm_ssl_module modules/mod_ibm_ssl.so
<IfModule mod_ibm_ssl.c>
        Listen 0.0.0.0:443
        <VirtualHost *:443>
                ServerName connections.lcboot.issl
                DocumentRoot /opt/IBM/HTTPServer/htdocs/en_US
                SSLEnable
        </VirtualHost>
</IfModule>
SSLDisable
Keyfile "/opt/IBM/HTTPServer/Plugins/config/IHS7/plugin-key.kdb"
SSLStashFile "/opt/IBM/HTTPServer/Plugins/config/IHS7/plugin-key.sth"

and I can now start IHS without any problems.

Another day, another lesson learnt.

I *love* my job :-)

Lotus Connections - Problems with Document Indexing Service on Lotus Connections 3.0 on Linux

One of my mates, Jon, was seeing the following set of exceptions with Lotus Connections 3.0: -

[12/20/10 18:21:00:649 GMT] 00000051 DocumentIndex E com.ibm.lotus.connections.search.service.files.impl.DocumentIndexingServiceImpl isEnvironmentValid CLFRW0493E: Unable to start the document indexing service, please ensure that the PATH environment variable has been set.
[12/20/10 18:21:00:650 GMT] 00000051 DocumentIndex E com.ibm.lotus.connections.search.service.files.impl.DocumentIndexingServiceImpl isEnvironmentValid - PATH:  /opt/IBM/WebSphere/AppServer/java/ibm_bin:/opt/IBM/WebSphere/AppServer/java/bin/:/opt/IBM/WebSphere/AppServer/java/jre/bin:/opt/IBM/WebSphere/AppServer/java/ibm_bin:/opt/IBM/WebSphere/AppServer/java/bin/:/opt/IBM/WebSphere/AppServer/java/jre/bin:/opt/IBM/WebSphere/AppServer/java/ibm_bin:/opt/IBM/WebSphere/AppServer/java/bin/:/opt/IBM/WebSphere/AppServer/java/jre/bin:/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
[12/20/10 18:21:00:651 GMT] 00000051 DocumentIndex E com.ibm.lotus.connections.search.service.files.impl.DocumentIndexingServiceImpl isEnvironmentValid CLFRW0493E: Unable to start the document indexing service, please ensure that the LD_LIBRARY_PATH environment variable has been set.
[12/20/10 18:21:00:652 GMT] 00000051 DocumentIndex E com.ibm.lotus.connections.search.service.files.impl.DocumentIndexingServiceImpl isEnvironmentValid - LD_LIBRARY_PATH:  /opt/IBM/WebSphere/AppServer/bin:
[12/20/10 18:21:00:652 GMT] 00000051 DocumentIndex I com.ibm.lotus.connections.search.service.files.impl.DocumentIndexingServiceImpl isEnvironmentValid:  false

At my suggestion, Jon set the LD_LIBRARY_PATH and PATH variables: -


export PATH=/opt/IBM/LotusConnections/data/search/stellent/dcs/oiexport:$PATH
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/IBM/LotusConnections/data/search/stellent/dcs/oiexport



This came from some previous experience with Lotus Quickr and also the Lotus Connections 2.5 Information Centre here.

Hope this is of use to someone else out there :-)

Tuesday, 21 December 2010

Lotus Connections 3 - More problems with Profiles Population Wizard with DB2 on Windows

Following Otto's comments on my TDI7 on Linux post , one of my colleagues, Rob, saw a similar problem today, using DB2 9.7 on a Windows platform.

Like Otto, he saw: -

Cause: com.ibm.db2.jcc.am.SqlSyntaxErrorException: DB2 SQL Error: SQLCODE=-551, SQLSTATE=42501, SQLERRMC=DB2ADMIN;SELECT;EMPINST.PROF_CONSTANTS, DRIVER=3.59.81

In Rob's case, the problem appeared to be due to the fact that he was using the db2admin account rather than the lcuser account.

He'd performed a quick installation of DB2 and the fix pack, and didn't have the DB2ADM and DB2USERS groups created.

Therefore, the db2admin account was a member of the Administrators group.

For Rob, the solution was to create a new user, lcuser, and then add it to the Administrators group.

In conclusion, follow the documentation and create a lcuser account which can then be given DB2 privileges via the DB2USERS group.

This actually makes sense - would you really want your WebSphere servers ( Connections ) connecting to DB2 as the super-user ? No, of course you wouldn't :-)

*UPDATE* Rob also mentioned that, apart from the above recommendation to use lcuser for the Profiles Population Wizard, the database  wizard ( DBWizard ) must be run using the db2admin account on Windows - this is a database administrator account, whereas Lotus Connections connects, via WAS/JDBC, to DB2 as a user ( lcuser ).

Lotus Connections 3.0 Profiles DB - Problems using Tivoli Directory Integrator v7 on Windows Server 2008 (64-bit)

One of my colleagues was seeing this exception: -

Execute [TDIPopulation\TDISOL\win\collect_dns.bat]
The java class is not found:  and
"Collection of LDAP DNs failed"
Exit value: 1
Quit.
Execute [TDIPopulation\TDISOL\win\populate_from_dn_file.bat]
The java class is not found:  and
"Populate of database repository failed"
Exit value: 1
Quit.
Execute [TDIPopulation\TDISOL\win\mark_managers.bat]
The java class is not found:  and
"markManager failed"
Exit value: 1
Quit.

when using the Profiles Population Wizard or, to be more specific, the element that pulls data out of Domino into a file - collect.dns.

Following this Technote: -

Server ends prematurely with java class not found

I asked her to check the Windows PATH, but apart from a space in Program Files ( normal Windows nonsense ), it all seemed OK. I even asked her to change the path to include "C:\Program Files" e.g. wrapping quotes around it - this made no difference.

We checked tdienv.bat: -

set TDI_CS_PORT=1527
set TDI_CS_HOST=localhost
set TDIPATH=C:\IBM\TDI\V7.0

and collect_dns.bat: -

@REM *****************************************************************
@REM                                                                  
@REM IBM Confidential                                                 
@REM                                                                  
@REM OCO Source Materials                                             
@REM                                                                  
@REM Copyright IBM Corp. 2009, 2010                                   
@REM                                                                  
@REM The source code for this program is not published or otherwise   
@REM divested of its trade secrets, irrespective of what has been     
@REM deposited with the U.S. Copyright Office.                        
@REM                                                                  
@REM *****************************************************************

@echo off
SETLOCAL
CD %~dp0
set RC=0

REM call common script to set TDI paths
CALL .\TDIENV.bat

REM Start Network Store server if not started already
CALL .\netstore ping >NUL 2>NUL
IF NOT ERRORLEVEL 1 GOTO STOREOK
CALL .\netstore start

:STOREOK

REM set failure code ahead of time in case called program doesn't set anything
echo 1 >"%TEMP%\_tdi.rc"

CALL "%TDIPATH%\ibmdisrv" -s . -c profiles_tdi.xml -r collect_ldap_dns
FOR /F "usebackq" %%i in ("%TEMP%\_tdi.rc") DO SET RC=%%i
IF NOT "%RC%" == "0" GOTO FAILPOP
GOTO FINISH

:FAILPOP
ECHO "Collection of LDAP DNs failed"
GOTO FINISH

:FINISH
ENDLOCAL & SET RC=%RC%
EXIT /B %RC%

and, finally,  C:\IBM\TDI\V7.0\ibmdisrv.bat: -

@echo off
setlocal

set TEMP_BIN_DIR=%~d0%~p0bin

set SKIP_ISCDIR_SETUP=1
call "%TEMP_BIN_DIR%\setupCmdLine.bat"

set PATH=%TDI_HOME_DIR%;%TDI_JAVA_BIN_DIR%;%TDI_LIB_DIR%;%PATH%

rem Get solution directory parameter (overrides TDI_SOLDIR)
:checksol
if .%1==.-s (
rem Make sure we are on the correct drive
%~d2
rem At this point overwrite the TDI_SOLDIR
set TDI_SOLDIR=%2
goto changedir
)
shift
if not .%1==. goto checksol

:changedir
rem first remove quotes, as double quotes will be bad
set TDI_SOLDIR_TMP=###%TDI_SOLDIR%###
set TDI_SOLDIR_TMP=%TDI_SOLDIR_TMP:"###=%
set TDI_SOLDIR_TMP=%TDI_SOLDIR_TMP:###"=%
set TDI_SOLDIR=%TDI_SOLDIR_TMP:###=%

rem Create the directory if it does not exist
if not exist "%TDI_SOLDIR%" mkdir "%TDI_SOLDIR%"
rem CD into solution directory
call "%TDI_BIN_DIR%\ibmdicwd" "%TDI_SOLDIR%"

:execute
if not exist logs mkdir logs

rem Always add the Solution Directory libs dir to the path
set PATH=%TDI_SOLDIR%\libs;%PATH%

rem Take the supported env variables and pass them to Java program
set LOG_4J=-Dlog4j.configuration="file:etc\log4j.properties"
set ENV_VARIABLES=%LOG_4J%

"%TDI_JAVA_PROGRAM%" -Xms256M and -Xmx1024M -classpath "%TDI_HOME_DIR%\IDILoader.jar" %ENV_VARIABLES% com.ibm.di.loader.IDILoader com.ibm.di.server.RS %*

endlocal

At this point, we had the Ah-Ha moment, closely followed by the Doh moment.

The Lotus Connections documentation recommends that the ibmdisrv.sh/bat script be amended to include the -Xms256M and -Xmx1024M switches.

My colleague had taken the advice rather too liberally, and had pasted "-Xms256M and -Xmx1024M" into the script.

Looking back at the first exception we saw: -

The java class is not found:  and

it's NOW quite obvious what the problem is :-)

Thursday, 16 December 2010

Lotus Connections into WebSphere Portal *DOES* go

A friend asked for some examples of LC -> WP integration, to which I responded with this list: -


there are a myriad of ways to integrate Connections into Portal, including: -
In addition, another good pal, Brian, also suggested this: - This is a link to the search integration paper I mentioned, it also includes lots of other useful info about Portal integration (the search integration bit is just over half-way down the page): -

http://www.ibm.com/developerworks/lotus/library/connections-portal/

Did I miss any ? How about deploying Connections iWidgets in Portal 7 ?

*UPDATE* My Aussie pal, Adam Brown, also mentioned some sterling work that he and his ISW team have been doing here: -

Integrating Lotus Connections with WebSphere Portal - Part 1

Integrating Lotus Connections with WebSphere Portal - Part 2

Integrating Lotus Connections with WebSphere Portal - Part 3

Good job, mate

Tuesday, 14 December 2010

ibm.com: Notes/iNotes 8.5.2 scalability on Citrix XenApp white paper

From Ed's blog: -

This white paper provides an overview and recommendations for how to get the most from the IBM Lotus Notes 8.5.2 client on the Citrix XenApp 5.0 server. Specifically, it shows that by tuning the environment, you can realize significant improvements when running the Notes client on XenApp. This is true for both the standard and the basic configurations of Lotus Notes. Moreover, the new support for Microsoft Windows 2008 SP2 by Notes 8.5.2, together with memory improvements, means increased scalability to even higher numbers than before at a much reduced cost. We also present the testing environment, tuning parameters, and the workflows that were executed to gather the scalability data on Notes 8.5.2.

The article is here

Lotus Connections 3.0 - Error message CLFRP0016E: The WebSphere Application Server version is not supported

It may be kinda obvious, but seeing this error: -

CLFRP0016E: The WebSphere Application Server version is not supported

during my first ever Lotus Connections 3.0 installation spooked me.

Until I read the error message more clearly ....

I'd previously assumed that I had the right version of WAS installed - WebSphere Application Server Network Deployment 7.0.0.9.

Doh ! When I checked the System Requirements (Linux) document here, I realised that I actually need WebSphere Application Server Network Deployment 7.0.0.11.

Do I feel daft, or what ?

Unlike previous versions of LC, it looks like LC30 is a lot more focused on ensuring that the system requirements are right first time.

After my previous fun and games with the Profiles wizard and TDI 7, I'm determined to get it right ....

Monday, 13 December 2010

IBM Forms 4.0

Ooops, missed this on Friday. More to download when I get a spare half-hour ...   

IBM Forms 4.0 Product Wiki
IBM Forms 4.0 System Requirements
IBM Forms 4.0 Quick Start Guides
IBM Forms 4.0 Release Notes
IBM Forms Viewer 4.0 User's Guide
IBM Forms Designer 4.0 User's Guide
IBM Forms Server 4.0 API Guide and Reference
IBM Forms Server 4.0 Forms Services Platform
IBM Forms Server 4.0 Webform Server Guide
IBM Forms Server 4.0 - P8 Integrator Guide
IBM Forms 4.0 XFDL Specification
IBM Forms 4.0 and Lotus Mashups


IBM WebSphere Portal portlet load monitoring plug-in

This goes into the useful pile of things I haven't yet had a chance to try ...

Portlet Load monitoring is a portlet filter that allows portal administrators to protect their portal by defining a maximum number of concurrent requests and an average response time allowed for a JSR 168 or JSR 286 portlet. If the portlet exceeds either the defined maximum number of concurrent requests, or the average response time, then Portlet Load Monitoring will no longer allow further requests to the portlet. Instead, portal renders the portlet as unavailable and the portlet code is no longer called for further requests. This way, your portal installation is protected from non responsive portlets to consume more and more threads.

This requires WebSphere Portal 6.1.0.3 or 6.15 or higher, as well as APAR 05689, which is included in cumulative fix 3 (CFPM09968) or available on top of CF2.

It's available in the Greenhouse here.

Wednesday, 8 December 2010

WebSphere Portal 6.1 - Setting the browser window title ...

Earlier today, a friend asked me how to change the browser/window title in WebSphere Portal 6.1.

Now I remember doing this back in the day with Lotus Workplace Services Express, but it's been a while since I looked at it.

Then I remembered that the Theme Customizer has an option to set this.

Digging into the documentation: -

Lotus Web Content Management 6.1.0 > Designing a portal site > Layout of the portal page

I came across the Theme Policies section, which describes how the attribute, bannerTitleText, can be set within the Theme Policy.

This is then reflected in a theme file, head_title.jspf, which is located here: -

/opt/IBM/WebSphere/wp_profile/installedApps/DefaultNode/wps.ear/wps.war/themes/html/Portal

and makes reference to this attribute from the policy.

Whilst one could just as easily hack the .JSPF file, it's more sensible to change the policy, as this can then be over-ridden, perhaps by a non-developer-user, at a future date.

Therefore, the easiest mechanism is to use the Theme Customizer to set the attribute, and then apply the policy, alongside the chosen theme, to the page hierarchy e.g. Home.

Job done :-)

Thanks for the memory - Red Hat Enterprise Linux 5.5

For my Lotus Connections 3.0 environment, I'm using a VMware image of Red Hat Enterprise Linux 5.5, the 32-bit version, and noticed today, at a colleague's suggestion, that I only had 3.1 GB of memory available to me within the guest OS even though I'd allocated 4 GB to the VM itself.

Thinking it through, I realised that I was using a 32-bit kernel - 2.6.18-194.26.1.el5 - which doesn't, by default, support more than 3 GB.

Therefore, I had two choices: -
  • Switch to a 64-bit kernel and/or distribution, meaning that I'd potentially lose all of my installed code
  • Use the Physical Address Extension (PAE) kernel
Guess which option I took :-) Now I'm lucky enough to have an internal mirror of the Red Hat Network (RHN) available to me via my company, so I could simply install the kernel using YUM as follows: -  

yum install kernel-PAE                            ( note that PAE is capitalised )

Having done this, I needed to configure it to be my default kernel. Now RHEL uses GRUB, but there's no obvious GUI to manipulate the GRUB configuration files, and I wanted to be a wimp and avoid the need to manually hack them.

Tada ... to the rescue comes system-config-boot which is a graphical tool to allow one to manage the GRUB configuration.

I installed it in the same manner: -

yum install system-config-boot

and then ran the command; this allowed me to select the right kernel - 2.6.18-194.26.1.el5PAE - and then save the new configuration as default.

When I rebooted, I was able to see all 4 GB as available for use :-)

I note that RHEL 6 has deprecated system-config-boot - sadly with no replacement :-(

Sunday, 5 December 2010

Lotus Connections 3.0 - Profiles Population Never Completes

*CAVEAT* This workaround worked for me - it may not necessarily work for you. If in doubt, please raise a PMR with IBM Support, and get a format response *CAVEAT*

Not sure for why, but the Profiles Population Wizard never seems to complete. It runs for ever, without any obvious error.   I'm using TDI v7.0.5 on Red Hat Enterprise Linux 5.5, going from Domino 8.5.2 to DB2 UDB 9.7.0.2.

The problem isn't with the PULL from Domino, as I can see that collect.dns is being created/populated correctly.

The problem does appear to be with the PUSH into DB2, as I see the same symptoms when I run the script - populate_from_dn_file.sh. The database tables were created using the DB Wizard.   I've also checked db2diag but to no avail.

Again, I'm not seeing any particular error messages.

Anyone else seeing anything similar ?

*UPDATE 13/12/2010*

Looks like I have a workaround to this problem: -

I navigated to: -

/opt/IBM/TDI/V7.0

and edited ibmdisrv ( having first backed it up ) - note that this doesn't have a .sh extension.

I then changed: -

"$TDI_JAVA_PROGRAM" $TDI_MIXEDMODE_FLAG -cp "$TDI_HOME_DIR/IDILoader.jar" "$LOG_4J" com.ibm.di.loader.IDILoader com.ibm.di.server.RS "$@"

to: -

$TDI_JAVA_PROGRAM" $TDI_MIXEDMODE_FLAG -Xnojit -cp "$TDI_HOME_DIR/IDILoader.jar" "$LOG_4J" com.ibm.di.loader.IDILoader com.ibm.di.server.RS "$@"

Having added the -Xnojit option, I then re-ran the Profiles Population script ( populate_from_dn_file.sh ), with Domino LDAP and DB2 started, and, lo and behold, four new DNs got pushed into my Profiles DB ( PEOPLEDB ), as evidenced by the SQL query db2 "select * from empinst.employee".

Job done :-)

It's also worth noting that the Lotus Connections 2.5 documentation also recommends adding the -Xms256M and -Xmx1024M to same command e.g.

"$TDI_JAVA_PROGRAM" $TDI_MIXEDMODE_FLAG -Xms256M -Xmx1024M -Xnojit -cp "$TDI_HOME_DIR/IDILoader.jar" "$LOG_4J" com.ibm.di.loader.IDILoader com.ibm.di.server.RS "$@"

but I've not yet tried this.

I imagine that an IBM Technote will be released to further document this workaround.

*CAVEAT* This workaround worked for me - it may not necessarily work for you. If in doubt, please raise a PMR with IBM Support, and get a format response *CAVEAT*

Want to know more about Social Collaboration and Social Business?

If so, those nice people at Collaboration Matters are running  a weekly webinar series, starting on Tuesday 7 December through into January 2011.

The agenda for the first session is as follows: -

An overview of Social Collaboration / Enterprise 2.0 technology, including:

    * What is it?
    * What problems does the technology aim to solve?
    * What value/benefits does it bring to an organisation or an individual?
    * What makes a collaborative organisation?
    * Where does one start?
    * Where do Lotus Connections, Lotus Quickr, MS Sharepoint, Jive and open source solutions fit in?
    * Q&A

Click here for more details.

Saturday, 4 December 2010

Running LDAP on Lotus Domino 8.5.2 on Red Hat Enterprise Linux 5.5

Following an earlier post, I was looking for a quick way to only start the Domino LDAP task on a Linux box.

Whilst this is easy-peasy on Windows, it's less so on Linux.

The LDAP task itself exists here: -

/opt/ibm/lotus/notes/85020/linux/ldap

but, if one simply executes this task ( as the notes or root user ), the exception: -

/opt/ibm/lotus/notes/85020/linux/ldap: error while loading shared libraries: libnotes.so: cannot open shared object file: No such file or directory

pops up.

Looking at this Technote, which actually relates to a problem with Tivoli Storage Manager for Mail, and advises how to overcome the problem by creating symbolic links to three Domino libraries: -

libnotes.so
libndgts.so
libxmlproc.so

Following this advice, I created three links

ln -s /opt/ibm/lotus/notes/latest/linux/libnotes.so /usr/lib
ln -s /opt/ibm/lotus/notes/latest/linux/libndgts.so /usr/lib
ln -s /opt/ibm/lotus/notes/latest/linux/libxmlproc.so /usr/lib

This now allows me to run the ldap task as follows: -

su - notes
cd /local/notesdata
/opt/ibm/lotus/notes/latest/linux/ldap

or, even more simply, via a simple script that I can run as root: -

ldap.sh

su notes -c "cd /local/notesdata; /opt/ibm/lotus/notes/latest/linux/ldap; "

Job's a good 'un

Tivoli Directory Integrator 7 - More on Updates

After much trial and a lot of error, I realised that my TDI update wasn't ever going to finish properly until: -

(a) I used X11
(b) I had the right version of Java installed

When I ran the update from a console  session, it failed  with messages relating to a X11 window not being able to open. When I finally ran the update from an X terminal, I saw the error, which pointed me to a log file: -

/opt/IBM/TDI/V7.0/ce/eclipsece/configuration/1291492401767.log

which showed: -

...
java.lang.ClassNotFoundException: com.ibm.tdi.loader.TDIClassLoaderHook
...
java.lang.RuntimeException: No application id has been found.
...

and ended with: -

!MESSAGE Missing Constraint: Bundle-RequiredExecutionEnvironment: JavaSE-1.6

This led me to check that I had the right version of Java installed - I was still using the version of Java 1.4.2 installed in /etc/alternatives - so I installed Java 6 Update 21

./jre-6u21-linux-i586-rpm.bin

java -version

now returns: -

java version "1.6.0_21"
Java(TM) SE Runtime Environment (build 1.6.0_21-b06)
Java HotSpot(TM) Client VM (build 17.0-b16, mixed mode, sharing)

Having done this, I re-ran the update ( having ensure that I'd run ./applyUpdates.sh -rollback beforehand.

Before

./applyUpdates.sh -queryreg

Information from .registry file in: /opt/IBM/TDI/V7.0
Edition: General Purpose
Level: 7.0.0.0
License: Full

Fixes Applied
=-=-=-=-=-=-=
None

Components Installed
=-=-=-=-=-=-=-=-=-=
BASE
SERVER
CE
JAVADOCS
EXAMPLES
EMBEDDED WEB PLATFORM
AMC
   Deferred: false

During

./applyUpdates.sh -update /tmp/TDI/7.0.0-TIV-TDI-FP0005/TDI-7.0-FP0005.zip

CTGDKO023I Applying fix 'TDI-7.0-FP0005' using backup directory '/opt/IBM/TDI/V7.0/maintenance/BACKUP/TDI-7.0-FP0005'.
CTGDKO027I Updating SERVER.
CTGDKO027I Updating CE.
CTGDKO027I Updating EXAMPLES.

After

./applyUpdates.sh -queryreg

Information from .registry file in: /opt/IBM/TDI/V7.0
Edition: General Purpose
Level: 7.0.0.5
License: Full

Fixes Applied
=-=-=-=-=-=-=
TDI-7.0-FP0005(7.0.0.0)

Components Installed
=-=-=-=-=-=-=-=-=-=
BASE
SERVER
   -TDI-7.0-FP0005
CE
   -TDI-7.0-FP0005
JAVADOCS
EXAMPLES
   -TDI-7.0-FP0005
EMBEDDED WEB PLATFORM
AMC
   Deferred: false

Friday, 3 December 2010

Updating Tivoli Director Integrator v7

Following my previous post, I did hit a problem whereby TDI v7 didn't appear to update correctly.

During the update process, which I performed using the command: -

cd /opt/IBM/TDI/V7.0/bin
./applyUpdates.sh -update /tmp/TDI/7.0.0-TIV-TDI-FP0005/Fixpack.zip

I did see an exception: -

CTGDKO023I Applying fix 'TDI-7.0-FP0001' using backup directory '/opt/IBM/TDI/V7.0/maintenance/BACKUP/TDI-7.0-FP0001'.
CTGDKO027I Updating SERVER.
CTGDKO009E Error while executing an operating system command. An exception occurred: /opt/IBM/TDI/V7.0/bin/tdimiggbl.sh: not found
CTGDKO027I Updating CE.

which, at the time, I ignored.

This was a bad move :-)

What I should have done is read this Technote (1391717): -

applyUpdates process fails

which directs one to replace this JAR file: -

/opt/IBM/TDI/V7.0/maintenance/UpdateInstaller.jar

and then re-run the fix pack installation: -

./applyUpdates.sh -update /tmp/TDI/7.0.0-TIV-TDI-FP0005/TDI-7.0-FP0005.zip

However, I then hit another issue;

CTGDKO032E The level of the current installation is '7.0.0.5'. The level must be between '7.0.0.0' and '7.0.0.4' to apply this fix.

Therefore, I realised that I had to first roll back from 7.0.0.5 to 7.0.0.0 before re-applying the fixpack: -

./applyUpdates.sh -rollback
./applyUpdates.sh -update /tmp/TDI/7.0.0-TIV-TDI-FP0005/TDI-7.0-FP0005.zip

Having done this, the updates installed as expected.



Thursday, 2 December 2010

Ooops, Populating the Lotus Connections 3.0 Profiles Database fails with CTGDIS497W Cannot find the java class for system:/Connectors/ProfileConnector

I'm progressing towards my first ever Lotus Connections 3.0 installation, and have been building up my VMware image piece by piece, as time allows :-)

So, having done the following: -

installed DB2 UDB 9.7.0.1
Installed Lotus Domino 8.5.2
Installed WebSphere Application Server Network Deployment 7.0.0.9
Installed Tivoli Directory Integrator 7.0.0.0
Configured my WAS Deployment Manager and Node Agent to use Domino LDAP for security via the WAS Federated Repository
Created the necessary databases for Connections using the database creation wizard

So, I was ready for the next ( and last step before I take a well-deserved snapshot ) - populating the Profiles DB using TDI, via the Population Wizard.

So far, so good.

Sadly, I fell at the first hurdle, when the wizard failed with: -

ava.lang.Exception: [deleteEntry] CTGDIS497W Cannot find the java class for system:/Connectors/ProfileConnector. The jar file may be corrupted, or a file may have been deleted.
        at com.ibm.di.server.Log.exception(Log.java:1196)
        at com.ibm.di.server.AssemblyLineComponent.loadConfig(AssemblyLineComponent.java:2583)
        at com.ibm.di.server.AssemblyLineComponent.<init>(AssemblyLineComponent.java:458)
        at com.ibm.di.server.AssemblyLine.loadConnector(AssemblyLine.java:1799)
        at com.ibm.di.server.AssemblyLine.loadContainerConnectors(AssemblyLine.java:1447)
        at com.ibm.di.server.AssemblyLine.loadContainerConnectors(AssemblyLine.java:1454)
        at com.ibm.di.server.AssemblyLine.loadContainerConnectors(AssemblyLine.java:1454)

in the file PopulateDBFromDNFile.log - this indicates that the the problem is going INTO DB2 rather than OUT of Domino, as the wizard is failing to populate into the DB from a text file which, in my case, is: -

/tmp/LC30/Wizards/TDIPopulation/TDISOL/linux/collect.dns

I kinda knew what the problem was, but a quick Google on CTGDIS497W threw up this Technote: -

IO11849: COMPONENTS PLACED IN THE 'USERJARS' PARAMETER ARE NOT LOADED CORRECTLY BY THE TDILOADER

which, in part, confirms that: -

This is a bug in the TDI 70 code and has been fixed. A formal fix shall be made available in TDI 70 fix pack 4 7.0-TIV-TDI-FP0004

Yes, in other words, I'd forgotten to install a fix pack onto TDI.

The LC3 installation worksheet recommends FP4 ( as an example/minimum), whereas the LC3 System Requirements document specifically states "Fix Pack 5".

So, there you have it, I am a complete and utter muppet.

Mind you, I only wasted a few minutes, and I learnt a valuable lesson :-)

Mind you, having said that, I've just noticed that I'm on DB2 UDB 9.7.0.1 whereas I should be on 9.7.0.2. Right, off to Fix Central I go ....

IBM Lotus and WebSphere Portal Business Solutions Catalog - Web Application Bridge Portlet

Do you have a requirement to integrate existing web applications into WebSphere Portal ? Do you find the existing solutions: -


to be unsuitable for your particular functional requirements ?

In which case, please allow me to introduce you to the newly released Web Application Bridge portlet, which was uploaded to the Catalog today.

If you recall, I wrote about this a few weeks ago: -

WebSphere Portal Version 7.0 software also introduces the new web application bridge (WAB), providing organizations with enhanced flexibility to integrate existing web applications for security-rich, personalized delivery through their portal solutions.

The WAB provides a proxied web environment that enables presentation of external web content without requiring URL redirection or content introspection.

This new technology is designed to make it easier than ever to integrate existing web applications and dynamically present content through the portal, including Microsoft .NET or Hypertext Preprocessor (PHP) applications and existing Java Platform, Enterprise Edition (Java EE) applications.

I've been using this portlet in beta for the past few weeks, but I am pleased to announce that it's now available for YOU to use as well.

In essence, the bridge is formed of two parts; a proxy that runs as a servlet within the delivery portal server and makes the connection to the remote web application / site and an iFrame portlet that connects directly to the proxy.

This means that the existing UI can be preserved, but that all the control, authentication etc. remains where it should remain e.g. within the proxy servlet.

I'd recommend that you take a look ...

Increasing the size of a partition using Red Hat Enterprise Linux 5.5 under VMware Workstation

As with many of my posts, please please please use caution here - your mileage may vary and, in the worst case, you'll LOSE YOUR DATA. If in doubt, back up first. If still in doubt, DON'T DO IT :-)

This is a rough set of notes, which I'll polish up at some future time ...

Problem

I'd exceeded the 20 GB I'd allocated to a VM running RHEL, and didn't want to have to rebuild it from scratch.

Having increased the size of the disk image within VMware, I then needed to work out how to get Linux to use the extra 10 GB added.

Solution

(a) *CAUTION* Use the FDISK command to add a new partition to utilise the extra 10 GB *CAUTION*

fdisk /dev/sda

adding a new primary partition of type 8e ( Linux LVM )

meaning that the command: -

fdisk -l /dev/sda

returns: -

Disk /dev/sda: 32.2 GB, 32212254720 bytes
255 heads, 63 sectors/track, 3916 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          13      104391   83  Linux
/dev/sda2              14        2610    20860402+  8e  Linux LVM
/dev/sda3            2611        3916    10490445   8e  Linux LVM

rather than: -

Disk /dev/sda: 32.2 GB, 32212254720 bytes
255 heads, 63 sectors/track, 3916 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          13      104391   83  Linux
/dev/sda2              14        2610    20860402+  8e  Linux LVM

(b) reboot to have the new partition table picked up: -

reboot

(c) Create the new Physical Volume (PV) which will utilise the new partition: -

pvcreate /dev/sda3

(d) Extend the Volume Group to include the new PV: -

vgextend VolGroup00 /dev/sda3

(e) Increase the size of the Logical Volume (LV): -

lvextend -L +10G /dev/VolGroup00/LogVol00

(f) Increase the size of the file system using the LV: -

resize2fs -p /dev/VolGroup00/LogVol00

Having done this, the command df -km / now shows that my disk is 44% utilised rather than 81% utilised.

Now to test it ....

Much of this came from this LinuxQuestions.org thread.

As with many of my posts, please please please use caution here - your mileage may vary and, in the worst case, you'll LOSE YOUR DATA. If in doubt, back up first. If still in doubt, DON'T DO IT :-)

Wednesday, 1 December 2010

Lotus Web Content Management 7 - Cumulative Fix 08 Is Released

In order to resolve a problem that I was seeing with the Ephox EditLive! Rich Text Editor and the Oracle/Sun Java 6 Update 22 JRE, I was waiting for the next Cumulative Fix for Lotus WCM v7.

Well, it was released yesterday - November 30  - as PM27561 Cumulative fix 8 for IBM Lotus Web Content Management version 7.0.0.x which was posted to IBM Fix Central ( http://www-933.ibm.com/support/fixcentral ).

Once I'd installed the fix using the Portal Update Installer ( version 20100813_2329 ), I had to do the following: -

a) Update WCM using the ConfigEngine.sh update-wcm script

b) Redeploy the WCM Authoring, Local Rendering and Administration Portlets

ilwwcm-authoring-portlet.war
ilwwcm-localrenderingportlet-jsr.war
iwwcm-administration-portlet.war

from /opt/IBM/WebSphere/PortalServer/installableApps

*NOTE*

Until I did this, EditLive! didn't load, and instead threw: -

HTTP Error Code: 404

Error Message:


JSPG0036E: Failed to find resource /jsp/html/EditLiveJavaEditor.jsp

Root Cause:

java.io.FileNotFoundException: JSPG0036E: Failed to find resource /jsp/html/EditLiveJavaEditor.jsp

*NOTE*

c) Re-enable WCM authoring functionality - until I did this, I saw "IWKAP0009E: Servlet not enabled. " when I attempted to create a new content item using the New... link in the Library Explorer portlet

I fixed this using ConfigEngine.sh install-wcm-hidden-authoring-page script, as per this Technote: -

WCM page and authoring portlet may not display after migration

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

Having done all of the above, and restarted Portal for good measure, I'm now back in the game, and Ephox is working well, both with the IBM JRE that I use on Ubuntu and also with the Sun/Oracle Java 6 JRE.

For the record, the original problem was that, with Update 22, I wasn't able to paste text into the Design view in EditLive!, and any code entered in the Code view failed to render.

The WCM fix updates EditLive from 7.5.1.4 to 7.5.1.35.