The eagle-eyed among you may have noticed that Safari was missing from my previous post about Adding IBM Connections Search to Your Browser, but Safari users can now join the party thanks to this tweet from David Simpson:
1. Download and install Safari OmniBar from http://hackemist.com/SafariOmnibar/
2. Launch Safari, select any text in the address bar and right-click to select Edit OmniBar Search Providers
3. Click the (+) button to add a new search provider and enter values for Search Provider, Keyword and URL, e.g.
Search Provider: Greenhouse Connections Keyword: green URL: https://greenhouse.lotus.com/search/web/search?personalOnly=false&components=&component=&query={searchTerms}&tag=&nonperson=&person=&fieldvalue=
NB: The value for the query parameter is {searchTerms} as this is the value that Safari OmniBar will substitute for the search term you enter when you use the search.
NB: After you have entered values for Search Provider, Keyword and URL hit <ENTER> before clicking Done as otherwise OmniBar doesn’t save the URL value.
Now if you type green followed by a <SPACE> in your Safari address bar the bar will change to:
and you can type your search term and hit <ENTER> to search Greenhouse Connections content without having to visit Connections first. E.g. green<SPACE>test<ENTER> will search Greenhouse for all Connections content containing the word test.
You can use whatever you want for the Keyword in your Safari OmniBar search preferences and if you have access to more than one Connections implementation you can add as many search engines as you wish, just using a unique Keyword for each implementation and changing the URL to match the relevant implementation, e.g.:
For those of your lucky enough to be heading to Lotusphere 2012 in January you may find it useful to keep track of sessions while you’re on the move by downloading some of the mobile apps that are available.
If you find yourself with some free time – which if you do, you’re not doing Lotusphere properly – you could also check out Mousewait for iPhone and Android for attraction waiting times, restaurants, menus, park guides, etc.
Hope you all have fun at Lotusphere just don’t hog the mic at Kimonos
I’ve been playing around with IBM Connections search recently and discovered that you can add the ability to search for content stored in IBM Connections directly from your browser by using the URL that IBM Connections uses for Advanced Search:
1. Select Chrome -> Preferences -> Basic -> Search -> Manage Search Engines 2. Scroll to the bottom of your Other search engines list and enter values for the Description, Keyword and Search URL, e.g.
Description: Greenhouse Keyword: green URL: https://greenhouse.lotus.com/search/web/search?personalOnly=false&components=&component=&query=%s&tag=&nonperson=&person=&fieldvalue=
NB: the value for the query parameter is %s as this is the value that Chrome will substitue for the search term you enter when you use the search.
Now if you type green followed by a <SPACE> in your Chrome address bar the bar will change to:
and you can type your search term and hit <ENTER> to search Greenhouse Connections content without having to visit Connections first. E.g. green<SPACE>test<ENTER> will search Greenhouse for all Connections content containing the word test.
You can use whatever you want for the Keyword in your Chrome search preferences and if you have access to more than one Connections implementation you can add as many search engines as you wish, just using a unique Keyword for each implementation and changing the URL to match the relevant implementation, e.g.:
In theory you should be able just log in to Connections and right-click in the Connections search box to select “Add a Keyword for this Search” and/or “Add to Search Bar”, but while these do add options for searching Connections to Firefox, for some reason the searches never return any results. Fortunately adding these options in manually does work and here’s how to add them:
Adding Connections to the Firefox Search Box
The most reliable way I found of adding Connections search to the Firefox search box and have it return results was to create an OpenSearch description file and install this in Firefox’s searchplugins folder. An OpenSearch description file is an XML file that is used to describe a search engine so that it can be used by client search applications and an example of a description file for searching IBM Connections on Greenhouse is given below:
To adapt the description file for your Connections implementation just change the values in bold to the relevant values for your implementation and save the file with a meaningful filename (e.g. connections-search.xml) in your <Firefox Installation Directory>/searchplugins/ folder. Examples of default installation directories on various operating systems can be found at http://kb.mozillazine.org/Installation_directory
A complete OpenSearch description file for searching IBM Connections on Greenhouse, including base64 data for a thumbnail image, can be downloaded here. Save the connections-search.xml file to your <Firefox Installation Directory>/searchplugins/ folder and restart Firefox.
After installing the OpenSearch descriptor file into your copy of Firefox you should now have an option for searching Connections from your Firefox search box:
You can also make OpenSearch descriptor files available for users to easily add to their Firefox browsers by uploading the XML to the web and adding an embedded link to the <head> of your web page:
This used to be easier to add in earlier versions of Firefox when you were given an option to provide a Keyword when you bookmarked a page, but that option seems to have disappeared in favour of adding tags to your bookmarks. You can still add Keywords to use as search shortcuts, but it now takes a few extra steps:
1. Copy the following URL into your Firefox address bar, substituting greenhouse.lotus.com for the Connections implementation you wish to add as a search:
2. Select Bookmarks -> Bookmark This Page and give it a meaningful name, e.g. Greenhouse Connections Search 3. Select Bookmarks -> Show All Bookmarks -> Recently Bookmarked and select the bookmark you just added 4. Edit the URL and replace “query=test” with “query=%s”, e.g.
5. If the Keyword field is not shown click the Down button to the bottom left of the Tags field to display the Keyworld field 6. Enter a relevant Keyword that you wish to use as a shortcut for this search, e.g. green
Now you should be able to enter your Keyword followed by a <SPACE> and your search term directly in the Firefox address bar, e.g. green<SPACE>test<ENTER>:
Instructions for Internet Explorer
Internet Explorer also uses OpenSearch to add search engines to its search providers, but it’s a little bit fussier than Firefox about the format of the file you provide. An example of an OpenSearch descriptor file for Connections on Greenhouse is:
Note that you provide all of the URL parameters directly in the <Url> element rather than providing separate <Param> elements and because all of the parameters are now provided in the <Url> element they need to be escaped with & Internet Explorer also does not like the method=”post” attribute as part of the <Url> parameter, but it works without this attribute. Again you substitute the values in bold for the values that are relevant for the Connections implementation that you wish to add as a provider.
Once you have created your OpenSearch descriptor file (an example is available for you to download here) you can make it available for users to install by uploading your XML file to the web and either:
After installing the search provider into Internet Explorer you should now have an option to search Connections from IE’s search bar:
Providing ways for users to add Connections search to their browsers should make it easier for people to search and engage with content that is stored in your Connections implementations so I hope you find this useful. If you have any other tips or shortcuts for adding search to different browsers please feel free to drop me a line via the comments.
This week we finally got to the bottom of a problem that’s been a bit of a head scratcher for the last 4-6 weeks.
Our enterprise portal (WebSphere Portal 6.0.1.3) had been standing up just fine with a user base of 30,000 users for over 12 months, but about 4-6 weeks ago it started exhibiting a behaviour I dubbed the “Portal Wibble Dance”.
What is the Portal Wibble Dance?
The Portal Wibble Dance is where individual portal nodes started dropping in and out of service with alarming regularity and my inbox resembled a train wreck with thousands of the following alerts:
“node 1 is down” “node 2 is down” “node 1 is up” “node 1 is down” “node 3 is down” “node 2 is up” “node 3 is up”
Luckily we have a 4-node cluster and we weren’t getting any service outages as at least one node remained up at any one time when the other’s were “wibbling”.
So Nodes were Crashing?
Didn’t look like.
Notifications that nodes were back up were too quick to suggest that nodes were actually crashing – anyone who’s worked with WebSphere Portal knows there’s no way a node can restart in 30 seconds – so it looked like the nodes were just slowing down enough for our Netscaler load balancers to mark them as down.
What the Hell is a Netscaler?
The fact that we use Citrix Netscalers as opposed to IBM Edge Servers to load balance has confused people who’ve worked on our infrastructure and are not used to heterogeneous environments. So an explanation.
Citrix Netscalers are hardware load balancers that balance the traffic to the 4 IBM HTTPD (IHS) Servers. It sends a GET request to /wps/portal and if it doesn’t get a response within 10 seconds it flags a potential problem with that server. If it gets 3 failed attempts in a row for a server then it flags that server as down and stops sending traffic to it. The Netscaler then waits 30 seconds and tries the flagged server again. If it gets a response within 10 seconds then it flags the server as up and starts sending traffic to it again.
I get the above email alerts for each “down” and “up” flag and I was getting alerts too frequently for it to be portal restarts.
So Was There Anything in the Logs?
Boy, was there. When portal was “wibbling” it was ripping through 15MB of log files in about 45 seconds – guess that might have had something to do with the slowdowns
There were thousands of the following errors repeating in the log files:
"IWKPC1007X: Could not find an identity for name (resolved reference key): null"
"IWKPY1015X: Unauthorised access by .... "
"Exception is: com.ibm.db2.jcc.c.SqlException: Application must execute a rollback. The unit of work has already been rolled back in the database..."
So What Was the Fix?
I managed to get a fix for IWKPC1007X from IBM Support. It was a known issue which was documented at http://www-01.ibm.com/support/docview.wss?rs=688&uid;=swg1PK60885 , but the TechNote seems to have been withdrawn. I believe fix PK60885 is rolled in to 6.0.1.4 and above, but if you get the above error then request the fix direct from IBM Support.
So That Fixed Everything?
Wish it was that simple, but portal was still doing the “wibble dance”, I just had one less error, but it did make it easier to spot:
SESN0016E: DatabaseSessionContext:performInvalidation detected an error. The database invalidation of timed out sessions has encountered an error..
pointing to a problem with the Session Database, but from the database side of things the DB looked fine, no errors, nothing.
So What Was the Real Fix?
Reducing the individual errors eventually led us to a repeating error with the IBM Web Clipping portlet, which we use to surface our password management application in portal using an IFRAME – yes I know IFRAMES are bad and I hang my head in shame.
Looks like there is a session management problem with IFRAMES and what I hadn’t realised was that there had been a policy decision to push everyone to portal for password management, which increased the load on the Web Clipping portlet, increased the session management problem, and started causing enough errors to slow down portal enough for the Netscaler to keep dropping nodes out of service.
Our fix for the time being is to disable persistent sessions completely, and we’re slowly going to be removing all Web Clipping/IFRAME portlets.
Parting Shot
Don’t use IFRAMES kids, they’re not big and they’re not clever. They’re a cheap integration point for a proof of concept, but they will bite you in the ass if you roll them into a production environment.