Wednesday 30 June 2010

IBM Lotus Quickr Places Catalog portlet

Whilst looking for something completely different, I noticed that a new Quickr
Places Catalog portlet has been uploaded to the Portal Business Solutions
Catalog here: -

https://greenhouse.lotus.com/plugins/plugincatalog.nsf/assetDetails.xsp?action=editDocument&documentId=99776EF896B6BB0A8525774D006FCD07

<snip>
The places catalog portlet facilitates the integration of WebSphere Portal and
Lotus Quickr. The portlet displays a catalog of places from a remote Lotus
Quickr server. It replaces the existing "My Places" portlet, and provides
enhanced capabilites for discovering places:

1. Tag cloud navigation
2. Filtering by place owner
3. Sorting by title/last update
4. Full-text search for place title, description or tags
</snip>

It only supports Lotus Quickr 8.5, but it's definitely worth a look ....

Tuesday 29 June 2010

TW09GB Tivoli Directory Integrator Training @ IBM Staines - 19-21 July 2010

Fancy an introduction or update on TDI ? If so, get yourself down to IBM Staines next month ( well, July is still NEXT month, for the next 24 hours or so ), and spend three days in the company of this most excellent of products, known as "Blue Glue" by those with some experience of it.

TDI is relevant whether you're using Lotus Domino, Lotus Connections, Tivoli Identity Manager or a multitude of other things where user directories, registries, profiles databases, personnel systems etc. need to talk to one another.

For more information, please visit: -

http://www-03.ibm.com/services/learning/ites.wss/gb/en?pageType=course_description&courseCode=TW09GB&state=&city=Staines+%26%2340%3BNr+Heathrow%26%2341%3B+Middx&facility=500008275

Be there, or be perhaps less well informed :-)

Monday 28 June 2010

WebSphere Portlet Factory Version Next - Beta now available

I had a briefing from the Product Manager, Jason Cornell, on the plans for the next release of WebSphere Portlet Factory, which is just out in beta: -

• Expanded support for the latest, advanced Dojo toolkit User Interface widgets and controls enabling delivery of exceptional web experiences
• New theme support for creating applications with enhanced, dynamic interactivity by eliminating page flicker with intelligent User Interface refresh capabilities
• New compelling User Interface capabilities with new features designed to generate exceptional applications by default for providing superior user experiences
• New automation features enabling fast, simple construction of fully functional applications from relational databases in seconds
• New and enhanced visual application development features for easy, intuitive and faster application construction
• Improved remote development and deployment support for remote servers running on-premise or in the cloud enabling faster and less costly application delivery
• Better integration with IBM WebSphere Portal themes providing centralized control of portal site and application look and feel
• New support for IBM ILOG JViews charting components for delivering the most advanced data visualizations


There's also a presentation here: -


which provides more depth on this beta.

I've downloaded it this afternoon, and it'll be installed onto the Ubuntu 10.04 environment that I'm building on my Thinkpad ( now up to 8 GB, w00t ) tomorrow.

I'm using WPF in most of my projects now, and am continuing to evangelise it to all and sundry, both here on my blog, and face-to-face with my prospects.

It's a rapid application development tool with bite, that's really aimed at helping developers creating rich applications, using the latest standards and technologies, whilst encouraging good practice in terms of model-driven development, service orientation, absrtaction, separate of layers ( UI, data, service etc. ).

I'm enthused - I'd encourage you to get the beta, and be equally enthused ...

DO IT, DO IT NOW

Thursday 24 June 2010

Webcast: What's new in Lotus Quickr 8.5 for WebSphere Portal - 30 June 2010

You are invited to join panelists from Development and Support for a Webcast about the new features and functionality of IBM Lotus Quickr 8.5 for WebSphere Portal. The Webcast will be held on Wednesday, June 30, 2010, at 10:00 a.m. EDT (14:00 GMT). A Webcast consists of a slide presentation followed by a Q&A session. This session will be recorded; a link to the recording will be added to this document.

Date

Wednesday 30 June 2010

Time

10:00 Eastern Daylight Time / 14:00 Greenwich Mean Time / 15:00 British Summer Time

URL

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

Wednesday 23 June 2010

More tales from the front-line - Ephox EditLive! Rich Text Editor failing to load in WCM 6.1.0.3

Environment

Red Hat Enterprise Linux 5.5
WebSphere Application Server Network Deployment 6.1.0.27
Java pxi32devifx-20090811 (SR10 +IZ56666+IZ56751)
WebSphere Portal / Lotus Web Content Management 6.1.0.3 ( plus PM02927 / PM13199 / PK84963 / PM02565 )

Deployed as a two-node cluster, managed by a separate Deployment Manager, with a pair of front-end web servers ( IBM HTTP Server 6.1.0.29 )

In addition, context root of portal has been changed from /wps/portal to /london/portal via the ConfigEngine modify-servlet-path command, as per: -

http://publib.boulder.ibm.com/infocenter/wpdoc/v6r1/index.jsp?topic=/com.ibm.wp.ent.doc_v615/welcome_main.html

Overview

Ephox EditLive! Rich Text Editor (RTE) does not render when using WCM in a clustered environment - assumption is (a) that clustering has caused this exception or (b) that changing the default context root for the portal from /wps/portal to /london/portal.

Recreation Steps ( using Firebug 1.5.4 plugin within Firefox 3.6.3 to trap )

- Configure WCM Authoring Portlet to use EditLive as default editor, by setting Extended Editor under Rich Text Options
- Edit a piece of web content that has a Rich Text element within it
- Firebug throws up the Script exception: -

editlivebaseurl is not defined @ Line 658

>From the source of the page: -

<script language="Javascript" type="text/javascript" src="/wps/PA_WCM_Authoring_UI/wps/ephox/res/editlivebaseurl.js"></script>

it appears that Ephox is attempting to load the following JavaScript file: -

/wps/PA_WCM_Authoring_UI/wps/ephox/res/editlivebaseurl.js

which implies that the JS is available within the WCM Authoring application.

However, there is only one instance of this JS file on disk: -

/opt/IBM/WebSphere/wp_profile/installedApps/cellnameCell01/EphoxEditLive.ear/EphoxEditLive.war/res/editlivebaseurl.js

This is referenced in the EditLive JSP: -

/opt/IBM/WebSphere/wp_profile/installedApps/cellnameCell01/EphoxEditLive.ear/EphoxEditLive.war/jsp/html/EditLiveJavaEditor.jsp

<%-- used to load the portal Base URL in a way that is picked up by webseal --%>
<script language="Javascript" type="text/javascript" src="<%= portletResponse.encodeURI(getServletContext().getAttribute("directory") + "/res/editlivebaseurl.js") %>"></script>

Circumvention

Use absolute URL to JavaScript: -

http://portal.uk.ibm.com:10040/wps/ephox/res/editlivebaseurl.js

as JS is in DIFFERENT enterprise application ( EphoxEditLive ) and corresponding web application ( EphoxEditLive.war ) to WCM authoring ( PA_WCM_Authoring_UI  and ilwwcm-authoring.war respectively )

- Backup EditLiveJavaEditor.jsp
- Edit EditLiveJavaEditor.jsp
- Comment out: -

<%-- used to load the portal Base URL in a way that is picked up by webseal --%>
<script language="Javascript" type="text/javascript" src="<%= portletResponse.encodeURI(getServletContext().getAttribute("directory") + "/res/editlivebaseurl.js") %>"></script>

- Insert: -

<script language="JavaScript" type="text/javascript" src="http://portal.uk.ibm.com:10040/wps/ephox/res/editlivebaseurl.js")></script>

Alternatively, use an absolute URL to the web server(s) sitting in front of the portal cluster e.g.

<script language="JavaScript" type="text/javascript" src="http://webserver.uk.ibm.com/wps/ephox/res/editlivebaseurl.js")></script>

having checked that the Ephox web application, EphoxEditLive.war, is mapped to the HTTP servers as well as to the cluster.

Having made the above amendment to the EditLiveJavaEditor.jsp file ( on BOTH nodes within the cluster ), it's then necessary to restart the cluster having, for good measure, cleared down the temp and wstemp directories: -

rm -Rf /opt/IBM/WebSphere/wp_profile/wstemp/*
rm -Rf /opt/IBM/WebSphere/wp_profile/temp/*

to remove any compiled versions of edited JSP.

Once the cluster is restarted, the EditLive RTE now works as expected.

The circumvention does the trick - in the meantime, I've raised a PMR with IBM Support ...

Thanks be to Adrian Sutton of Ephox for his timely support, both via Twitter (!) and the telephone

Forms Based Authentication and WebSphere Portal together

As promisedpromised my Aussie colleague, Adam Brown, has kindly blogged his experiences with SearchBlox and WebSphere Portal here: -

Form Based Authentication for WebSphere Portal

Cheers, Adam, that's another beer I owe you ...

Deploying the Unified Task List portlet into a WebSphere Portal 6.1.0.4 cluster

This morning, I was able to successfully deploy the Unified Task List portlet to my WebSphere Portal 6.1.0.4 vertical cluster running on WebSphere Application Server 7.0.0.9.

I used the following install-utl.sh file: -

echo Licensed Materials - Property of IBM
echo IBM Industry Templates for WebSphere Portal
echo \(c\)Copyright IBM Corp. 2009.  All rights reserved.

echo Batch file to install the  industry template Unified Task List \(UTL\)  framework to WebSphere portal server

echo Edit the following variables with settings that reflect the machine set up:

echo usage variables:
set assemblyRoot=/home/hayd/Downloads/runtime/PortalAcceleratorUtl
set installPath=/opt/IBM/WebSphere/PortalServer/
set profilePath=/opt/IBM/WebSphere/wp_profile/
set wasUserName=wasadmin
set wasUserPassword=wasadm1n
set hostName=localhost
set soapPort=8879

export assemblyRoot=/home/hayd/Downloads/runtime/PortalAcceleratorUtl
export installPath=/opt/IBM/WebSphere/PortalServer/
export profilePath=/opt/IBM/WebSphere/wp_profile/
export wasUserName=wasadmin
export wasUserPassword=wasadm1n
export hostName=localhost
export soapPort=8879

set -o monitor
echo Registering utl framework components with the ConfigEngine.
$profilePath/ConfigEngine/ConfigEngine.sh -install -assemblyRoot $assemblyRoot -installPath $installPath -user $wasUserName$ -pwd $wasUserPassword -hostname $hostName$ -port $soapPort -offeringName PortalServer -assemblyName PortalAcceleratorUtl -expandBinaries true

echo Deploying the industry template utl framework
$profilePath/ConfigEngine/ConfigEngine.sh deploy-portlets -DComponentList=utl-common -propertyfile $assemblyRoot/utl.properties   

( this is provided with the portlet, in the runtimes directory )

with the following utl.properties: -

# Licensed Materials - Property of IBM
# IBM Industry Templates for WebSphere Portal
# (c) Copyright IBM Corp. 2009.  All rights reserved.


#Global properties file for the PortalAcceleratorUtl assembly
#
#users will need to set the values of the properties below
# to mirror the settings for their system
##

# Installation settings
#

General settings
serverName=WebSphere_Portal
nodeName=dmhw500
cellName=dmhw500Cell01
profile_dir=/opt/IBM/WebSphere6/wp_profile

( this again is provided with the portlet in the runtimes/PortalAcceleratorUtl directory )

but I also validated the installation using the following two ConfigEngine.sh scripts: -

/opt/IBM/WebSphere/wp_profile/ConfigEngine/ConfigEngine.sh -install -assemblyRoot /home/hayd/Downloads/runtime/PortalAcceleratorUtl -installPath /opt/IBM/WebSphere/PortalServer -user wasadmin -pwd wasadm1n -hostname localhost -port 8879 -offeringName PortalServer -assemblyName PortalAcceratorUtl -expandBinaries true

/opt/IBM/WebSphere/wp_profile/ConfigEngine/ConfigEngine.sh deploy-portlets -DComponentList=utl-common -propertyfile /home/hayd/Downloads/runtime/PortalAcceleratorUtl/utl.properties

I had the Deployment Manager, Node Agent and Portal cluster running.

It's also worth mentioning that I had previously set the parameters WasPassword and PortalAdminPwd in ConfigEngine/properties/wkplc.properties, to avoid me having to pass it into the script using the -D parameter.

Looking at the two ConfigEngine commands, the first one registers the UTL application with the ConfigEngine, which involves updating this file: -

/opt/IBM/WebSphere/wp_profile/ConfigEngine/registry.xml

with lines such as: -

...
<assembly xmi:id="Assembly_1277279131674" assemblyName="PortalAcceleratorUtl" installLocation="/opt/IBM/WebSphere/PortalServer/PortalAcceleratorUtl" lastModified="06/23/2010" version="6.1.0.0">
      <component xmi:id="Component_1277279131757" compName="accelerators.utl" installLocation="/opt/IBM/WebSphere/PortalServer/PortalAcceleratorUtl/accelerators.utl" version="6.1.0.0">
      <component xmi:id="Component_1277279131802" compName="utl-common" installLocation="/opt/IBM/WebSphere/PortalServer/PortalAcceleratorUtl/utl-common" version="6.1.0.0">
...

( I ran the command grep -i utl against the file to generate the above extract )

The second ConfigEngine command then deploys the portlets, referencing the utl.properties file, which references the node, cell and profile.

Once the second command had been successfully run, I can see the installed application, deployed at the Cell level, via the following path: -

/opt/IBM/WebSphere/wp_profile/installedApps/dmhw500Cell01/PA_WPF.ear/com.ibm.utl.war/

It was necessary to stop/start the application via the Deployment Manager, as it only appeared to automatically start on one out of two instances. Once started, I was able to add the Unified Task List portlet to a page,and have it render - I see an "Unknown Error" message, but I'm guessing that this relates to the fact that I don't have an instance of WebSphere Process Server available to talk to.

Working with DOS formattted files on Ubuntu

I was trying to hack an installation script this morning, and noted that VI was showing me Carriage Return/Line Feed symbols at the end of each line, indicating that the file had last been edited on a Windows platform using a tool such as Notepad.exe.

I can see this because each line ends with the special characters ^M which is the ASCII code for CR/LF.

In the past, I've always used the dos2unix command to strip these out of a file.

However, dos2unix no longer appears to be installed out-of-the-box with Ubuntu 10.04 or, worse still, available via the normal Canonical repositories; I tried installing it using the command: -

sudo apt-get install dos2unix

but got the "Computer says 'NO'" message of: -

E: Couldn't find package dos2unix

Googling around, I found this blog posting: -

http://mediakey.dk/~cc/dos2unix-on-ubuntu-and-debian/

which refers to a different package - tofrodos - which provides similar functionality.

I installed it using a similar command: -

sudo apt-get install tofrodos

accepting the warning that this package isn't certified as being an official part of Ubuntu.

Once done, I get two new commands: -

/usr/bin/todos
/usr/bin/fromdos

which equate to my old friends: -

dos2unix
unix2dos

respectively.

Sweet :-)

Sunday 20 June 2010

Lotus Symphony 3 Beta 3

I'm a little late in trying this out, but I downloaded the latest Beta 3 of the Symphony code yesterday, for both the Mac and the Ubuntu platforms.

So far, so great, and I'll make a conscientious effort to use this version of Symphony instead of the older GA version bundled within Notes 8.5.1 or, quelle horreure, Open Office 3.

Lotus Symphony 3 Beta represents a major new advancement for our Lotus Symphony users. Based on current OpenOffice.org 3 code stream. Lotus Symphony 3 Beta offers loads of new features and capabilities and improved file fidelity. The Lotus Symphony team is excited to get it out to you and get your feedback.

Lotus Symphony 3 Beta 3 adds some exciting new enhancements. You can now customize the toolbars and arrange them as you like. We've added a one click export to PDF icon that you can add to your toolbar. You now have the option to create toolbars to support your individual work style.

We've continued to enhance the user interface and added more features to the sidebar panels in all three applications. We've added additional animations options to give you more choices and moved frequently used functions to the sidebars so you don't have to search for them. We're also connecting Lotus Symphony to the cloud with a new LotusLive plugin. You will be able to store and retrieve content directly from within the Symphony application to our LotusLive service. Make sure to get the plugin from the Symphony plugin page and sign up for the free 30 day trial of LotusLive.

More to follow....

In the meantime, you can get Beta 3 from here, along with the most excellent LotusLive plugin.

Saturday 19 June 2010

Lotus Knows that there is an official Lotus Knows blog ...

I probably did hear this last week, but episode 3 of This Week In Lotus reminded me to check out the newly launched official Lotus Knows blog here.

Now to download episode 4 of http://twitter.com/thisweekinlotus via iTunes, ready for some more in-car listening.

PS What is Garnet ?

Thursday 17 June 2010

Problems with DB2 UDB passwords on Ubuntu 10.04

I was stuck in password length hell with DB2 UDB 9.1.0.5 on Ubuntu 10.04, but a colleague's swift direction to another blogger's posting helped a treat ....

I was getting: -

SQL30082N Security processing failed with reason "15" ("PROCESSING FAILURE").

and: -

2010-06-17-13.46.02.660328+060 I52692G282 LEVEL: Warning
PID : 2392 TID : 2980026576
FUNCTION: DB2 Common, Security, Users and Groups, secLogMessage, probe:20
DATA #1 : String, 67 bytes
Password validation for user db2inst1 failed with rc = -2146500504


when I tried to connect to my database ( locally ) using: -

db2 connect to sample user db2inst1 using <password>

Using the command:

db2diag -rc -2146500504

I can see that the response code means: -

Password length is greater than the Shelby supported password length

However, I'm using an eight character password, which is the minimum length that I can use on this particular version of Ubuntu.

At a colleague's suggestion, I tried upgrading the DB2 product to 9.1.0.9 ( and also updated the instance and DAS ) but to no avail.

My colleague's recommendation to peruse Graham Bucknell's blog posting here: -


did the trick.

In essence, Ubuntu now hashes passwords using the SHA512 algorithm which DB2 doesn't appear to like - temporarily forcing Ubuntu to use MD5 whilst regenerating the password for the DB2 user ( db2inst1 ) did the trick, and I'm now able to log in using the db2 connect command ... which is nice.

Salut to Graham, and to Axel for pointing me in the right direction.

Wednesday 16 June 2010

WebSphere Portal 6.1.5 - NullPointerException error during cluster-node-config-post-federation task

More on the NullPointerException error that I was (again) seeing when running the cluster-node-config-post-federation task.

It looked to be a configuration discrepancy between the Node Agent, configured by the previous cluster-node-config-pre-federation task and the Deployment Management, caused by the fact that my /etc/hosts file was misconfigured to the point whereby starting the Node Agent using the startNode.sh script would cause my PC to completely lock up with, I assume, a kernel panic.

My /etc/hosts file now looks like this: -

127.0.0.1 localhost dmhw500.uk.ibm.com dmhw500

e.g. I'm not binding a hostname to 127.0.1.1 or to a "real" IP address ( my PC is currently disconnected from any Ethernet, wired or wireless ).

I'm now able to start the Deployment Manager ( listening on 8879 ) and my Node Agent ( listening on 8979 ), and was able to synchronise the node within the cell using the Integrated Solutions Console - System Administration -> Save changes to master repository ( with Synchronize changes with Nodes checked ).

Once I did this, the cluster-node-config-post-federation task ran to completion, with BUILD SUCCESSFUL as my reward. I'm now running cluster-node-config-cluster-setup, and we'll see where we get to.

Webcast: 'Lotus Connections V2.5 Deployment Best Practices' Wednesday, 23 June 2010

Abstract

IBM will host a Webcast conference call with Lotus Development and Support Engineers to discuss "Lotus Connections V2.5 : Deployment Best Practices" on Wednesday, 23 June 2010.
 
Content

The "Lotus Connections V2.5 Deployment Best Practices" webcast will be a slide presentation followed by a Q&A session from the callers. During the Q&A, a panel of IBM Subject Matter Experts will answer your questions.

Date

Wednesday 23 June 2010

Time

15:00 UK / 14:00 GMT / 10:00 EDT

URL

Tuesday 15 June 2010

java.lang.ArrayIndexOutOfBoundsException during clustering

Whilst running the following task: -

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

I received the following exception: -

java.lang.ArrayIndexOutOfBoundsException: Array index out of range: 0
at com.ibm.wkplc.was.registry.AdminConfigRegistry. 


 I thought I'd correctly amended wkplc.properties but this Technote: -

 Portal v6.1: ConfigEngine scripts end with "java.lang.ArrayIndexOutOfBoundsException: Array index out of range: 0"

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

helped me out - I'd inadvertently set the property WasSoapPort to 8879, which is the port on the Deployment Manager, rather than to 10025, which is the CURRENT SOAP port, bearing in mind that we've NOT yet federated the node into the cell.

Simple when you know how ...

WebSphere Application Server Network Deployment - More Like Notwork Deployment ...

Having taken the default option to install WebSphere Application Server Network Deployment 7.0.0.0 ( then upgraded to 7.0.0.9 ) with a Deployment Manager profile, I'm now in the process of setting up said DM before federated an instance of WebSphere Portal 6.1.5.1 ( installed on the same node ) into the cell.

When I attempted to start the DM, using the command: -

/opt/IBM/WebSphere/AppServer/profiles/Dmgr01/bin/startManager.sh

but this failed pretty darn quickly with: -

ADMU3011E: Server launched but failed initialization. startServer.log,
           SystemOut.log(or job log in zOS) and other log files under
           /opt/IBM/WebSphere/AppServer/profiles/Dmgr01/logs/dmgr should
           contain failure information.


When I looked in SystemOut.log, I saw: -

DCSV9403E: Received an illegal configuration argument. Parameter MulticastInterface, value: 127.0.1.1. Exception is java.lang.Exception: Network Interface 127.0.1.1 was not found in local machine network interface list. Make sure that the NetworkInterface property is properly configured!

Now my /etc/hosts currently looks like this: -

127.0.0.1    localhost
127.0.1.1    dmhw500.uk.ibm.com    dmhw500

# The following lines are desirable for IPv6 capable hosts
::1     localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts


However, according to this Blog post, that might be the problem.

Following the recommendations in the posting, I changed the relevant part of /etc/hosts to: -

127.0.0.1    localhost        dmhw500
127.0.1.1    dmhw500.uk.ibm.com    dmhw500


and am now able to start the Deployment Manager.

Let's see how I get on ...

***UPDATE 28 December 2011***

Using WebSphere Application Server ND 7.0.0.17 on Ubuntu 11.10, I needed to further amend /etc/hosts to: -

127.0.0.1       localhost               dmhw500         dmhw500.uk.ibm.com
127.0.1.1       dmhw500.uk.ibm.com      dmhw500

# The following lines are desirable for IPv6 capable hosts
::1     ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters


in order to overcome these errors: -

[28/12/11 19:17:54:584 GMT] 00000000 HostNameMap   W   HMGR0064W: Resolution of IP Addresses for host name dmhw500.uk.ibm.com found only the loopback address. The loopback address will be used.
[28/12/11 19:17:55:006 GMT] 00000000 LogAdapter    E   DCSV9403E: Received an illegal configuration argument. Parameter MulticastInterface, value: 127.0.1.1. Exception is java.lang.Exception: Network Interface 127.0.1.1 was not found in local machine network interface list. Make sure that the NetworkInterface property is properly configured!


Once I did this, I was able to run startManager.sh etc.

***UPDATE 28 December 2011***

WebSphere Portal 6.1.5.1 on WebSphere Application Server 7.0.0.9

This is the first of a work-in-progress series of articles as I move towards using WebSphere Portal on WebSphere Application Server (WAS) 7.0, rather than the default WAS 6.1.

*CAVEAT* THIS WORKS FOR ME - THAT DOESN'T MEAN IT'LL WORK FOR YOU - PLEASE PLEASE PLEASE FOLLOW THE IBM DOCUMENTATION LINKED BELOW *CAVEAT*

On my trusty Ubuntu 10.04 box ( now 32 rather than 64-bit, but with the PAE kernel ), I installed ( this morning ): -

WebSphere Application Server Network Deployment 7.0.0.0

into /opt/IBM/WebSphere/AppServer and then installed the WAS 7.0.0.9 Update Installer into /opt/IBM/WebSphere/UpdateInstaller.

Using the Update Installer, I upgraded WAS to the fix pack ( 7.0.0.9 ) required for WebSphere Portal 6.1.5.1.

I had already downloaded WebSphere Portal Server 6.1.5.0, and unpacked into /tmp using the following script: -

unzip CZ8G7ML.zip    -d /tmp/IL-Setup
mkdir                   /tmp/IL-1
tar xvzf CZ8H5ML.tgz -C /tmp/IL-1
unzip CZ8HDML.zi p   -d /tmp/IL-2
unzip CZ8I4ML.zip    -d /tmp/IL-3
unzip CZ8I5ML.zip    -d /tmp/IL-4
unzip CZ8I6ML.zip    -d /tmp/IL-5
unzip CZ8I7ML.zip    -d /tmp/IL-5A

Having done this, I installed WebSphere Portal Server 6.1.5.0 into /opt/IBM/WebSphere which automatically places the PortalServer code into /opt/IBM/WebSphere/PortalServer and the WAS profile into /opt/IBM/WebSphere/wp_profile.

I then downloaded the most recent Portal Update Installer and extracted it into a specially created directory - /opt/IBM/WebSphere/PortalServer/update.

I then downloaded the fixpack (  WP_PTF_6104.jar) from Fix Central, along with a co-requisite fix, PM15558.jar, and placed both fixes in /opt/IBM/WebSphere/PortalServer/update/fixpacks.

Having  updated /opt/IBM/WebSphere/wp_profile/ConfigEngine/properties/wkplc.properties, and set the WasPassword and PortalAdminPwd properties, I then installed the two pixies as follows: -

cd /opt/IBM/WebSphere/PortalServer/update

source /opt/IBM/WebSphere/wp_profile/bin/setupCmdLine.sh

./updatePortal.sh -install -installDir /opt/IBM/WebSphere/PortalServer/ -fixpack -fixpackDir /opt/IBM/WebSphere/PortalServer/update/fixpacks/ -fixpackID WP_PTF_6104

./updatePortal.sh -install -installDir /opt/IBM/WebSphere/PortalServer/ -fix -fixDir /opt/IBM/WebSphere/PortalServer/update/fixpacks/ -fixJars PM15558.jar

After a wee while, the job is done.

I checked the versions using the following two scripts: -

/opt/IBM/WebSphere/AppServer/bin/versionInfo.sh

which returns: -

<snip>
Installed Product
--------------------------------------------------------------------------------
Name                     IBM WebSphere Application Server - ND
Version                  7.0.0.9
ID                       ND
Build Level              cf091011.19
Build Date               3/17/10
Architecture             Intel (32 bit)
</snip>

and: -

/opt/IBM/WebSphere/PortalServer/bin/WPVersionInfo.sh

which returns: -

<snip>
Installed Product
--------------------------------------------------------------------------------
Name           IBM WebSphere Portal MultiPlatform
Version        6.1.0.4
ID             MP
Build Level    wp6104_031_01
Build Date     05/21/2010

Installed Product
--------------------------------------------------------------------------------
Name           IBM WebSphere Portal FeaturePack
Version        6.1.5.1
ID             FEAT615
Build Level    wp6104_031_01 2010-05-21
Build Date     05/21/2010
</snip>

and: -

/opt/IBM/WebSphere/PortalServer/update# /opt/IBM/WebSphere/PortalServer/bin/WPVersionInfo.sh -fixes

which returns: -

<snip>
Installed Fix
--------------------------------------------------------------------------------
ID             PM15558
Description    Fix for Performance degradation in sametime awareness code
Build Date     05/28/2010
Build Version  201005282300
</snip>

*CAVEAT* THIS WORKS FOR ME - THAT DOESN'T MEAN IT'LL WORK FOR YOU - PLEASE PLEASE PLEASE FOLLOW THE IBM DOCUMENTATION LINKED BELOW *CAVEAT*

Nasty little log-in problem with Ubuntu 10.0.4

For some perhaps strange reason, I saw the following exception this morning when I tried to log into my freshly squeezed Ubuntu 10.04 32-bit installation on a 4061-BL5 Lenovo Thinkpad W500: -

There is a problem with the configuration server. (/usr/lib/libgconf2-4/gconf-sanity-check-2 exited with status 256 )

which then bounced me back to the default Gnome log-in screen.

along with exceptions such as: -


Jun 15 08:58:25 dmhw500 gdm-simple-greeter[9222]: WARNING: could not get gconf key '/apps/gdm/simple-greeter/recent-languages': Failed to contact configuration server; some possible causes are that you need to enable TCP/IP networking for ORBit, or you have stale NFS locks due to a system crash. See http://projects.gnome.org/gconf/ for information. (Details —  1: Could not send message to GConf daemon: Process /usr/lib/libgconf2-4/gconfd-2 received signal 6)


and: -

Jun 15 08:58:25 dmhw500 gdm-simple-greeter[9222]: WARNING: could not get gconf key '/apps/gdm/simple-greeter/recent-layouts': Failed to contact configuration server; some possible causes are that you need to enable TCP/IP networking for ORBit, or you have stale NFS locks due to a system crash. See http://projects.gnome.org/gconf/ for information. (Details —  1: Could not send message to GConf daemon: Process /usr/lib/libgconf2-4/gconfd-2 received signal 6)

in /var/log/syslog.

Now I had performed a clean installation of the 32-bit version of 10.04 yesterday, because the 64-bit version was causing a bit too much pain with applications such as my VPN client etc.

The installer automatically laid down the Physical Address Extension (PAE) kernel: -

Linux dmhw500 2.6.32-22-generic-pae #36-Ubuntu SMP Thu Jun 3 23:14:23 UTC 2010 i686 GNU/Linux

Now there's two possible causes for this: -
  • installing VMware Workstation ( VMware-Workstation-Full-7.1.0-261024.x86_64.bundle )
  • A post-10.04 update
I'm currently leaning on VMware, as I'd been able to log-in post a resume after the updates.

I'd also noticed that I wasn't able to start VMware as my normal user ( hayd ) but was able to start it as root ( via sudo /bin/bash ). I didn't dig into this too much, but I'm fairly sure that VMware was complaining about access to something in /tmp.

Anyway, back to my lack of login ....

I'd Google'd around, and found a few references to this problem, most of which appeared to indicate that permissions to the /tmp folder might be the problem - which ties up nicely with VMware not playing ball.

Ordinarily, I'd simply switch to another virtual terminal via Ctrl + Alt + F1 etc. but this doesn't appear to work for me on Ubuntu, perhaps due to the display driver that I am currently using - i915 - as Ubuntu has offered me the option to install the proprietary AMD/ATI driver fglrx - an offer which I've not yet chosen to accept.

To cut a long story short, I needed to boot the Thinkpad from the 10.04 installation, choose to run Ubuntu in "live" mode ( rather than reinstalling ), and then open a normal xterm console.

I also needed to mount my hard drive, via Places -> Computer, so that I could access it via the shell session.

From the xterm command, I ran the following commands: -

sudo /bin/bash

cd /media/
chmod a+rwx /tmp


The last command sets the permissions for ALL users, via the a flag to be Read/Write/Execute.

Having done this, I rebooted ( having removed the DVD ), and was able to log in as usual.

Again, I'm not 100% sure why this happened, *BUT* it was a somewhat scary moment, having spent nearly two hours installing and patching 10.04 having gone back to 32-bit.

Still, another lesson learnt ....

Friday 11 June 2010

Whitepaper - Measuring the value of social software - Defining a measurement approach that maps activity to business value

From my IBM Software Services for Lotus (ISSL) colleagues: -

  • Chris Cooper (Collaboration and Social Software Consultant - IBM Software Services for Lotus)
  • Mike Martin (Senior Managing Consultant - IBM Software Services for Lotus)
  • Terry Kiernan (Offerings Specialist - IBM Software Services for Lotus)

Introduction

Organizations across a variety of industries are leveraging social software and collaboration tools to promote efficiency and innovation. As more and more companies implement social software initiatives to improve communication and collaboration and to drive business results, a key question is being asked:

How can we determine if our social software initiatives are successful and are providing the anticipated return on technology investment?

Part of the answer lies in identifying at the beginning of the deployment what success will look like for the different business uses for which social software technology is being leveraged. Another key piece is establishing a measurement approach that captures information about the usage of social software tools, how they are influencing individual, group and organizational behavior, and what quantifiable business value is being generated from the investment in social software technology.
This white paper will take a look at how to measure the effectiveness and value of a social software initiative, what tools are available to capture key metrics, and what to take into consideration when establishing a measurement approach.

IBM WebSphere Portal Content Templates Catalog - The Fun Continues, this time on Windows

Following two earlier posts about the rather excellent Portal Templates Catalog, I was helping a colleague, Stuart, with an implementation of the same on WebSphere Portal Express 6.1.5 on a VMware image running Windows XP SP3.

Previously, I'd only ever deployed the Catalog onto Linux, as per my previous postings here: -

http://portal2portal.blogspot.com/2010/05/ibm-websphere-portal-content-templates_13.html

and here: -

http://portal2portal.blogspot.com/2010/05/ibm-websphere-portal-content-templates.html

whereas it was somewhat more tricksy on Windows.

In the first instance, I was seeing the following exception: -

BUILD FAILED
D:\IBM\WebSphere\PortalServer\IBM.WebSphere.Portal.Content.Templates.Catalog\components\sample.ctc.content\config\includes\sample.wcm.content.common_cfg.xml:12: The following error occurred while executing this line:
D:\IBM\WebSphere\PortalServer\IBM.WebSphere.Portal.Content.Templates.Catalog\components\sample.ctc.content\config\includes\wcm_cfg.xml:18: Warning: Could not find file D:\IBMWebSpherewp_profile\PortalServer\wcm\config\wcm60_conf.xml to copy.

even though I'd modified install.bat as follows: -

set installPath      =    d:\IBM\WebSphere\PortalServer
set assemblyRoot     =    %installPath%\IBM.WebSphere.Portal.Content.Templates.Catalog
set profilePath      =    d:\IBM\WebSphere\wp_profile
set portalServerPath =    d:\IBM\WebSphere\PortalServer
set wasUserName      =    wpsadmin
set wasUserPassword  =    passw0rd
set pwdUserName      =    wpsadmin
set pwdUserPassword  =    passw0rd
set hostName         =    localhost
set portalConfigUrl  =    http://localhost:10040/wps/config
set soapPort         =    10033

and also modified d:/IBM/WebSphere/PortalServer/IBM.WebSphere.Portal.Content.Templates.Catalog/wcm.properties as follows: -

profile_dir          =    d:\IBM\WebSphere\wp_profile

to match my environment.

Reading the error message more fully ( ...D:\IBMWebSpherewp_profile... ), I wondered whether script was ignoring the back slash (\) characters in the paths set in the .bat and .properties file, as I've seen similar issues before. To prove this, I replaced them with forward slash (/) characters, doubled up in case one character was being treated as an escape character.

Therefore, the path-related statements in the .bat and .properties files changed to look like this: -

set installPath      =    d://IBM//WebSphere//PortalServer
set assemblyRoot     =    %installPath%//IBM.WebSphere.Portal.Content.Templates.Catalog
set profilePath      =    d://IBM//WebSphere//wp_profile
set portalServerPath =    d://IBM//WebSphere//PortalServer

and: -

profile_dir          =    d://IBM//WebSphere//wp_profile

respectively.

This helped in that the script ran for slightly longer, but still failed, this time with: -

[6/11/10 13:44:31:609 BST] 00000049 SysViewConten E com.ibm.icm.jcr.serialization.handler.SysViewContentHandler endElement javax.jcr.RepositoryException: d:\IBM\WebSphere\PortalServer\IBM.WebSphere.Portal.Content.Templates.Catalog\components\sample.ctc.content\content\wcm\shared\rootworkspace\jcr_root\423dc4e4\8632bc4e\%57orkflow\%41ctions\18bdfa32\e910e1b8.value (The system cannot find the path specified.)
                                 javax.jcr.RepositoryException: d:\IBM\WebSphere\PortalServer\IBM.WebSphere.Portal.Content.Templates.Catalog\components\sample.ctc.content\content\wcm\shared\rootworkspace\jcr_root\423dc4e4\8632bc4e\%57orkflow\%41ctions\18bdfa32\e910e1b8.value (The system cannot find the path specified.)

This baffled me completely, until I compared the message with the content / path of the contents of the extracted IBM.WebSphere.Portal.Content.Templates.Catalog directory, which needs to be copied into D:\IBM\WebSphere\PortalServer.

The error message referred to: -

d:\IBM\WebSphere\PortalServer\IBM.WebSphere.Portal.Content.Templates.Catalog\components\sample.ctc.content\content\wcm\shared\rootworkspace\jcr_root\423dc4e4\8632bc4e\%57orkflow\%41ctions\18bdfa32\e910e1b8.value

whereas when I explored the file system via Windows Explorer, I was seeing: -

d:\IBM\WebSphere\PortalServer\IBM.WebSphere.Portal.Content.Templates.Catalog\components\sample.ctc.content\content\wcm\c-content\rootworkspace\jcr_root\423dc4e4\8509a2db\%002557orkflow\%002541ctions.node

I don't claim to understand WHY this is the case, but I'm assuming that it's something to do with Windows Explorer and, perhaps, 255 character path lengths ?

Interestingly, the Windows DIR command shows the same weirdness e.g.

%002557orkflow.node

rather than: -

%57orkflow.node

In the end, I was able to resolve the problem by avoiding the use Windows Explorer etc. and manually extracting the content of the ZIP file ( 1WP1002G6_615.zip  ) from the Windows command prompt using the PKZip utility, unzip.exe, and then copying the IBM.WebSphere.Portal.Content.Templates.Catalog directory structure into place using the XCopy /S command.

By this time, however, the repeatedly failing import had left my JCR repository in a bit of a muddle; I had to manually delete the content libraries that had already been imported e.g. TB_Catalog, TB_Core etc. using the Web Content Libraries portlet whilst logged in as wpsadmin. I then restarted WebSphere Portal for good measure.

Having done all of the above, I was able to successfully run the install.bat script and, after 19 minutes and 28 seconds, the CTC installed, and I now have lots of content loveliness at which to look.

The moral of the story ? Stick to the command line :-)

I'll feed this back to the Dublin lab. in case there's anything that I'm doing wrong ...

PS I'm running the VM on a Thinkpad W500 with 4 GB total, and 2 GB allocated to Windows.

Wednesday 9 June 2010

WebSphere Portlet Factory 6.1.5 on Ubuntu 10.04 Lucid Lynx

Following a previous posting earlier this year, I've again installed WebSphere Portlet Factory Designer 6.1.5 and WebSphere Portal Server 6.1.5 on Ubuntu, but - this time - I'm using Ubuntu 10.04 on a 64-bit Lenovo Thinkpad W500 with 4 GB RAM.

So far, things are much as before - however, the trick with XULRunner outlined in Ben's blog posting here no longer seemed to work. Therefore, I needed to add: -

-Dorg.eclipse.swt.browser.XULRunnerPath=/usr/lib/firefox-3.6.3/

to /opt/eclipse/eclipse.ini, which means that Firefox is launched by WPF directly.

I also needed to replace dash with bash as the default sh shell: -

cd /bin
unlink sh
ln -s /bin/bash sh

Apart from that, so far, so good ....

IBM WebSphere Portlet Factory Application Builder Technology Preview

Hmmm, this looks rather interesting: -

    • With Application Builder, you can create new database list and multi-page form applications directly from the WebSphere Portal interface in a browser. You simply add the desired application template to a page, then click through a wizard to configure the application.

The Application Builder tool is built entirely on WebSphere Portlet Factory builder and model technology. This tech preview focuses on database list and forms functionality. However, the technology is extensible and can support building any kind of application.

Key features in this tech preview release:
    • Custom portlet applications can be built entirely from within Portal, running in a browser
    • Create and deploy nice-looking CRUD (create/read/update/delete) and multi-page form portlets using database lists for storage
    • Create database lists from spreadsheet or by specifying field names
    • Select from application templates for common list application types, then customize to meet specific needs
    • Enable event source support to fire Portlet Factory client events to other portlets
    • Enable live name support for person card display for registered Portal users
    • Simple install and deploy: just install one portlet WAR on any Portal 6.1.5 server.

Database lists can be created in a few different ways:
    • You can import a spreadsheet and automatically create a database table based on the columns in the spreadsheet.
    • You can specify the columns you want in your database list.
    • You can start with one of the predefined templates, such as "contact list" or "task list," and you can customize the list of fields.

Application Builder is built on the Portlet Factory framework, leveraging all of Portlet Factory's model and builder technology and runtime framework. This provides some very important benefits and features:
    • Generated code can be further customized in the Portlet Factory IDE. Applications built through the browser interface can be brought into the Portlet Factory IDE for additional customization by developers. This means that when particular applications become more widely used and critical to the enterprise, they can be seamlessly moved into the hands of IT for complete customization using the full range of Portlet Factory capabilities. Note: For this tech preview, this capability is only available internally for IBM users.
    • Extensibility. The available application patterns and templates can be easily extended using Portlet Factory models and builders. Templates can be created for any kind of application, implementation any horizontal or vertical functionality. Note: For this tech preview, this capability is only available internally for IBM users.
    • Proven performance and scalability. Portlet Factory is a proven, mature, scalable framework that has been deployed in mission-critical applications for large customers and is proven to have good performance. Each Application Builder portlet runs as a Portlet Factory model.

"java.io.IOException: Unable to deserialize the Subjects in this Context" using Web Services in WebSphere Portlet Factory Designer

Interesting, one of my colleagues has been using WebSphere Portlet Factory Designer 6.1.5 and WebSphere Portal Server 6.1.5 to continue the development of some portlets on which I'd previously worked back in April.

However, he found that he was getting exceptions such as: -

java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:79)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:618)

Caused by: com.bowstreet.webapp.engine.actions.MethodExecutionException: Error in method getPatientDetails.executeOperation. Error in method GetDemographicsExecute. Error in method GetDemographics.invoke. Error in method GetDemographics.invokeInternal. java.io.IOException: Unable to deserialize the Subjects in this Context [Root exception is javax.xml.ws.WebServiceException: java.io.IOException: Unable to deserialize the Subjects in this Context]
at com.bowstreet.webapp.engine.actions.MethodAction.callAction(MethodAction.java:122)
at com.bowstreet.webapp.engine.WebAppAccessImpl.callMethod(WebAppAccessImpl.java:405)
at com.bowstreet.webapp.engine.WebAppAccessImpl.callMethod(WebAppAccessImpl.java:302)
at genjava._requestPatientDetails.getPatientDetailsGetDemographics(_requestPatientDetails.java:80
)

etc. when he attempted to execute one of the portlets ( one consumes a portlet that consumes a web service from a different, third, WPF model ).

I'd tried, and failed, to reproduce the problem using a clean installation of WPFD and WP 6.1.5 on my Ubuntu box.

After some trial and error, I asked the right question - did he use any WebSphere Feature Packs such as: -



I was prompted to do so by a previous encounter with the Web Services Feature Pack: -


Lo and, if you will, behold, he was using BOTH of the above.

Given that the exception related to javax.xml.ws.WebServiceException, I'm guessing that the WS Feature Pack *MIGHT* be responsible.

He's going to test on a clean installation of WAS/WP, and will report back.


Tuesday 8 June 2010

Lotus Mobile Connect 6.1.4 on 64-bit Ubuntu

Whilst trying to install and use Lotus Mobile Connect 6.1.4 on a 64-bit installation of Ubuntu 10.04 Lucid Lynx, I was seeing the following message: -

bash: opt/ibm/MobilityClient/bin/wclient: No such file or directory

when I attempted to execute the client: -

/opt/ibm/MobilityClient/bin/wclient

After checking the obvious ( checking for the X file permission and changing using chmod etc. ), it struck me that I was trying to execute a 32-bit binary on a 64-bit kernel.

This requires a 32-bit layer ( ia32-libs ) to be installed: -

sudo apt-get install ia32-libs

Once I did this, I tried to execute the LMC GUI: -

/opt/ibm/MobilityClient/bin/wcguicfg

which failed with: -

/opt/ibm/MobilityClient/bin/wcguicfg: error while loading shared libraries: libstdc++.so.5: cannot open shared object file: No such file or directory

Thanks to this posting, I was able to resolve the problem by installing the 64-bit version of libstdc++ from here, and then pulling down the ia32-libs from here: -

wget http://security.ubuntu.com/ubuntu/pool/universe/i/ia32-libs/ia32-libs_2.7ubuntu6.1_amd64.deb

Now to reboot and test ...

Installing IBM Java 1.6 on a 64-bit Ubuntu 10.04 instance

I'm still setting up my new Lenovo Thinkpad W500 as my main developer/demonstration environment and, as such, needed to install a Java Virtual Machine (JVM) in order to run applets etc. such as the Domino WebAdmin application.

I'm running a 64-bit version of Ubuntu 10.04 ( aka Lucid Lynx ), with a 64-bit kernel; uname -a reports: -

Linux dmhw500 2.6.32-22-generic #33-Ubuntu SMP Wed Apr 28 13:28:05 UTC 2010 x86_64 GNU/Linux

Having downloaded the IBM JRE ( ibm-java-jre-6.0-8.0-linux-x86_64.tgz ), it was a simple matter of extracting it into, in my case, /opt/IBM as follows: -

cd /opt
mkdir IBM
cd IBM
tar xvzf ~/Downloads/ibm-java-jre-6.0-8.0-linux-x86_64.tgz

Having done this, I then needed to configure Firefox 3.6.3 to use this JRE; that was a more tricky operation.

In the end, it was a relatively simple matter of creating symbolic links for TWO of the JRE's plugin files into the /usr/lib/mozilla/plugins directory: -

cd /usr/lib/mozilla/plugins
ln -s /opt/IBM/ibm-java-x86_64-60/jre/lib/amd64/libjavaplugin_jni.so .
ln -s /opt/IBM/ibm-java-x86_64-60/jre/lib/amd64/libnpjp2.so .

Having done this, the command ls -al /usr/lib/mozilla/plugins returns: -

lrwxrwxrwx 1 root root     62 2010-06-08 12:28 libjavaplugin_jni.so -> /opt/IBM/ibm-java-x86_64-60/jre/lib/amd64/libjavaplugin_jni.so
lrwxrwxrwx 1 root root     53 2010-06-08 12:33 libnpjp2.so -> /opt/IBM/ibm-java-x86_64-60/jre/lib/amd64/libnpjp2.so

Having done this, the Firefox special URL about:plugins lists the Java(TM) Plugin 1.6.0 along with the usual suspects, and the command: -

cat /home/hayd/.mozilla/firefox/63a743op.default/pluginreg.dat

returns: -

Java(TM) Plug-in 1.6.0:$
34
0:application/x-java-vm:Java&#153 Plug-in::$
1:application/x-java-applet:Java&#153 Plug-in Applet::$
2:application/x-java-applet;version=1.1:Java&#153 Plug-in::$
3:application/x-java-applet;version=1.1.1:Java&#153 Plug-in::$
4:application/x-java-applet;version=1.1.2:Java&#153 Plug-in::$
5:application/x-java-applet;version=1.1.3:Java&#153 Plug-in::$
6:application/x-java-applet;version=1.2:Java&#153 Plug-in::$
7:application/x-java-applet;version=1.2.1:Java&#153 Plug-in::$
8:application/x-java-applet;version=1.2.2:Java&#153 Plug-in::$
9:application/x-java-applet;version=1.3:Java&#153 Plug-in::$
10:application/x-java-applet;version=1.3.1:Java&#153 Plug-in::$
11:application/x-java-applet;version=1.4:Java&#153 Plug-in::$
12:application/x-java-applet;version=1.4.1:Java&#153 Plug-in::$
13:application/x-java-applet;version=1.4.2:Java&#153 Plug-in::$
14:application/x-java-applet;version=1.5:Java&#153 Plug-in::$
15:application/x-java-applet;version=1.6:Java&#153 Plug-in::$
16:application/x-java-applet;jpi-version=1.6:Java&#153 Plug-in::$
17:application/x-java-bean:Java&#153 Plug-in JavaBeans::$
18:application/x-java-bean;version=1.1:Java&#153 Plug-in::$
19:application/x-java-bean;version=1.1.1:Java&#153 Plug-in::$
20:application/x-java-bean;version=1.1.2:Java&#153 Plug-in::$
21:application/x-java-bean;version=1.1.3:Java&#153 Plug-in::$
22:application/x-java-bean;version=1.2:Java&#153 Plug-in::$
23:application/x-java-bean;version=1.2.1:Java&#153 Plug-in::$
24:application/x-java-bean;version=1.2.2:Java&#153 Plug-in::$
25:application/x-java-bean;version=1.3:Java&#153 Plug-in::$
26:application/x-java-bean;version=1.3.1:Java&#153 Plug-in::$
27:application/x-java-bean;version=1.4:Java&#153 Plug-in::$
28:application/x-java-bean;version=1.4.1:Java&#153 Plug-in::$
29:application/x-java-bean;version=1.4.2:Java&#153 Plug-in::$
30:application/x-java-bean;version=1.5:Java&#153 Plug-in::$
31:application/x-java-bean;version=1.6:Java&#153 Plug-in::$
32:application/x-java-bean;jpi-version=1.6:Java&#153 Plug-in::$
33:application/x-java-vm-npruntime:::$

As they say, the job's a good un'

:-))

IBM Lotus Quickr 8.5 for WebSphere Portal and IBM Lotus Quickr Connectors 8.5 announced

I've been waiting for this, as it's a crucial part of a Secure Collaboration Portal project on which I'm working: -

IBM Lotus Quickr 8.5 for WebSphere Portal provides user interface enhancements, increased integration, streamlined administration, and infrastructure updates. It includes:

• Updated browser theme to give users a consistent experience across IBM products, including Lotus Connections and WebSphere Portal.
• Simplification of frequent user actions such as navigation within a place and common library, and document management actions.
• New rich text editor for browser-based creation of content. The same text editor is used across IBM products, such as Lotus Connections, giving end users a common experience.
• Increased integration between Lotus Quickr and Lotus Connections, including top-line navigation, use of the person card, and integrated search menu.
• Simplification of member management inside Quickr places to facilitate end-user self-service.
• New place catalog with tag-based navigation that simplifies locating places, particularly in large Lotus Quickr deployments.
• Enhanced integration with Enterprise Content Management (ECM) repositories, including new "direct connect" Web-based component that allows users to natively display and interact with ECM content from within a Lotus Quickr place.
• Parametric search of ECM content.
• Enhancements to Lotus Quickr Connectors to better support ECM content (refer to Software Announcement ZP08-0602, dated December 09, 2008.
• Easier, more flexible management tools with new administrator console that provides more complete user and place statistics, enhanced backup and recovery tools, and simplified place customization.
• New library portlet to integrate Lotus Quickr content into WebSphere Portal applications.
• Support for WebSphere Portal V6.1.5.
• Other infrastructure platform updates including AIX® V6.1 64 bit, Windows 2008 64 bit, SLES 10, SLES 64 bit on System z®, Oracle 10.2, Internet Explorer 8 on Windows, Firefox 3.5 on Windows, Linux®, and Mac.
• Using Lotus Quickr Connectors 8.5 so users can easily and naturally work together on content and access content contributed by colleagues directly from their favorite desktop applications. The connectors support check-in and check-out to help manage the process of multiple authors, and version control to ensure that everyone always has the latest copy of a document. Lotus Quickr Connectors 8.5 is included with other Lotus Quickr offerings and is also available separately for access to other content repositories such as ECM systems.
• Mandatory metadata enforcement - new, simple and intuitive interface to enter and enforce entry of metadata for documents.
• Notes® integration - simple drag-and-drop of Lotus Notes e-mails into Lotus Quickr places.
• Sametime integration - drag-and-drop documents into a Lotus Sametime chat windows and Web conferences.
• Microsoft Office integration - native integration into the Office 2007 "ribbon."
• User-initiated publication to a content server that helps manage performance -- particularly useful in low bandwidth situations.
• Launch a search dialog from the context of a desktop connector.
• Support for third-party authentication tools, such as SiteMinder and Tivoli® Access Manager.
• Support for single sign-on tools, such as SPNEGO.
• Support for multiuser installation of the connectors on a shared workstation.

The formal announcement is here: -


Electronic General Availability (EGA) looks to be Tuesday 15 June, which is rather cool :-)

Friday 4 June 2010

Testing Times with Telnet

I've been making heavy use of Telnet these past few weeks to test firewall configurations between various servers in my pair of two-node WAS 6.1 clusters; it's an invaluable resource when trying to find out why the Deployment Manager can't talk to the HTTP server on port 8008 or why the Portal server can't talk to the Connections server via a load balanced URL on port 82.

However, I've found another use case for Telnet today; I was trying to resolve the problem with the Blog portlet not rendering correctly  - sadly still unresolved, and I'd noted that, when the portlet renders, it sends a request: -

GET /profiles/atom/profileService.do HTTP/1.1

to the HTTP server sitting in front of the Connections cluster - I can see this from the IBM HTTP Server's access.log.

Recognising that this is a valid request for the Profiles feature of Connections, as per: -


I wanted to test the connectivity to ensure that Mr Firewall or Mr Connections Authentication ( aka DSX aka Waltz ) was not getting in the way.

So I open up my trusty Telnet client, and invoke: -

telnet connections.demo.uk.ibm.com 82

( where connections.demo.uk.ibm.com is the hostname of the Load Balancer sitting in front of IBM HTTP Server and 82 is the port on which this particular instance of IHS listen )

This returns: -

Trying 192.168.2.4...
Connected to connections.demo.uk.ibm.com
Escape character is '^]'.

at which point I type: -

GET /profiles/atom/profileService.do?email=david_hay%40uk.ibm.com HTTP/1.1
Host: localhost

which asks Profiles for the service document for my user ID, which returns something similar to this: -

<?xml version="1.0"?><service xmlns="http://www.w3.org/2007/app"><generator xmlns="http://www.w3.org/2005/Atom" version="2.5" uri="http://www.ibm.com/xmlns/prod/sn">Lotus Connections - Profiles</generator><workspace><title xmlns="http://www.w3.org/2005/Atom" type="text">Dave Hay</title><collection href="http://connections.demo.uk.ibm.com:82/profiles/atom/profile.do?email=david_hay%40uk.ibm.com&amp;output=vcard"><title xmlns="http://www.w3.org/2005/Atom" type="text">Dave Hay</title><userid xmlns="http://www.ibm.com/xmlns/prod/sn">f93cd940-0337-102f-8e02-b58181081372</userid><editableFields xmlns="http://www.ibm.com/xmlns/prod/sn"><editableField name="groupwareEmail"></editableField><editableField name="bldgId"></editableField><editableField name="mobileNumber"></editableField><editableField name="experience"></editableField><editableField name="pagerNumber"></editableField><editableField name="telephoneNumber"></editableField><editableField name="officeName"></editableField><editableField name="description"></editableField><editableField name="extattr.profileLinks"></editableField><editableField name="floor"></editableField><editableField name="faxNumber"></editableField><editableField name="timezone"></editableField><editableField name="blogUrl"></editableField><editableField name="jobResp"></editableField><editableField name="ipTelephoneNumber"></editableField><editableField name="secretaryUid"></editableField></editableFields></collection><link xmlns="http://www.w3.org/2005/Atom" href="http://connections.demo.uk.ibm.com:82/profiles/atom/profileTags.do?targetKey=96074539-b189-4714-bcc7-23da
.....


Is that nice or what ?

Thanks to this for some useful tips on Telnet

Lotus UK 'Power of Business Applications' conference - 16th June, 2010

What

In today's environment organisations are required to act more quickly to respond to ever-changing business demands, to get ahead of the competition and to deliver solutions to their business functions. In the IBM Lotus brand we understand the importance of business applications because our IBM Lotus Notes and Domino customers have been running their businesses on applications for many years. We understand the importance of integrating those applications with workforce collaboration, presence-awareness and other enterprise solutions, and delivering them on a variety of platforms to suit the needs of the users. And we understand the importance of protecting your investments, in ensuring that you can continue to take those applications forward, to continue to evolve and improve them, and integrate them into tomorrow's business solutions and modes of collaboration.

The IBM Lotus 'Power of Business Applications' conference will show you the art of the possible and demonstrate the range of capabilities and extension points to Notes and Domino applications. Why haven't we labelled this as a 'developer conference'? Because this is not just about showing demos and code - the conference will discuss strategies for enhancing existing applications, building a new breed of applications, and also include customer reference stories to illustrate how some IBM Lotus customers are gaining value from their applications.

Where

IBM United Kingdom Limited
2 New Square
Bedfont Lakes
Feltham
Middlesex
TW14 8HB

When

Wednesday 16 June 2010

How


I'll be there - will you ?

GLPRDB050E Attribute ibm-primaryEmail was not found in the schema definition.

Hmmm, having got Business Cards ( aka Person Cards ) working between Connections and Portal yesterday, I was somewhat surprised when things stopped working.

Although I hadn't been specifically looking at Business Cards, I realised that my modifications to WIM had gone awry when I used the Edit My Profile portlet and noticed that the user's email address was no longer correctly specified. When I tried to update the profile, I got the following set of exceptions: -

In Portlet

 EJPSG0015E: Data Backend Problem com.ibm.websphere.wim.exception.WIMSystemException: CWWIM4520E The 'javax.naming.directory.NoSuchAttributeException: [LDAP: error code 16 - GLPRDB050E Attribute ibm-primaryEmail was not found in the schema definition.
]; remaining name 'uid=hayd,cn=users,ou=system,ou=ibm'; resolved object com.sun.jndi.ldap.LdapCtx@f480f48' naming exception occurred during processing


View Details

 EJPSG0015E: Data Backend Problem com.ibm.websphere.wim.exception.WIMSystemException: CWWIM4520E The 'javax.naming.directory.NoSuchAttributeException: [LDAP: error code 16 - GLPRDB050E Attribute ibm-primaryEmail was not found in the schema definition.
]; remaining name 'uid=hayd,cn=users,ou=system,ou=ibm'; resolved object com.sun.jndi.ldap.LdapCtx@f480f48' naming exception occurred during processing.
com.ibm.wps.util.DataBackendException: EJPSG0015E: Data Backend Problem com.ibm.websphere.wim.exception.WIMSystemException: CWWIM4520E The 'javax.naming.directory.NoSuchAttributeException: [LDAP: error code 16 - GLPRDB050E Attribute ibm-primaryEmail was not found in the schema definition.
]; remaining name 'uid=hayd,cn=users,ou=system,ou=ibm'; resolved object com.sun.jndi.ldap.LdapCtx@f480f48' naming exception occurred during processing.
EJPSG0015E: Data Backend Problem com.ibm.websphere.wim.exception.WIMSystemException: CWWIM4520E The 'javax.naming.directory.NoSuchAttributeException: [LDAP: error code 16 - GLPRDB050E Attribute ibm-primaryEmail was not found in the schema definition.
]; remaining name 'uid=hayd,cn=users,ou=system,ou=ibm'; resolved object com.sun.jndi.ldap.LdapCtx@f480f48' naming exception occurred during processing.
CWWIM4520E The 'javax.naming.directory.NoSuchAttributeException: [LDAP: error code 16 - GLPRDB050E Attribute ibm-primaryEmail was not found in the schema definition.
]; remaining name 'uid=hayd,cn=users,ou=system,ou=ibm'; resolved object com.sun.jndi.ldap.LdapCtx@f480f48' naming exception occurred during processing.


SystemOut.log

[6/4/10 12:00:44:209 BST] 00000089 LdapConnectio E com.ibm.ws.wim.adapter.ldap.LdapConnection modifyAttributes(Name name, ModificationItem[] mods) javax.naming.directory.NoSuchAttributeException: [LDAP: error code 16 - GLPRDB050E Attribute ibm-primaryEmail was not found in the schema definition.

When I checked wimconfig.xml the line that mapped the LDAP attribute mail to the WIM attribute ibm-primaryEmail was no longer there.

Therefore, I needed re-run the mapping process: -

./ConfigEngine.sh wp-update-federated-ldap-attribute-config -DWasPassword=passw0rd

Once I restarted the portal cluster, I was back in the game.

Thursday 3 June 2010

Lotus Connections Portlets - Blogging Problems

Hmmm, one of the two Blogs portlets (Blogs rather than Blogs Summary) is generating the following exception in SystemOut.log ( on WP node ): -

....
java.lang.StringIndexOutOfBoundsException
...
ava.lang.reflect.InvocationTargetException
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:79)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:618)
        at com.bowstreet.webapp.engine.actions.MethodAction.callAction(MethodAction.java:90)
        at com.bowstreet.webapp.engine.WebAppAccessImpl.callMethod(WebAppAccessImpl.java:405)
        at com.bowstreet.webapp.engine.WebAppAccessImpl.processAction(WebAppAccessImpl.java:1063)
        at com.bowstreet.webapp.engine.WebAppAccessImpl.processAction(WebAppAccessImpl.java:1163)
        at genjava.lcaccelerator.portlets._BlogPortlet.catchError_Wrapper(_BlogPortlet.java:508)


I've removed and redeployed the portlets from the WAR file snor.pf.portlets.war and checked/double-checked the configuration between the portlet and Connections: -

bpf_config.lcaccelerator.ServiceProperties:blogs_homepage home
bpf_config.lcaccelerator.ServiceProperties:profiles_url http://connections.demo.uk.ibm.com:82/profiles
bpf_config.lcaccelerator.ServiceProperties:service_url http://connections.demo.uk.ibm.com:82/blogs
isPortletConfigured true

but to no avail.

More testing .....

Lotus Connections 2.5.0.1 - Doing Business (Cards) with WebSphere Portal 6.1.5

Following my earlier post: -


the Lotus Connections Information Centre here: -


is quite correct; the URL Specification "merely" needs to be for the fully qualified hostname of ( in my case ) the HTTP load balancer that sits in front of the Connections cluster: -


Having made this change, updated styles.jsp for the stock Portal theme ( and remembered to change the theme for my test page to this, rather than the whizzy new Tab Menu - Page Builder theme via Edit Page Properties ), I still wasn't seeing business cards :-(

I was having another problem with Activities which had led me to look at the fact that my users don't currently have email addresses assigned in LDAP - it looks like the Business Card *AND* Activities functions ( as exposed via the stock portlets ) require this.

I asked my LDAP administrator to add a new user into the LDAP, with the mail attribute populated to a real email address.

Again, no dice.

Final thing - the aforementioned LC Information Centre also states: -

Ensure that the ibm-primaryEmail attribute for WebSphere Portal is mapped to the proper e-mail attribute in your LDAP server. Refer to the topic, Mapping LDAP attributes, in the WebSphere Portal Information Center.

This prompted me to check the WebSphere Identity Manager (WIM) configuration file: -

/opt/IBM/WebSphere/wp_profile/config/cells/cmwputCell01/wim/config/wimconfig.xml

and, lo and behold, there was no mapping between the LDAP mail attribute and the ibm-primaryEmail attribute that the Business Card code was looking for.

I added the mapping into WIM as follows: -

a) Backup and edit wkplc.properties amending the lines: -

federated.ldap.attributes.mapping.ldapName=mail
federated.ldap.attributes.mapping.portalName=ibm-primaryEmail

b) Run the ConfigEngine script: -

./ConfigEngine.sh wp-update-federated-ldap-attribute-config -DWasPassword=passw0rd

monitoring for "BUILD SUCCESSFUL"

c) Validate by checking ConfigTrace.log for: -

[wplc-modify-ldap-attribute-config] UpdateAttMapping ibm-primaryEmail to mail in LDAPUT.
[wplc-modify-ldap-attribute-config] Config saved to /opt/IBM/WebSphere/wp_profile/config/../ConfigEngine/config/work/wimconfig.tmp
[wplc-modify-ldap-attribute-config] Status = Complete
     [echo] Check in modified wimconfig.xml
  [wsadmin] WASX7209I: Connected to process "dmgr" on node cmwputCellManager01 using SOAP connector;  The type of process is: DeploymentManager
  [wsadmin] vmmCheckIn start
  [wsadmin] Replace URI cells/cmwputCell01/wim/config/wimconfig.xml deleted.
  [wsadmin] Create URI cells/cmwputCell01/wim/config/wimconfig.xml
  [wsadmin] vmmCheckIn end
     [echo] Check in modified wimconfig.xml finished
Thu Jun 03 11:03:12 BST 2010
Target started: action-full-sync-nodes

d) Check wimconfig.xml which now contains: -

        <config:attributes name="mail" propertyName="ibm-primaryEmail">

Having done the above, I was able to log into Portal with a LDAP user that DOES have the mail attribute set and see the Business Card appearing as it should.

I also noted that the user with a valid email address appears with a slight underline ( dotted ) underneath their name, whereas users without email addresses have no such underline.

This is similar to the way in which the LiveText widgets work in Lotus Notes - the dotted underline indicates field(s) that do stuff when one hovers over them :-)

Activites is still causing me grief in the portlet - off to fix that now :-)

Lotus Connections Profiles' Business Card appearing in WebSphere Portal - Or not ?

This is one of many W-I-Ps right now, and I'm following the LC Information Centre here: -


and the WP Information Centre here: -


having applied 2.5.0.1-LC-Multi-PROFILES-IFLO46757 ( LC 2501 ) and 6.1.0.3-WP-Multi-IFPM02565 ( WP 6103 ) from Fix Central.

Apart from adding: -

<%@ include file="./styles_people.jspf" %>

to the Portal theme via the following JSP file: -

/opt/IBM/WebSphere/wp_profile/installedApps/wput-1/wps.ear/wps.war/themes/html/Portal/styles.jsp

it's also necessary to create a URL ( via URL providers -> Default URL Provider -> URLs ) with the following properties: -

Name CONNECTIONS_PEOPLE_CARD
JNDI Name JNDI_CONNECTIONS_PEOPLE_CARD
Category CATEGORY_CONNECTIONS_PEOPLE_CARD

This is where the two Information Centres differ - LC says that Specification should be: -


whereas WP says: -


I've tried the WP way, but to no avail - I'm now trying the LC way, and will report back ...

Problems with the Activity portlet

I'm seeing: -

[6/3/10 8:56:01:897 BST] 00000095 ServletWrappe E   SRVE0068E: Uncaught exception thrown in one of the service methods of the servlet: /genjsp/lcaccelerator/portlets/ActivitiesPortlet_myActivitiesMain.jsp. Exception thrown : java.lang.NoClassDefFoundError: com.ibm.connections.directory.services.DSProviderFactory (initialization failure)
at java.lang.J9VMInternals.initialize(J9VMInternals.java:134)
at com.ibm.lconn.lcaccelerator.util.UserUtil.searchForUserByAttribute(UserUtil.java:53)
at com.ibm.lconn.lcaccelerator.util.UserUtil.getCurrentUserEmail(UserUtil.java:138)
...

having deployed the out-of-the-catalog Lotus Connections 2.5 portlets


to my WebSphere Portal 6.1.5 cluster, configured against Lotus Connections 2.5.0.1.

This Technote: -


was of some interest, but relates to group membership in LDAP, whereas my exception relates to ( I believe ) the fact that my Connections users do not currently have email addresses, either in LDAP or in their profile.

Am going to test further ....

Wednesday 2 June 2010

Firewall Fun and Games with Lotus Connections 2.5.0.1 - the journey continues

Following up on my earlier post: -


the problem WAS firewall-related, but it took me a heck of a long time to crack it.

I went down a few blind alleys, including setting up directory service extensions by setting: -

<sloc:serviceReference communities_directory_service_extension_auth="DSX-Admin" communities_directory_service_extension_auth_alias="connectionsAdmin" communities_directory_service_extension_enabled="true" communities_directory_service_extension_href="http://connections.demo.uk.ibm.com:82/communities/dsx/profiles_directory_service_extension_auth="DSX-Admin" profiles_directory_service_extension_auth_alias="connectionsAdmin" profiles_directory_service_extension_enabled="true" profiles_directory_service_extension_href="http://connections.demo.uk.ibm.com:82/profiles/dsx/" serviceName="directory"/>

( One of my colleagues, Gerald Muecke, had blogged mentioning that profiles_directory_service_extension_auth="DSX-Admin" needs to be set regardless of whether you're hiding email addresses )

in LotusConnections-config.xml ( having done the right thing and checked the file out, edited it, checked it back in, and then synchronised the nodes ).

Initially, I was testing with Homepage and Profiles running on a single node of my two-node cluster, with a single HTTP server running, sitting behind the load balancer. I have HTTP running on port 82 because I'm actually hosting three instances of IBM HTTP Server on each of the two web nodes; one for Portal ( port 81 ), one for Tivoli Identity Manager ( port 80 ) and one for Connections ( port 82 ).

I'd even enabled tracing in the WebSphere Plugin, which showed me lots of useful information, but didn't enable me to crack it.

I'd also checked my Virtual Hosts within the DM, and also within the plugin-cfg.xml that's generated by the DM and propagated out to the HTTP servers, but I couldn't see anything awry - the right 90XX ports were in there, as was 82

Having fooled around with DSX-Admin as above, I then decided to start Communities, and test that. Again, I was getting an exception, but it was slightly more meaningful: -

Error 500: ServletException in '/WEB-INF/jsps/html/scenes/dashboard/banner.jsp': com.ibm.connections.directory.services.exception.DSException: com.ibm.connections.directory.services.exception.DSOutOfServiceException: java.net.NoRouteToHostException: No route to host

However, when I inspected the source of that error page, I saw a lot of references to the FQ hostname of the webserver as well as the load balanced hostname that represents the Connections cluster.

The HTTP server listens on port 82, and the Connections features listen on port 9082 ( Homepage ), 9088 ( Profiles ) and 9085 ( Communities ).

On a complete whim, I decided to test, using TELNET, to see whether I could connect FROM the Connections WAS node TO the web server on port 82.

Lo and behold, I saw: -

telnet: Unable to connect to remote host: No route to host

I took a gamble and stopped the IPTables firewall on the HTTP server ( service iptables stop ) and re-tested using TELNET. This time, I was in like Flynn.

I re-tested Connections by hitting Homepage on the load balanced hostname ( http://connections.demo.uk.ibm.com:82/homepage ), logged in ( thus hitting Profiles ) and .... all worked according to plan.

I then went the whole hog and started Activities, Blogs, Dogear, Files and Wikis ( News and Search are sitting on the Homepage cluster ), and ..... EVERYTHING WORKS :-)

The moral of the story ? Firewalls do exactly what they say on the tin - they stop people getting into places that they shouldn't - even if they actually should get in, if you see what I mean :-)

More importantly, despite my understanding to the contrary, WebSphere needs to talk to the HTTP server, not just from the Deployment Manager ( on port 8008 *AND* 82 in my case ), but also from the nodes - on port 82 in my case.

PS These documents: -




were of use with regard to the Plugin.

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