Wednesday, 24 February 2010

WebSphere Portal Search Engine is generating the wrong URLs for Web Content Management (WCM) content

Saw this Flash this morning, and noted that it's relevant to a few portal projects on which I am currently working: -

Abstract

In the  search result, content item links are shown as: http://<hostname>:<port>/wps/mypoc/!ut/p/digest!mIH31snIw5RzMY1Ixn23lQ/wcm/path:%252FWeb_Content%252FHelp%252FWebsite%252FMessages%252FSend+New+Message#
 
Before the upgrade to version 6.1.5/6.1.0.3, content links are shown as: http://<hostname>:<port>/wps/wcm/myconnect/Web_Content/Help/Website/Messages/Send+New+Message#
 
This /wps/mypoc/ is not recognized

Tuesday, 23 February 2010

Lotus Connections: Troubleshooting ...

Some very useful Lotus Connections troubleshooting resources from Rainier Varilla's excellent blog "RV has Parked!" here: -


along with a wealth of other useful Lotus content.

Monday, 22 February 2010

Interesting problem with Sametime Unified Telephony under Lotus Notes 8.5.1 FP1 on Apple Mac OSX

Following an uninstall/reinstall of Lotus Notes 8.5.1 FP1 on my Macbook Pro, I started hitting this error message: -

"Your Sametime computer phone has failed to initialize and is temporarily unavailable"

when trying to use the softphone feature of Lotus Sametime Unified Telephony.

This had been working perfectly for months, so I was a little bit miffed.

However, thanks to some useful forum postings by other sufferers, I was directed to this Technote: -

Softphone TLS initialization problem after updating to Java for Mac OS X 10.5 Update 6


This suggests that there is a Java-related issue with a certificate file, cacert, and directs one to update the file using the keytool command.

Once done ( with Notes STOPPED ), all now appears to be well.

Having pinged this to a few other Mac users, who were suffering with the same problem. Hopefully it'll fix it for them, Jim ....

Wednesday, 17 February 2010

Configuring single sign-on for IBM Lotus Connections in the Kerberos environment

Thanks to my colleague, Stuart Crump, for sharing this: -

In this article, we discuss the configuration of a Kerberos-based single sign-on solution from a Microsoft® Windows desktop to IBM® Lotus® Connections running on IBM WebSphere Application Server.


This dovetails nicely with a similar Wiki post that I'd shared a few weeks back: -

Configuring Microsoft Windows single sign-on for IBM Lotus Connections


It's good to share ...

IBM Support Tools portlet for Lotus WCM

Saw this posted today: -

The IBM Support Tools portlet for Lotus WCM provides an assortment of tools that are useful in troubleshooting content related issues.

This portlet includes tools to view the JCR repository for WCM content, run an xpath query and view results, and directly execute various support jsps. These tools are commonly provided by support on a case to case basis to gather information specific to customer environment and content. With this portlet installed on the WCM system, it will help expedite the troubleshooting process.

The portlet is available for V6.0.1.X and V6.1.X of WebSphere Portal and can only be used on Portals that have WCM installed on them.

Thursday, 11 February 2010

JDBC weirdness with WebSphere Application Server 6.1 ...

Whilst installing and configuring Lotus Connections 2.5, I hit a weird problem with the Blogs service, which refused to start properly.

The SystemOut.log showed a series of database-related SQL errors, which indicated that WAS was not able to correctly authenticate against the back-end DB2 database.

I did the normal thing of logging into the DB2 server and running the commands: -

db2cmd
db2 connect to blogs user lcuser using passw0rd

which validated that the password was correct.

I then logged into the WAS admin console and navigated to Resources -> JDBC -> Data sources, selected the blogs JDBC datasource and clicked 'Test Connection'.

This failed with

java.sql.SQLException: ... Connection authorization failure occurred. Reason: Security mechanism not supported. ERRORCODE=-4214, SQLSTATE=28000DSRA0010E: SQL State = 28000, Error Code = -4214

I then navigated into Security -> Secure administration, applications, and infrastructure -> Java Authentication and Authorization -> J2C authentication data and re-keyed the password for the blogsJAASAuth alias, using the SAME password that I'd used earlier.

Having done this, the 'Test Connection' continued to fail.

Before actually tearing ALL my hair out, I followed the advice of my mentor and yogi, Mr Stephen Hardison Esquire, and restarted the entire WAS infrastructure - clusters ( 3x ), node agent and deployment manager. However, ps auxw still showed that WebSphere JVMs were running, so I killed them with kill -9.

Having then restarted the deployment manager and node agent, I was able to SUCCESSFULLY test the JDBC connection and, when I restarted the clusters, Blogs came back up nicely.

The moral of the story - there's a possibility that WAS ( at least 6.1.0.23 ) somehow "caches" JDBC/JAAS passwords. If in doubt, bounce things, and see what happens ...

Remember, kids, YOUR MILEAGE MAY VARY

Zooming around in Ubuntu

Having been back on Ubuntu 9.10 ( Karmic ) for a few weeks, I've been reacquainting myself with the loveliness that is Compiz.

This includes the ability to be able to zoom in and out of the virtual desktops, in a manner similar to that used in Spaces and Expose on the Mac.

For me, with a UK keyboard on a Thinkpad T60p, the magic keystroke is, by default, is [Windows] + [E], also known as [Super][E].

This zooms OUT like this: -




















I can then select the required desktop, and hit the right-hand mouse button ( button 2 ) to zoom back in to the chosen one.

However, it gets better.

Compiz also includes the ability to zoom in: -




















Again, for me, this is [Windows] + [Button4] which translates to the middle mouse button of the trackpoint on the Thinkpad keyboard.

Having done this, I wasn't sure how to zoom back out, and ended up struggling to restore my desktop.

Thankfully, a quick Sametime chat with my Hursley colleagues http://twitter.com/robhodges and http://twitter.com/spradders managed to save the day.

Having zoomed IN, the trick is to use [Windows] + [E] to return to the many desktops view, and then hit [Esc].

So, in conclusion, here's the magic keystrokes: -

Show MANY desktops        [Windows] + [E]
Go to a desktop                  Select and hit [button2] - right-hand mouse button
Zoom in                              [Windows] + [button3] - middle mouse button ( on Trackpad )
Zoom out                            [Windows] + [E] + [Esc]

When Two Worlds Collide - IBM WebSphere on Ubuntu

Following the shining example of one of my Hursley colleagues, Ben Fletcher, I've recently been using WebSphere Portal 6.1.5 on Ubuntu 9.10 ( Karmic Koala ) on a relatively old Thinkpad T60p.

***Caveat***

This is almost certainly NOT NOT NOT supported by IBM, so be warned :-)

The initial installation of WebSphere Portal Express was troublesome, in that the installer kept failing, with the error: -

/opt/IBM/WebSphere/PortalExpress/AppServer/bin/wsadmin.sh: 116: Bad substitution
which baffled me, until I read Graham Buckell's excellent blog posting here: -

http://www.torkwrench.com/2009/05/04/getting-websphere-portal-to-install-on-ubuntu/

which documents how to change the default shell from dash to bash e.g.

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

At this point, I kicked myself because I'd had a similar problem with Tivoli Directory Integrator on Karmic, which I fixed and blogged about a while back: -

http://www.davehay.f2s.com/2009/12/shelling-out-on-ubuntu-910-karmic-koala.html
http://www.eclipse.org/downloads/download.php?file=/technology/epp/downloads/release/ganymede/SR2/eclipse-jee-ganymede-SR2-linux-gtk.tar.gz
Once I "cracked" this, I was off and running - only to run into a wall with WebSphere Portlet Factory Designer 6.1.5.

Again, the "Blogosphere" came to my rescue, with a pair of excellent articles from Ben: -

http://benfletcher.wordpress.com/2010/01/02/websphere-portlet-factory-6-1-5-on-64-bit-ubuntu-9-10/

http://benfletcher.wordpress.com/2010/01/03/iwidgets-on-ibm-mashup-center-via-websphere-portlet-factory

In essence, I downloaded and installed a nice shiny new copy of Eclipse 3.4.2 ( eclipse-jee-ganymede-SR2-linux-gtk.tar.gz ) from here: -

http://www.eclipse.org/downloads/download.php?file=/technology/epp/downloads/release/ganymede/SR2/eclipse-jee-ganymede-SR2-linux-gtk.tar.gz

and expanded the TAR file ( tar xvzf ) to /usr/share ( thus creating /usr/share/eclipse ).

I then created a symbolic link to the Eclipse binary: -

cd /usr/bin
ln -s /usr/share/eclipse/eclipse .

I then ran the WebSphere Portlet Factory Designer installer, and dropped the WPF binaries into /opt/IBM/WebSphere/PortletFactory/Designer, and "told" the installer where to find Eclipse ( /usr/share/eclipse ).

However, it may have been my "faffing about" but Eclipse still didn't include the WPFD elements when I started it, so I had to perform some more "magic", by clicking Help -> Software Updates -> Add Site and add /opt/IBM/WebSphere/PortletFactory/Designer/eclipse as an installation location.

I'll add some screenshots of this later, but this allowed me to add the WPF features into Eclipse and, after a restart ( of Eclipse, not Ubuntu ! ), I was able to create a WPF project.

However, it was Ben's extra secrets that helped make this totally work: -

a) Adding the line: -

-Dorg.eclipse.swt.browser.XULRunnerPath=/usr/lib/xulrunner

to: -

/usr/share/eclipse/eclipse.ini

to give me: -

-showsplash
org.eclipse.platform
-framework
plugins/org.eclipse.osgi_3.4.3.R34x_v20081215-1030.jar
-vmargs
-Dosgi.requiredJavaVersion=1.5
-Xms40m
-Xmx512m
-XX:MaxPermSize=256m
-Dorg.eclipse.swt.browser.XULRunnerPath=/usr/lib/xulrunner

These effectively set run-time options, and the XULRunner "hack" avoids fatal messages such as: -

java.lang.RuntimeException: Widget disposed too early!

which is a pain.

b) Changing the way that Eclipse launches popup windows to use the older GTK method; this was achieved by "hacking" the environment via a shell script to start Eclipse: -

export GDK_NATIVE_WINDOWS=1
/usr/bin/eclipse

This allows Eclipse to launch windows of its own; without this, you'll find that certain processes will never complete, as the pop-up windows never show up.

So, that's it, we're mostly done.

One thing that did confuse me - I run WebSphere Portal as a root user ( via the sudo su command ), and was running Eclipse as my normal non-root user. This meant that, whilst I could create portlet projects, I couldn't deploy them to WebSphere Portal, and was seeing messages such as: -

creation was not successful for an unknown reason

Once I ran Eclipse as root, all was well.

Footnote: A chap called Curran ( who's based 10 minutes down the road from where I currently sit in Littleton, MA ) has blogged more about Eclipse in Ubuntu here: -

http://lifeofaprogrammergeek.blogspot.com/2008/04/eclipse-java-development-in-ubuntu.html

and has written a script which appears to allow me to start Eclipse as my normal non-root user, but use sudo to allow the Eclipse processes to run as root, which is far more elegant than my approach.

Will try it and report back ...

Wednesday, 10 February 2010

WebSphere Portal and Web Content Management 6.1.5 Information Center highlights

Abstract

IBM Product Development and Product Support will host a Tech Exchange webcast about WebSphere Portal and Web Content Management (WCM) 6.1.5 Information Center highlights on Wednesday, February 17, 2010, at 10:00 a.m. US EST (3:00 p.m. GMT).

Content

IBM® Product Development and Product Support will host a Tech Exchange webcast about WebSphere Portal and Web Content Management (WCM) 6.1.5 Information Center highlights on Wednesday, February 17, 2010, at 10:00 a.m. US EST (3:00 p.m. GMT).
Webcasts are slide presentations by a single presenter followed by Questions and Answers related to the material covered, as time permits.

You can submit a question in advance by posting a new reply to the announcement at http://www.ibm.com/developerworks/forums/thread.jspa?threadID=316304.

Schedule:
Date: Wednesday, February 17, 2010
Time: 10:00 - 11:30 a.m. US EST (3:00 - 4:30 p.m. GMT)
Webcast URL: https://www.lotuslive.com/en/join?schedid=5260580

For more information, please go here: -
http://www-01.ibm.com/support/docview.wss?uid=swg21418576

Tuesday, 9 February 2010

SQL5043N when starting DB2 UDB 9.5 on Windows

Had a strange error today, where DB2 UDB would not start on a Windows 2003 box, having created and set up a new instance.

In essence, we'd created a new instance owner/admin ID under the Windows OS ( Start > Administrative Tools > Computer Management > Local Users and Groups > Users > Action > New User ) - this user was DB2ADMIN2 and was assigned membership of the DB2ADMNS group.

Having done this, we logged into Windows as this new user ( DB2ADMIN2 ), and created a new database instance: -

db2icrt DB2_2 -s ese -u db2admin2 -r 60010,60013

which assigns a port range of 60010-60013 to the new instance, of type Enterprise Server Edition.

Having done this, we added the line: -

db2c_DB2_2 50001/tcp

to C:\Windows\system32\drivers\etc\services.

This sets up port 50001 as the JDBC listener, which makes sense given that the first instance ( DB2 ) is listening on 50000.

We then attempted to start the instance: -

set DB2INSTANCE=DB2_2
db2 update database manager configuration using SVCENAME db2c_DB2_2
db2set DB2COMM=npipe,tcpip
db2stop
db2start

Sadly, the latter command failed with: -

02/09/2010 17:32:34     0   0   SQL5043N  Support for one or more communications protocols failed to start successfully. However, core database manager functionality started successfully.

A quick check with the command: -

netstat -aon | find "5000"

showed that the first instance was listening away happily on 50000, but that the second instance just did not want to start up on 50001.

After much faffing about, my instructor/colleague, Stephen Hardison, asked me to re-edit the C:\Windows\system32\drivers\etc\services file, using Notepad ( of course ), and add an extra Carriage Return (CR/LF) to the end of the file.

Having done this, and saved the file, we ran the commands: -

db2stop
db2start

and, c'est voila, the same netstat command showed that both 50000 *AND* 500001 were listening away merrily.

The moral of the story - don't use Notepad to edit files and ensure that there is an extra CR/LF at the end of the services file.

Simple when you know how :-)

Friday, 5 February 2010

Whitepaper - Driving adoption of Lotus Connections

Thanks to Stuart McIntyre for drawing my attention to this document: -

<snip>

Enterprise social software is gaining practical currency now as analysts' auspicious forecasts begin to be realized with the first wave of early adopters. This new class of software taps informal interactions and relationships among workers with complementary interests, skills, and knowledge, offering new ways to engage the collective intelligence of organizations towards achieving business ends. As such it represents an evolutionary advance in collaboration as a means to higher productivity and competitiveness.

The industry's first integrated suite of enterprise social software, IBM Lotus Connections, became available in June 2007. Featuring five Web 2.0-based components - Profiles, Blogs, Dogear (social bookmarking), Communities, and Activities — Lotus Connections provides a full palette of capabilities that help people find expertise and information and build new relationships based on business needs. Since coming onto the market, sales of this product have continued to be robust. And now there is a growing body of deployment tips and best practices new purchasers can employ to promote steady adoption and productive use of these tools in their own environments.

</snip>

Thursday, 4 February 2010

Resources for administrators and developers - WebSphere Portal 6.1.5

The Portal Wiki has a nice set of resources for administrators and developers, both of which are worth bookmarking, as useful sites to go visit when the need arises.

Creating External Facing Web Sites Using IBM WebSphere Portal

Whilst looking for something completely different ( a performance class for WebSphere Portal ), I found this recently published wiki article: -

This IBM Technote links to a wiki that addresses considerations for creating external facing Web sites by using IBM WebSphere Portal Version 6.1.5. The wiki focuses on areas related to external facing Web sites versus topics that might apply to only internal facing sites.

The wiki begins with a brief overview of the differences between internal and external facing Web sites. Then it provides an overview of the factors that contribute to successful Web sites. Next the wiki provides more technical content related to Web Content Management and Web 2.0 considerations. Next a discussion is presented about the various UI frameworks supported by WebSphere Portal and personalization for the user.

This wiki includes an extensive discussion related to search and the integration of search engines. In particular, Section 8 covers site analytics and optimization. The wiki concludes with information about mobile device support. In addition, this wiki includes examples, window captures, and code samples based on various scenarios.

Wednesday, 3 February 2010

Tuesday, 2 February 2010

IBM WebSphere eXtreme Scale 6 by Anthony Chaves, my closing comments

As per my previous posts here and here,  I completed this book a few days ago, and would summarise my review as follows. This is an excellent book that really digs into the depths of In-Memory Data Grids (IMDGs), with specific focus on the WebSphere product.

The book is broken down into discrete and logical chapters: -

Chapter 1 What is a Data Grid

A good overview of the overall Data Grid approach, with an explanation of the architecture, and its benefits when compared to relational databases and In-Memory Data Bases (IMDBs).

Chapter 2 The ObjectMap API

A deep dive into the core API behind the IMDG concept, with relevant Java code samples

Chapter 3 Entities and Queries

Using the SQL-like Query API to interact with the Data Grid

Chapter 4 Database Integration

Comparing the Data Grid with relational databases, including the costs/benefits e.g. latency of memory access vs. disk access etc.

Chapter 5 Handling Increased Load

How an IMDG can scale up and out

Chapter 6 Keeping Data Available

How availability non-functional requirements can be met with replication

Chapter 7 The DataGrid API

How IMDG breaks the traditional mould of bringing the data to the application, by moving application code back out into the grid, in a manner similar to, but not the same as SQL Stored Procedures

Chapter 8 Data Grid Patterns

How Extreme Transaction Processing (XTP) requirements can be met using the IMDG concept

Chapter 9 Spring Integration

Using the Spring framework to interact with the IMDG, where Javabeans etc. are instantiated by Spring rather than within the Java code itself

Chapter 10 Putting It All Together

Taking a "real world" example application for bookmark storage, management and access, and moving it from a somewhat "kludged" pattern-light model to something a lot more formalised and structured

As per my previous comments, as one might expect, the book is heavy on the Java code, and is likely to be of more use to an enterprise application developer, especially one working with highly-performance transaction/compute-intensive data models, *BUT* the overall architecture, benefits and implementation best practices are clearly established within the book. As an infrastructure architect, I've learnt some important lessons that, although not specifically relevant to the projects on which I'm working right now, are of value now, and almost certainly, in the future.

In conclusion, I'd strongly recommend this book to anyone wishing to explore In-Memory Data Grids, whether they intend to utilise the WebSphere eXtreme Scale platform or not.

Mr Chaves, I thank you :-)

Monday, 1 February 2010

Using WebSphere Portal documentation offline

 I've been trying to use the WP documentation off-line, in preparation for a client project later this week.

The WebSphere Portal 6.1.5 Information Centre is available offline, from this page: -

http://www.ibm.com/developerworks/websphere/zones/portal/proddoc.html

specifically, via this link ( as a ZIP file ).

This ZIP file then references the "...the IBM User Interface Help System built on Eclipse...".

However, when I Google'd for this, I found: -

"...

This technology has graduated.

The IBM User Interface Help System Built on Eclipse framework can be found running help systems within many IBM products. Additionally, the framework is being used to provide information centers for most IBM products. These information centers are available on-line and frequently they are also made available with the product itself to be installed locally.

..."

here: -

http://www.alphaworks.ibm.com/tech/iehs

That wasn't a whole lot of help ...

Thankfully, thanks to one of my colleagues ( thanks, Cali ! ) bookmarking this page: -

IBM User Interface Help System Built on Eclipse

https://www14.software.ibm.com/webapp/iwm/web/preLogin.do?source=AW-0M5&S_PKG=0M5〈=en_US&cp=UTF-8

from where one can download the 8 MB plugin.

In conclusion, I'm hoping that a combination of this: -

http://publib.boulder.ibm.com/infocenter/wpdoc/v6r1/topic/com.ibm.wp.ent.doc_v615/com.ibm.wp.ent.doc_v615.zip

and this: -

http://www.eclipse.org/downloads/

and this: -

https://www14.software.ibm.com/webapp/iwm/web/preLogin.do?source=AW-0M5&S_PKG=0M5〈=en_US&cp=UTF-8

will do the job.

More to follow ...

WebSphere Portlet Factory Designer 6.1.5 - The Icon ...

Whilst setting up my "new" Red Hat Enterprise Linux 5 portlet development machine, I wanted to create a few desktop launchers for those occasional moments when I'm running X11.

For one of my launchers, for WebSphere Portlet Factory Designer, I was looking for, and failing to find, the appropriate "old skool" Bowstreet Portlet Factory Designer icon.

Thanks to my work colleague, and all round good bloke ( who does a LOT of good work for charity ), Mr Mike "@spradders" Spradbery, I found the icon path to be as follows: -

/opt/IBM/WebSphere/PortletFactory/Designer/eclipse/plugins/com.bowstreet.designer_6.1.5/Builder.gif

so my launcher looks as follows: -

[Desktop Entry]
Version=1.0
Encoding=UTF-8
Name=WebSphere Portlet Factory Designer
Type=Application
Terminal=false
Exec=/root/startWPF.sh
Name[en_US]=WebSphere Portlet Factory Designer
Icon=/opt/IBM/WebSphere/PortletFactory/Designer/eclipse/plugins/com.bowstreet.designer_6.1.5/Builder.gif

Note to self - use kubectl to query images in a pod or deployment

In both cases, we use JSON ... For a deployment, we can do this: - kubectl get deployment foobar --namespace snafu --output jsonpath="{...