Wednesday 30 September 2009

Wednesday 23 September 2009

Using Sametime Links within a simple portlet

Whilst helping a colleague prepare for a Portal demo, we had one final hurdle to climb; how to enable Sametime awareness for a generic user e.g. Customer Services Rep, without needing to deploy the normal Sametime Contact List or Who Is Here portlets.

I knew this was possible, and think I'd actually done it in the past - however, I couldn't find any notes or blog postings, so had to start again.

Having previously set up Portal and Sametime integration, it was a relatively simple matter - I chose to use the Q&D approach of creating a JavaServer Page (JSP) file, and then rendering it on the portal page using the out-of-the-box Blurb portlet.

This is the portlet that IBM uses throughout WebSphere Portal to present simple messages, including the "Welcome to WebSphere Portal" portlet that has been deployed in WebSphere Portal for the past few releases.

To achieve this, I created a file called sametime.jsp and deployed it in the Blurb portlet's JSP directory: -

\IBM\WebSphere\wp_profile\installedApps\starg\PA_Blurb.ear\Blurb.war\jsp\html\en

Here's the source of sametime.jsp: -

<html>
<head>
<link rel="stylesheet" href="http://stargate.uk.ibm.com/sametime/stlinks/stlinks.css" type="text/css" />
<script type="text/javascript" src="http://stargate.uk.ibm.com/sametime/stlinks/stlinks.js">
</script>
<script type="text/javascript" >
setSTLinksURL('http://stargate.uk.ibm.com/sametime/stlinks/', 'en');
STHost = 'stargate.uk.ibm.com';
writeSTLinksApplet('ibm','',false);
</script>
</head>
<body>
<script type="text/javascript">
writeSametimeLink('CN=domadmin,O=ibm', 'Portal Admin', false, 'icon:yes;');
</script>
</body>
</html>

As you can see, we're using JavaScript tags to specify the Sametime server ( in order to get both the Cascading Style Sheet and JavaScript code for the Sametime Links API, as well as to actually connect to Sametime ).

The value specified in the writeSTLinksApplet() call sets the domain from which the outgoing Sametime chat will be displayed e.g. when clicking on the Sametime link, a chat session will be opened up FROM ibm/Guest.

Finally, the value specified in the writeSametimeLink() call sets the Sametime user to whom we want to send the ST message - in our demo, this will a user such as Customer Services Rep or something similar.

Make sense ?

I have to admit that I borrowed much of the above JS coding from Daniele Vistali's most excellent blog post here: -

WSADMIN saved my metaphorical bacon

We hit a problem earlier today where, due to some weirdness caused by a LTPA token export (?), the WAS server underlying Lotus Quickr Services for WebSphere Portal ( WebSphere_Portal ) failed to start.

Worse still, we also were not able to start the server1 instance, meaning that we couldn't get back into the admin. console to resolve the problem

Thankfully, this Technote got me out of the hot water: -


In essence, you simply disable security for WAS: -
  • cd $WAS_HOME/bin
  • Run: -
wsadmin -conntype NONE
  • Wait until wsadmin responds

  • Issue the securityoff command (no space between security and off)

  • Issue the exit command.
Job done. We were then able to start server1 and resolve the security problem ( we actually ended up re-running the ConfigWizard script to re-enable LDAP security ).

Friday 18 September 2009

WebSphere Portal and Lotus Web Content Management performance tuning guides and supplemental content

More useful WP / WCM knowledge: -

"...This technote provides abstracts and links to WebSphere Portal performance tuning guides. Best Practice is to starting with the Tuning Guide(s) provided for your release. The IBM performance test teams develop the tuning guides and they are based on performance testing and analysis. 
Then, refer to the supplemental information provided in developerWorks articles, articles published on the WebSphere Portal Family wiki, and other resources noted in the Additional resources section of this technote..."


All brought to you by me, thanks to the power of Twitter :-) and the number 73

Support Content Highlight for WebSphere Portal/WCM (September 2009)

A useful consolidated set of support documents etc. for Portal / WCM, now available online here: -

"....This document contains links to technical support documents for IBM WebSphere Portal that are frequently requested or identified by IBM as valuable for the time period covered by this notification. This is key information to help you derive the most value from your software licenses, find answers to common questions, and work through current issues that might affect your environment..."

Learning WebSphere Portal Family Products

A good range of self-study WP learning links here: -



Sweet, like a caramel latte

Thursday 17 September 2009

Preventing WCM from generating sessions when content is accessed anonymously

Earlier today, I had a call from a friend who was trying to work out why he was seeing 000s of sessions created on his Portal/WCM delivery server when content was being accessed anonymously, via the WCM servlet, using the URL /wps/wcm/connect ( as opposed to /wps/wcm/myconnect ).

As I started to dig into the problem, he called me back and confirmed that he'd resolved it by creating a new Custom Property, public.session=false, for the WP_NavigatorService.

He's done a far better job of explaining it here: -


Ironically, I was on my way to the same solution, albeit from a slightly different direction - I found this: -


which refers to the same Custom Property.

Wednesday 16 September 2009

"Enter password for default keyring to unlock"

Every time I change my Ubuntu machine's password, I fall into this trap - when Ubuntu tries to get at the default keyring to access the key for my wireless network, it tries to use the NEW OS password to access the keyring, and throws up this error: -

Enter password for d
efault keyring to unlock

This occurs because the keyring has been locked with the old OS password.

The solution ?
















  1. Choose Applications -> Accessories -> Passwords and Encryption Keys ( or simply run the command seahorse )
  2. Navigate to the Passwords tab
  3. Select the Passwords: login link
  4. Click the right mouse button
  5. Choose Change Password
  6. Enter the OLD OS password
  7. Enter the NEW OS password - twice
  8. Click the Change button
  9. Close the Passwords and Encryption Keys applet

Hmmmmmmmmm, Mapalicious

Thanks to the power of Twitter, I just came across this: -

IBM Custom Content Assembler

Have you ever wished you could customize the information that comes with a product?

This application provides you with the unique ability to create custom documents by selecting the information you want to keep. Once you are done customizing you can output a PDF or HTML file that only includes the information you select ...

https://info2.lotus.com/mapalicious/home

Includes DAOS for Notes and Domino 8.5, Lotus Quickr Services for Lotus Domino 8.2 and Lotus Sametime Advanced 8.0.1.

Tuesday 15 September 2009

Problems with 32-bit Lotus Forms Server API on 64-bit JVM

A few months back, I blogged about my experiences with Lotus Forms 3.5 and WebSphere Portal 6.1 together.

During that project, I hit a related problem whereby we were unable to get the sample portlets to render properly - we were attempting to render a portlet from a remote Webform server.

To cut a long and painful (!) story short, the problem was that we were trying ( unbeknown to me ) to run the Java APIs on a 64-bit JVM. Given that the Java byte code interacts with some native OS binaries, this was never going to work.

The key message ( in SystemOut.log ) was: -

Did not realize init() exception thrown by servlet Translator: java.lang.UnsatisfiedLinkError: pe_cc (/usr/lib/libpe_cc.so: wrong ELF class: ELFCLASS32.)
at java.lang.ClassLoader.loadLibraryWithPath(ClassLoader.java:981)
at java.lang.ClassLoader.loadLibraryWithClassLoader(ClassLoader.java:950)
at java.lang.System.loadLibrary(System.java:453)
at com.PureEdge.DTK.<clinit>(Unknown Source)
at java.lang.J9VMInternals.initializeImpl(Native Method)
at java.lang.J9VMInternals.initialize(J9VMInternals.java:194)

This Technote: -


describes a similar symptom.

The solution - it's not possible to use the Lotus Forms Server products on a 64-bit JVM - this MAY change in a future release, but it ain't going to work in the short-term.

Wednesday 9 September 2009

Again, Google has the answer, Google is my friend ...

Whilst installing Sametime 8.0.2 onto Domino 8.0.2 on one of my demo machines, I kept hitting this error: -
The install detected that the Domino server ID is password protected. This password is required to complete the Sametime server configuration. Enter the password, and choose Next to validate the password.
I've not seen this before - I even tried setting a password on the offending ID file ( \Lotus\Domino\data\server.id ) using a Notes 8.5 Basic client, but to no avail.

As always in these situations, a quick Google search brought up Dan Silva's blog post: -

http://dansilva.org/2008/01/help-needed-sametime-8-server-installer-says-serverid-has-a-password.html

which recommended setting an environment variable - STSkipDominoPasswordCheck=true - to force the installer NOT to check for a password.

I did this and restarted the ST installer and .... it worked like a dream.

It's also worth noting that I could have achieved the same objective by starting the installer with a command line switch: -

\temp\sametime\Server\setupwin32.exe -V STSkipDominoPasswordCheck=true

Perhaps I'll try this next time ...

Friday 4 September 2009

Portal V6.1 Performance Tuning Open Mic Call on September 23, 2009

I saw this notification via an internal email last week, but have also seen it announced via a more modern channel - Twitter - via the PortalSupport account ( http://twitter.com/PortalSupport ).

For more details on the Tuning call, please go here: -

Thursday 3 September 2009

Obsession ( no, not the bloomin' perfume from Marks and Spencer )

Those of you who knows me, or follow me on Twitter, may have noticed
that I have been inordinately obsessed with a particular subject this
past few months - no, not WebSphere, not even coffee, not even driving
my MC topless, I'm talking about Battlestar Galactica.

Having just finished the fifth season of the show ( which is frakkin'
A-W-E-S-O-M-E ), I've been Googling around for related content,
including a certain Mr Hendrix playing "All Along the Watchtower" and
a certain Mr Glass with "Metamorphosis: One".

Today, I found the mother lode here: -




I don't think it contains any spoilers, but it'd help to have watched
all/some of the show before watching this clip ...

Enjoy

Rational Application Developer 7.5 - Portal Toolkit in five parts

A nice set of five articles showing how the Portal Toolkit in Rational Application Developer 7.5 works: -

This article is the first in a five-part series. It provides an overview of the new features of IBM Rational Application Developer Version 7.5 Portal Toolkit. Because this overview deals with the enhancements made since the previous version, knowledge of Rational Application Developer V7.0 is very useful, although not mandatory. 


IBM WebSphere Portal Version 6.1 introduces new features, such as client-side aggregation, Friendly URLs, and static page aggregation. WebSphere Portal V6.1 provides new themes, which include a Web 2.0-based theme. IBM Rational Application Developer Version 7.5 provides the tooling support for these new features. This article describes these features and tools.


This article describes the Web 2.0 tooling support introduced in IBM Rational Application Developer Version 7.5 for portlet and portal applications running on IBM WebSphere Portal Version 6.1 and higher. To help you understand this tooling support better, the author also discusses the basics and benefits of the Web 2.0-based technologies.


With static page aggregation, you can create portal pages from static HTML layouts or templates in an IBM WebSphere Portal Version 6.1 project. This article guides you through the step-by-step process of creating, designing, customizing, and aggregating such static layouts by using IBM Rational Application Developer Version 7.5, targeting the portal server runtime environment. You do not need to know a lot about the underlying portal APIs to follow the steps in this article.

This article walks you through the creation of a sample JSR 286 basic portlet application using the Portal Toolkit in IBM Rational Application Developer Version 7.5. In the process, it explains how the Portal Toolkit expedites the whole process to leverage these capabilities. Detailed instructions show how to enable events and public render parameters by using the new event wizard and the enhanced portlet deployment descriptor visual editor.


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