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.

Tuesday 30 November 2010

IBM Lotus Notes Traveler - An Open Mic Call - Wednesday 8 December 2010

Abstract

IBM is hosting an Open Mic conference call with Lotus Development and Support Engineers to discuss IBM Lotus Notes Traveler on Wednesday, December 8, 2010.

Content

Please join us for an Open Mic Q&A session on IBM Lotus Notes Traveler. Additional information will be posted to this technote closer to the date.

Date

Wednesday, 8 December 2010

Time

10:00 AM Eastern US time (15:00 GMT), for 60 minutes

Please see this Technote #1433029 for further information, and this forum posting if you want to submit questions in advance ...

WebSphere Portlet Factory 7 - Problems with AXIS Web Services

One of my pals saw this exception earlier today: -

An error has occurred.
The error message returned was: "Error in method displayData_InputPage_NextAction. Error in method displayData_ShowResults. Error in method getDataViaWSDL.invoke. Error in method getDataViaWSDL.invokeInternal. java.net.ConnectException: HTTP ( 404 ) Not Found address : http://wpx7.uk.ibm.com:10039/WPF0001/servlet/AxisServlet". 

Please refer to the logs folder in your deployed application for additional error information.

Click here for a detailed error message.

when attempting to execute a simple model that consumes a Web Service - in his case, this was a WSDL-based service that he had created with another model that consumed DB2 UDB using JDBC.

In addition to the above exception shown in the browser when he ran the model, we also saw: -

Caused by: com.bowstreet.util.WrappedException: The AXIS engine could not find a target service to invoke!  targetService is null [Root exception is javax.xml.ws.soap.SOAPFaultException: The AXIS engine could not find a target service to invoke!  targetService is null]

javax.xml.ws.soap.SOAPFaultException: The AXIS engine could not find a target service to invoke!  targetService is null

in the SystemOut.log file of the underlying WebSphere Portal 7 instance.

I reproduced the same problem on my own lashup, so dug a little further.

I regenerated the models a number of times, and also published and republished my project, but to no avail.

In the end, thinking laterally,  I wondered whether WPF v7 had introduced any new options when creating projects - I know that the dev. team were talking about providing more options for project creation in order to reduce the default size of a generated WAR file.

Sure enough, when I looked at the  Project Properties ( select the project and click the right-hand mouse button ), under WebSphere Portlet Factory -> Feature Info, I saw that there are now new options for Axis 1 Extensions and Web Service Enablement Extensions.

From trial and error, I can tell you that you need BOTH options.

Monday 29 November 2010

New Lotus Connections 3.0 Plugins Are Now Available

More Lotus Connections loveliness from Mr Luis Benitez Esquire

Anyway, I wanted to make you aware of the new plugins that are now freely available from our App Catalog for download:

Friday 26 November 2010

WebSphere with a side of SPNEGO

Found this on the IBM site whilst lurking around ....


Abstract: SPNEGO, or the Simple and Protected GSSAPI Negotiation Mechanism, enables a straightforward single sign-on (SSO) mechanism for WebSphere in Kerberos environments.

This document is intended to provide instructions to configure SPNEGO for WebSphere Application Server in standalone and clustered configurations using Microsoft Active Directory as the Kerberos security server. It is meant to be a ‘quick-start’ guide, providing the minimum steps and default options required to get up and running quickly in both WAS 6.1 and WAS 7.0 environments



Definitely worth a read if you, as I am, are looking at Kerberos/SPNEGO with WebSphere ....

Success installing Lotus Domino 8.5 on Red Hat Enterprise Linux 5.5

I've had this problem a few times in the past, and either worked around it, or solved it and forgot how :-(

In preparation for my Lotus Connections 3.0 installation, I've been trying ( and failing ) to install Lotus Domino 8.5 onto a VMware image of Red Hat Enterprise Linux 5.5.

The error that I see is: -

Error: The installer is unable to run in graphical mode. Try running the installer with the -console or -silent flag.

when I run: -

/tmp/linux/domino/install

I'd tried logging the installer in log mode: -

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

but, apart from showing me the detail of what was going on: -

Executing launch script command: "/tmp/isjykAnI6/jre/bin/java" -cp "":"setup.jar":"" -Dtemp.dir="/tmp" -Dis.jvm.home="/tmp/isjykAnI6" -Dis.jvm.temp="1" -Dis.media.home="" -Dis.launcher.file="/tmp/linux/domino/tools/setupLinux.bin" -Dis.jvm.file="/tmp/isjykAnI6/jvm" -Dis.external.home="/tmp/linux/domino/tools"   -Xms20m -Xmx1024m  run  "-G" "overwriteJVM=yes" in working directory /tmp/linux/domino/tools

it didn't tell me anything I didn't already know.

Googling around, I found this: -

Error when installing WebSphere Message Broker for Linux x86 V6.0

which helped me, although the author still appears to be struggling :-(

As part of his PD routine, he'd installed two RPMs: -

yum install libstdc++-libc6.2-2.so.3
yum install libXp.so.6

I tried the first ( libstdc++-libc6.2-2.so.3 ) but that didn't help.

I then tried the second ( libXp.so.6 ) and .... voila, the installer launched as it should, and I was good to go.

Will contact the author of the blog post, and thank him for helping me out of a hole :-)

Thursday 25 November 2010

IBM community newsletter generator plug-in for Lotus Connections

Following up on my recent post, this plug-in allows you to generate a newsletter for any given Lotus Connections community directly from your Lotus Notes / Sametime / Symphony client.

Having used it a few times today, words can't begin to express how awesome this is - the ability to look at any of my communities ( of which I'm a member of many many fine communities ) and, at the click of a mouse button, generate a newsletter ( in nicely formatted HTML ) which can then be pasted into an email or blog post or, and you'll like this bit, be inserted directly and automatically into the community blog itself.

Other than that, I can also get metrics about my communities: -

Blog entries 191
Unique blog entry contributors 15
Average blog entries per community member 3.131
Average blog entries per contributor 12.733
Blog views (all time) 3973
Blog comments 0
Unique blog comment contributors 0
Average blog comments per community member 0
etc.

and .... even better ... launch any one of the communities out of the Notes sidebar straight into a web browser - I use Firefox, but your browser of choice, including Notes, can be used to navigate directly into the community.

Thanks, Luis, you rock :-)

Purely an aide memoire, formatting text in a blog post

I was looking for a way to format text and images within a blog post, by editing the HTML.

My requirement was to have text and images placed down the page, without having text wrapped around the images, and without using a <TABLE></TABLE> tag pair.

My friend and guru colleague, Brian, showed me how to do it using the tag: -

<div style="clear: both;">

Easy when you know how ... and now I know how :-)

"Too many open files" whilst running WebSphere Portal 7 on Ubuntu Linux 10.10

Not sure if this explains why my WebSphere Portal 7 installation seems to hang on a particular thread, and never complete it's startup, but I was seeing this in the SystemOut.log file: -   

[25/11/10 09:38:29:352 GMT] 0000001b Ffdc          I com.ibm.ffdc.impl.Ffdc setFailsafeProvider FFDC1001I: FFDC provider aborted with exception {0}
...
java.security.PrivilegedActionException: java.io.IOException: Too many open files
...
Caused by: java.io.IOException: Too many open files

I've increased the number of open files available to WebSphere by setting ulimit -n 40000 in /opt/IBM/WebSphere/wp_profile/bin/setupCmdLine.sh.

Will test and report back ...

Success - iWidgets and Portlets, all generated thanks to the power of WebSphere Portlet Factory Designer

Following an earlier blog post, I have this morning rebuilt my WebSphere Portlet Factory development environment in order to create portlets and widgets against WebSphere Portal v7.

I have a  VMware image running WebSphere Portal Express v7 ( a 4 GB VM running on my shiny 8 GB Thinkpad ), and can access the portal via a shared IP address ( VMware is using NAT to allow my host and VMs to interact ). Therefore, I can get to Portal via an "external" browser and also via WPF - the hostname that my portal is using is wpx7.uk.ibm.com which is in my host OS' host file.

On my host OS ( Ubuntu Linux 10.10 ), I have installed WebSphere Portlet Factory v7 into an installation of Eclipse 3.5 ( Galileo ). I run WPF as root ( using the sudo bash command to allow me to emulate root without having the root password which Ubuntu doesn't use ).
Having started WPF with a nice clean new workspace ( /root/workspace ), I then created a WebSphere Portlet Factory Project, and chose to configure it against WP7.

I then created a new WebSphere Portlet Factory model, using the "A simple "Hello, World" model." quickstart - this allowed me to create a portlet AND an iWidget, each of which simply displays a message ( "Hello World!", of course ). Having created the model, which merely has five builders, including a Portlet Adapter and a Widget Adapter.

I took the option to deploy the model to my Portal server. The first time around this prompts me to either connect to the portal server via a shared file system ( which is quite painful when going from Linux to Linux e.g. you have to use SMB/Samba or NFS ) or, new in v7, via HTTP, which uses a SOAP call to update the file system on the remote box. I took the latter option; this updates the WPF project properties.

Having done this, the final step was to tell WPF to generate the iWidget which doesn't happen automatically the first time around.

To achieve this, I clicked the right-hand mouse button over the project name, and chose Widgets -> Publish Widgets to Lotus Mashups toolbox.
This prompted me for the credentials of the portal server - these can be entered each time, or cached.

Having done this, I then logged into Portal and, using the shiny new Page Builder Theme, I created a new page ( Actions -> New Child Page ) and then added my portlet and iWidget to the page ( Actions -> Edit Page -> Customize ).

*UPDATE* I've also provided a walk through, via screenshots, of the setup, and can share if required.

Lotus Connections 3.0 - It's Here ...

As per my earlier posts, Lotus Connections 3.0 was released yesterday ( a process known as electronic General Availability or eGA ). I did start the download last night, but hadn't realised that my laptop was plugged into a dead power socket, meaning that it had shut down when I got back to my hotel room :-(

So, having just finished the download of the code now; I have: -

IBM Lotus Connections 3.0 for AIX, Linux Multilingual (CZMD1ML)

-rw-r--r-- 1 hayd hayd 1197987840 2010-11-25 05:27 /home/hayd/DownloadDirector/CZMD1ML.tar

IBM Lotus Connections 3.0 Wizard for Linux, AIX Multilingual (CZMD4ML)

-rw-r--r-- 1 hayd hayd 318136320 2010-11-24 19:04 /home/hayd/DownloadDirector/CZMD4ML.tar

I already have all of the other pre-requisites, as outlined here: -

Lotus Connections 3.0 System Requirements - AIX
Lotus Connections 3.0 System Requirements - Linux
Lotus Connections 3.0 System Requirements - Windows

so can commence my installation as soon as time allows :-)

Wednesday 24 November 2010

Precompiling JSPs in order to speed up WebSphere Portal 7

This comes from TheServerSide.com via Sonia Malik on Twitter, and looks to be a rather useful tip that I probably did not, but ( as ever ) had forgotten: -


WebSphere Portal Server Guru, Sal Pece, provides this quick tip on how to improve the first-time run performance of your WebSphere Portal Server pages. The tip is demonstrated for WebSphere Portal Server 7, but it also applies to WPS 6.1 as well.

How To Speed Up WebSphere Portal Server 7 After the Initial Installation

When any version of WebSphere Portal is first installed, there is always a significant load time for each JSP page.   The poor load time is attributed to the fact that each JSP page must be compiled the first time it is accessed.  To avoid the delay, execute the precompile-jsp command.

1. Open a command line and navigate to the following directory:

C:\IBM\WebSphere\wp_profile\bin

2. Execute the following command (all on one line)

ConfigEngine.bat precompile-jsp –DwasUser=wasadmin –DWasPassword=wasadmin

3. 28 minutes later (although your mileage may vary)…

BUILD SUCCESSFUL

The script completed successfully and I’m happy to report there was a noticeable improvement in performance when browsing through WebSphere Portal Server 7 pages for the first time.


I'm running the script on my WebSphere Portal Express v7 VMware image now and will report back ....

*UPDATE* It took 31 minutes 8 seconds on my VM; will now see if WP is any faster :-)

Thanks to Sal for creating, and to Sonia for sharing ....

Tuesday 23 November 2010

2010 Exceptional Web Experience Conference - Materials available for download

This from my friend, Sonia - something else I need to download when I get to the hotel tonight; man, that wireless broadband is going to get busy, busy, busy

An Exceptional Web Experience is achieved when the intended users'  expectations have been met - or better yet - exceeded. This annual event is dedicated to helping organizations learn how to keep pace with the expanding, and ever increasing, Web-savvy user. You'll learn about the
latest Web portal, content, social, mobile, commerce, business process management and other innovations/technologies available from IBM and our Business Partners - as well as best practices and success stories. See just how powerful and beneficial an Exceptional Web Experience can be, and how companies and organizations of every size can drive better business outcomes. This is an On Demand collection of recordings of some of the best sessions presented at the 2010 Exceptional Web Experience Conference held in Chicago.

This offering contains the following on Demand bundles: -
  • Exceptional Web Experience on Demand : Best Practices and Implementation (WPS01)
  • Exceptional Web Experience on Demand : Developing Exceptional Web Experiences (WPS02)
  • Exceptional Web Experience on Demand : Web Experience Platforms and Solutions (WPS03)
More information available at : WPS04 - Exceptional Web Experience on Demand : The Total Experience

Lotus Connections - Two new cool things available from The Catalog on Greenhouse

My IBM colleague ( and general guru ), Luis Benitez, has recently added a rather cool tool to the  Catalog: -

IBM community newsletter generator plug-in for Lotus Connections

This plug-in allows you to generate a newsletter for any given Lotus Connections community directly from your Lotus Notes / Sametime / Symphony client.

Now I have used a version of this tool on the IBM-internal deployment of Connections, known as W3, and it's rather neat. The tool automagically trawls a given Community and generates a nicely formatted ready-to-send newsletter that you can then mail out to your Community members, in case they don't have time to review the Communities of which they are a member, either via the UI or via an ATOM/RSS feed.

I'll download and try this plugin, and report back.

In related news, another very smart IBMer, Suneil Berajawalasuneil, has created the: -

IBM Lotus Greenhouse masthead controller plugin for Firefox

Have you ever tried to demonstrate a Lotus product on the Lotus Greenhouse website and the audience of your demo was confused by the extra Lotus Greenhouse menus on top of the product menus?  Well, now you have a solution.  Using Greasemonkey for Firefox, you can now run a script that allows you to hide the masthead while demonstrating products on Lotus Greenhouse and then turn it back on again when your done!!

I've not yet had a reason to use Greasemonkey, but it sounds like yet another Firefox plugin without which I cannot love :-)


Lotus Connections 3 - What's In The Box ?

Stuart McIntyre has written a great presentation on the new features in Lotus Connections 3.0, which is worth a read.

The presentation, on Slideshare, can be reached via this post on Stuart's blog ( when I say Stuart's blog, I actually mean to say ... one of many blogs that Stuart hosts to which he and others contribute )

I'll download when I'm on a decent broadband connection ....

Lotus Connections 2.5 - More on "metrics"


 A colleague asked if there was any way to monitor whether a Community had become inactive. Whilst I haven't yet seen a specific isAction() API ( or similar ), there is this wsadmin command that can be executed ( as part of the communitiesAdmin.py Python script library ): -   CommunitiesService.listComm(List list)   Prints the information associated with the communities in the list input to the wsadmin command window in an easy-to-read format. The data printed includes community name, UUID, type, who created it, creation date, last person who modified it, date of last modification, membership list size, and description. If the list includes members, then this command also prints the membership list. If the list includes references, the command also prints the reference information.

This command is run in two steps. First, generate the data to input into the listComm command and assign the list to a variable. The variable is then used as input into the listComm command.

For example:
 wsadmin>byMember=CommunitiesService.fetchCommByMember("jane_doe@company.com") wsadmin>CommunitiesService.listComm(byMember) 
CommunitiesService.listCommToFile(List list, String filename)

  Prints the information associated with the communities in the list input to the specified file using an easy-to-read format. The directory to which the file is to be output must already exist. The data printed includes community name, UUID, type, who created it, creation date, last person who modified it, date of last modification, membership list size, and description. If the list includes members, then this command also prints the membership list. If the list includes references, the command also prints the reference information.

This command is run in two steps. First, generate the data to input into the listCommToFile command and assign the list to a variable. The variable is then used as input into the listCommToFile command.

For example:
 wsadmin>byMember=CommunitiesService.fetchCommByMember("jane_doe@company.com") wsadmin>CommunitiesService.listCommToFile(bymember,"/temp/CommMembers.txt") 
I nabbed these two commands from the Retrieving and listing community data section of the Lotus Connections 2.5 Information Centre.   Now it'd be nice if this information was available via a callable service / feed, similar to the Server Metrics : -    http://<servername.com:port>/communities/service/html/servermetrics   but one can't have everything :-)


Monday 22 November 2010

IBM Java - Accessing the JRE's Control Panel on Ubuntu Linux

There are probably fifty-eleven other ways to do this, but this is the simplest.

Run the command: -

/usr/lib/j2re1.6-ibm/jre/bin/ControlPanel

to launch the IBM JRE's Control Panel to change console settings, clear applet cache etc.

Lotus Connections - CMIS-based Files Connector

As per Luis' blog post: -

One of the new capabilities in Lotus Connections 3.0 is the support for CMISfree plugins out there that already work with CMIS. (Content Management Interoperability Services). CMIS is a standard API for managing files and one of the cool things about adding this support is all the


Thank to the CMIS support you can now interact with the Files capability from:


and many more

Enjoy :-)

Like books, want to pay less ?

If so, you may find these two sites to be of use. I buy and read a lot of books; real, paper books, with covers, pages, spines etc.

However, I don't always want to pay full price, especially if I'm trying out an author for the first time - this year, Alastair Reynolds and Iain M Banks have become new friends, but I didn't want to jump in and spend £15 on a book that I might just not like :-( airport purchases notwithstanding ( well, we've all done it; you get to the airport, with minutes to go before your flight, and grab the first book that you see ).

Anyway, here are two sites where you can get Second User ( better than saying Second Hand ) books: -

Oxfam - apparently, these folks are one of the biggest book sellers on the High Street, which is tough for the independents :-( - delivery is free *BUT* they'd like you to make a donation if you so choose, and you can select Gift Aid

Green Metropolis - unlike Oxfam, these folks aren't ( as far as I know ) a charity, but they do good deals on books - free delivery, £3.75 per book, occasional three-fer-two offers etc. *AND* they also buy as well as sell

Hope this helps .....

PS Did you know  that Oxfam stands for Oxford Committee for Famine Relief ? No, well, neither did I until quite recently. I guess that the full title was a little hard on shop sign painters :-)

Sunday 21 November 2010

More from the Wiki - WCM, WCM and more WCM

Creating an Intranet using Lotus Web Content Management

This article is the first in a multiple-part series that is going to follow a typical Lotus Web Content Management (WCM) project. It will cover the various phases of the project and the deliverables output from each. It will not focus on the low level technical how to – as this is covered in the Info Centre, the WCM Redbook and in individual articles on the wiki. It will instead focus on the processes that should be followed and the deliverables that should be created in each stage of the project.

The project which will be followed is a real one called the ‘Intranet Template Project’. One in which my team designs and implements an Intranet template. The final deliverable will be an installable WCM Intranet template which may be deployed, customised and extended as a starting point for your Company Intranet. The deliverables provided during the series will be the actual output from our project that can also double as templates that can be reused in your WCM project.

You can read the rest of the article here.

WCM Troubleshooting

Find troubleshooting techniques that other administrators use to resolve issues with Lotus® Web Content Management and share methods that you have developed. If you are looking for a workaround to a specific issue, don't forget to check the Lotus Web Content Support page. If you are trying to find logs or looking for information about how to turn on tracing, look in the information center which can be accessed from the WebSphere Portal and Lotus Web Content Management Product documentation page.


IBM Content Templates Catalog

Following up from my earlier  blog post about the CTC, there's a useful article on the Wiki here:  -

The goal of the IBM Content Templates Catalog (CTC) is to demonstrate the range of modern site designs that can be accomplished on the basis of the IBM portal and content management technologies, and to show how it can be done. To support this goal, the CTC provides three main areas that you can apply directly to your web designs:

1. A catalog area that offers ready to use web building blocks for customer sites. These building blocks realize modern patterns featuring commonly required content types and assets.

2. A jump-start area for rapidly integrating the selected CTC assets into a pre-existing site, or the development of new sites from scratch based on CTC assets; and

3. A sandbox area, which provides a 'playground' for first steps, and experimentation, as well as for easy comparison and selection of alternatives.

The CTC also provides the core technology and the quality assured implementation on which all Toolbox Industry Templates that are available on the market today build their WCM modules. The context of the Industry Templates demonstrates that the CTC core technology can be well integrated into larger web landscapes. But even as a stand-alone offering, the CTC provides unique support for straight forward web site creation.

IBM Redbook - Accelerating Web 2.0 Collaboration within WebSphere Portal 7.0

Just noticed this recently released Redbook ( RedWiki ? ) item -

  • Introduction
  • Functional Benefit
  • Implementing Web 2.0 Services in the Portal
  • Combining Services and Applications to Web 2.0-enabled Portal
  • IBM Accelerators
  • Web 2.0-enabled Themes
  • Live Text and Semantic tagging

Take a look here for more details.

Friday 19 November 2010

Lotus Greenhouse Next - Now using Lotus Web Content Management

My Lotus colleague, Stuart, pointed out that the new Lotus Greenhouse Next site has been updated to use Lotus Web Content Management.

Head over to the Greenhouse Next site to check it out.

Thursday 18 November 2010

Customizing IBM Lotus Domino V8.5.x to auto-zip mail attachments

Lotus Domino is a robust and scalable platform that can be used for the mail messaging requirements of an enterprise. A Domino administrator has different options to choose from when assigning a mail client to the end user; for example, the following types of clients are configurable with the Domino mail server: -

  • IBM Lotus Notes clients
  • IMAP clients, such as Microsoft® Outlook Express
  • POP3 clients
  • Lotus iNotes
  • IBM Lotus Domino Access for Microsoft Outlook clients (last release was 8.0.2)

The default mail template supplied with Lotus Domino can be customized by use of Lotus Domino Designer per the requirements of an organization. This article builds upon this facility, explaining how you can customize the underlying code and design elements to automatically zip attachments, on the fly, in an outbound mail message.

The template used here is version 8.5.1, but the same code will also work on earlier versions, including V7 and V8, though there will be a difference in the line numbers in the script library. This article addresses only the following use cases:
  • Lotus Notes clients
  • Lotus iNotes

Want to know more ?

Then head over to the Wiki and check it out ...

Symphony for the Converted - Mass Convertor : Batch converts MicroSoft Office files into odf format

This plugin will mass convert MS office files into Symphony ODF files. You should verify your converted files are in the format you want. Not all functions are able to convert completely into ODF format. Please verify your files are in the format you need.

Support OS: Windows ,Linux and Mac


Wednesday 17 November 2010

IBM WebSphere Portal and Lotus Web Content Management Version 7.0 Reviewer’s Guide

I downloaded and read this relatively new document from here [PDF] earlier today, as I was looking for a description of the new Web Application Bridge portlet: -

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.

Worth a look ....

Tuesday 16 November 2010

IBM Lotus Forms Application Experience Designer Beta

This is your chance to test an exciting new feature of IBM Lotus Forms, The new Application Experience Designer lets you quickly and easily build web applications for data collection. With nothing more than a browser - users can create sophisticated HTML/JavaScript applications that guide users through the steps involved with the data collection process. The design environment provides a simple and straightforward point and click user interface for specify the application, eliminating the need to write code. All application and data definitions are captured automatically as part of the design process and stored for later use in the production environment. This approach allows for rapid application development to with minimal technical skills. Solutions designed with the new Application Experience Designer are agile and easily changed to accommodate changing business requirements. They are also extensible and easily integrated with existing systems like business process management, data bases and other applications.

Benefits of Lotus Forms Application Experience Designer include:

  • Agile, Easy to Use - Allows business to respond without expensive, time consuming development cycles.
  • 100% Standards-Based - Lowers TCO and leverages common IT skills.
  • Highly Performant - Meets the needs of today's customer, partner and citizen facing deployments.
  • Compelling User Experience -Leverages best-of-breed, Web 2.0 technologies (CSS, Dojo, JavaScript.)
  • Integrates Easily - Complements SOA, BPM and other line-of business systems.

Q&A

Q. Do I need to have Lotus Forms to beta test this new feature?

A. No you do not need to have Lotus Forms. This feature beta has been designed to be used independent from Lotus Forms and can be installed by itself

Q. What new applications can I address with the Lotus Forms Application Experience Designer?

A. The new feature complements the traditional Lotus Forms document centric architecture by letting you build highly performant data centric.web applications.

Q. How will the new feature be made available?

A. Current plans are for the Lotus Forms Application Experience Designer to be introduced as part of Lotus Forms in 2011.

Q. What skills do I need to be able to build applications with Lotus Forms Application Experience Designer?

A. A basic understand of Web Applications, is all that is needed. Building applications is entirely point and click inside of a browser.

Q. How sophisticated can the applications be?

A. Users can build comprehensive, highly performant, rich client application experiences that include workflow and integration with other systems.

Do you want to know more ? If so, download the beta from here.

Monday 15 November 2010

Interested in LotusLive ? An IBM Business Partner ? Then take a lookee here ...


LotusLive offers a suite of collaboration capabilities that can bring people and information together quickly and easily across multiple time zones in a secure environment. You can quickly share information with customers that have different systems and skill levels. With LotusLive, you can create a central repository with version control to store and share documents, save time by using online meetings and instant messaging, and have your users share, edit, and access files and presentations by role.

In this workshop, you will learn how to use integrated social networking and online collaboration services provided by LotusLive to help you easily work with your customers. Also, you will learn about security and reliability, how to integrate services into applications, and how to integrate applications into LotusLive itself. With you acting as a user and administrator, hands-on exercises will show you how to achieve results with fewer resources by simplifying and improving interactions with customers.



This is a **FREE** self-study workshop running on December 7, 2010.

Click here for details.

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