Connections 4.0 – Metrics and CR2

There is an issue with displaying Metrics within IBM Connections 4.0 if your servers are in the GMT timezone, the effect of which is that Metrics are simply not displayed (as shown in the screen shot below).

Screen Shot 2013-02-06 at 11.06.01

There is a fix for this issue, ifix LO72778,  but after installing CR2 I found the problem re-occurred. To resolve it I realised I would need to re-apply ifix LO72778 which meant I had to do the following:

1. Uninstall the Metrics component of CR2 (LO72170-IC4000-CR02-Metrics)
2. Uninstall ifix LO72778
3. Install the Metrics component of CR2 (LO72170-IC4000-CR02-Metrics)
4. Install ifix LO72778.

What I should have done (and have done subsequently) is uninstall ifix LO72778 before installing CR2 and then re-install it after CR2.

 

Connections 3.0.1 Fix Pack 1 installation issue

During the installation of fix pack 1 for IBM Connections 3.0.1 I had an issue with the upgrade of the News application.
One of the (many) good things about Connections is that it writes a separate insallation/upgrade log for each application which really helps narrow down the search for the cause of installation/upgrade issues, so in this instance I opened the newsUpdate.log (located in /opt/IBM/LotusConnections/logs) and found the following:

 [exec]   [wsadmin] An unexpected exception was thrown.  Halting execution.
 [exec]   [wsadmin] Shutting down workbench.
 [exec]   [wsadmin] Error executing deployment: java.lang.IllegalStateException. Error is Platform not running.
 [exec]   [wsadmin] java.lang.IllegalStateException: Platform not running
 [exec]   [wsadmin]      at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:374)
 [exec]   [wsadmin]      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 [exec]   [wsadmin]      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:60)
 [exec]   [wsadmin]      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
 [exec]   [wsadmin]      at java.lang.reflect.Method.invoke(Method.java:611)
 [exec]   [wsadmin]      at com.ibm.etools.ejbdeploy.batch.impl.BootLoaderLoader.run(BootLoaderLoader.java:494)
 [exec]   [wsadmin]      at com.ibm.etools.ejbdeploy.batch.impl.BatchDeploy.execute(BatchDeploy.java:114)
 [exec]   [wsadmin]      at com.ibm.etools.ejbdeploy.EJBDeploy.execute(EJBDeploy.java:107)
 [exec]   [wsadmin]      at com.ibm.etools.ejbdeploy.EJBDeploy.deploy(EJBDeploy.java:348)
 [exec]   [wsadmin]      at com.ibm.etools.ejbdeploy.EJBDeploy.main(EJBDeploy.java:310)
 [exec]   [wsadmin] EJBDeploy level: @build@
 [exec]   [wsadmin] ADMA5008E: The EJBDeploy program failed on file /tmp/app7307803356142343542.ear. Exception: com.ibm.etools.ejbdeploy.EJBDeploymentException: Error executing EJBDeploy
 [exec]   [wsadmin] ADMA0063E: An error occurred during Enterprise JavaBeans (EJB) deployment. Exception: com.ibm.etools.ejbdeploy.EJBDeploymentException: Error executing EJBDeploy
 [exec]   [wsadmin] ADMA5011I: The cleanup of the temp directory for application News is complete.
 [exec]   [wsadmin] ADMA5069E: The installation of application News failed. This application was in the middle of a full update and therefore is uninstalled from the configuration session. Discard your current configuration session immediately to recover the application. Do not save changes to the WebSphere Application Server configuration repository. The application is not uninstalled from this repository. Until the current configuration session is discarded you do not see this application in the current session.
 [exec]   [wsadmin] WASX7017E: Exception received while running file "/opt/IBM/LotusConnections/ConfigEngine/config/work/was/EarUpdate.jacl"; exception information: com.ibm.ws.scripting.ScriptingException: WASX7418E: Application update for News failed: see previous messages for details.

After some investigation I eventually found a technote ( EJB Deploy Error: java.lang.IllegalStateException: Unable to acquire application service ), which whilst not directly relating to Connections, looked as though it could help resolve the issue.

The technote says “The problem may occur when Enterprise JavaBeans Deploy is updated as part of a Fix Pack install and there are files in the EJB Deploy configuration directory from the previous EJB Deploy install.” and the recommended fix is to delete the contents of the EJB Deploy Configuration directory.

As I was fortunate enough to be doing the install on virtual machines I reverted to the snapshots taken just prior to starting the upgrade, then removed the contents of the EJB Deploy Confiuration directory (/opt/IBM/WebSphere/AppServer/profiles/Dmgr01/ejbdeploy/configuration) and re-ran the installation of fix pack 1, which this time completed successfully.

DB2 Control Center launch issue on Windows 2008 Server

I came across an issue recently where the DB2 Control Center was hanging when trying to start it on a Windows 2008 Server. The splash screen would appear and then just sit there. Looking at Task Manager I could see a process – db2javit.exe – consuming nearly 100% of the CPU so I decided to kill it before it became an issue (thankfully the server was not in production at this stage) at which point the DB2 Control Center started.

After a couple more tests I discovered that, rather than killing the db2javit.exe process to get the Control Center to load, if I right-clicked on the DB2 Control Center icon and selected ‘Run As Administrator’ it loaded without an issue.

Don’t fall foul of IBM’s trademark

OK, sorry the headline is far more dramatic than the content of the article, but I promise it is relevant.

Whilst upgrading a Connections environment to 3.0.1 using a response file I got the following error:

Invalid byte 1 of 1-byte UTF-8 sequence.
00:00.34 ERROR [main] com.ibm.cic.agent.internal.application.HeadlessApplication run
Invalid byte 1 of 1-byte UTF-8 sequence

 

After a quick check of the response file and I could see a strange character (a black diamond with a white question mark in it) being displayed to the right of IBM on one of the lines:

<profile installLocation=’/opt/IBM/LotusConnections’ id=’IBM� Lotus Connections’>

What should actually be displayed is the registered trademark symbol (an R in a circle), like so:

<profile installLocation=’/opt/IBM/LotusConnections’ id=’IBM® Lotus Connections’>

So, I corrected this and re-ran the upgrade but I got exactly the same error. What I had missed (at the bottom of the response file) was another instance of the registered trademark symbol, which was also being displayed as a black diamond with a white question mark in it:

<offering profile=’IBM� Lotus Connections’ version=’3.0.1.0_20110317_1432′ …..

Once I’d corrected that line as well the upgrade ran successfully. I’m not sure what caused the issue and I’ve not been able to recreate it but I suspect that the file was edited/saved by something like MS Word that changed its formatting.

IBM Connections – Incorrect Global Moderation Alerts

I’ve been working with a customer recently on Moderation within IBM Connections 3.0.1 and we discovered an issue where alerts are being sent to Global Moderators when they shouldn’t.

In this scenario pre-moderation (content approval) is disabled but post-moderation (content flagging) is enabled and Blog owners (both Community and standalone) are allowed to moderate comments on their blogs.

If a Blog owner enables moderation on comments then they will receive a notification asking them to approve (or not) comments when they are submitted. The problem is that the Global Moderators also receive this notification which they shouldn’t (as pre-moderation is disabled).

There is now an iFix available to resolve this (LO64314) which is well worth applying to avoid your Global Moderators getting emails asking them to approve comments they can’t even access.

Notes from upgrading IBM Connections (part 3) – Non-root user install problems

If you need to install Connections 3.0.1 Fix Pack as a non-root user there are a couple of additional steps that are not in the IBM Connections Wiki article Installing Fixes as a non-root user.

 
Non-root Install

To do a non-root install of the Connections 3.0.1 Fix Pack you need to change the -accessRights from admin to nonAdmin in the following files:

/opt/IBM/InstallationManager/eclipse/silent-install.ini
/opt/IBM/InstallationManager/eclipse/launcher.ini

 

If you don’t make this these changes and you attempt to run the install you’ll see an error like this:

Administrator privileges are required.
00:00.49 ERROR [main] com.ibm.cic.agent.internal.application.HeadlessApplication run
Administrator privileges are required.

 

How to install the Connections 3.0.1 Fix Pack as a non-root user if the initial install had been done as root

If the initial install was done as root and then ownership changed to a non-root user, as well as making sure that the <app_server_root> , the <lotus_connections_root> and the <data_directory_root> directories are owned by the non-root user you need to change ownership of the Installation manager directories, e.g.

/opt/IBM/InstallationManager/
/opt/IBM/SSPShared/
/var/ibm/InstallationManager

You also need to copy the Installation Manager registry file from :

/etc/.ibm/registry/InstallationManager.dat to
/home/<non-root user>/etc/.ibm/registry/InstallationManager.dat

 

If you don’t make these changes and you attempt to run the install you’ll see an error like this:

The Installation Manager cannot be started.The registry information does not exist or does not match with this executable.This may happen if you are trying to run Installation Manager installed by another user.
00:00.85 ERROR [main] com.ibm.cic.agent.internal.application.HeadlessApplication run
The Installation Manager cannot be started.The registry information does not exist or does not match with this executable.This may happen if you are trying to run Installation Manager installed by another user.

Notes from upgrading IBM Connections (part 2) – Response file problems

If you’re doing a silent install of the Connections 3.0.1 Fix Pack then you need to add some additional lines to the response file which should be there but are missing (unfortunately this IBM technote was not published when I encountered the issue - https://www-304.ibm.com/support/docview.wss?mynp=OCSSYGQH&mync=E&uid=swg21504396&myns=swglotus )

The following lines are missing from both the response files provided with the Connections 3.0.1 Fix Pack, LC_update.rsp and LC_update_linux.rsp

 

<data key=’user.activities.new.add’ value=’false’/>
<data key=’user.blogs.new.add’ value=’false’/>
<data key=’user.communities.new.add’ value=’false’/>
<data key=’user.dogear.new.add’ value=’false’/>
<data key=’user.profiles.new.add’ value=’false’/>
<data key=’user.wikis.new.add’ value=’false’/>
<data key=’user.files.new.add’ value=’false’/>
<data key=’user.forum.new.add’ value=’false’/>
<data key=’user.mobile.new.add’ value=’false’/>
<data key=’user.moderation.new.add’ value=’true’/>

 

If you don’t add these lines and attempt the upgrade then Activities, Blogs, Communities, Bookmarks, Profiles, Files, Wikis, Forums and Mobile will not be upgraded. In the installation log ( update.log ) you will see the following entry.

 

<info>

Update results :

News updated successfully.

Search updated successfully.

Home page updated successfully.

Install results :

Moderation installed successfully.

</info>

Notes from upgrading IBM Connections (part 1) – Files sidebar plugin not working

After upgrading a few IBM Connections environments from 2.5 to version 3 (and 3.0.1) I thought I’d better make some notes on a couple of issues I’ve come across (which will hopefully be useful to other people and help me to remember).

The first issue I’d like to describe is where after upgrading I was initially unable to get the Files sidebar plugin for Lotus Notes working.

The error I was getting was “Cannot connect to the Connections server. Either the URL is incorrect, the server is down, or a firewall may be preventing you from reaching the server. Check the URL, your firewall settings and the server status and try again.

After first checking the obvious – username, password and Connections URL (which were all OK) the next place to check was the HTTP server logs as the error implied that the server was unreachable. In the access_log on the IBM HTTP server I could see numerous entries like the one shown below:

192.168.233.131 – - [16/Jul/2011:14:27:50 +0100] “GET /files/basic/api/introspection?format=XML HTTP/1.1″ 302 258

The access_log entries were showing that it was trying to redirect the client (HTTP code 302) but it was getting into an infinite loop.

The next part of the investigation was the httpd.conf file and almost immediately I saw the issue. In the file were two redirect lines (shown below) which were required in Connections 2.5, as part of configuring forcing traffic over SSL. These redirect lines ensured that authentication for Files and Wikis was sent over HTTPS.

Redirect /files/basic/api https://connections.demo.local/files/basic/api

Redirect /wikis/basic/api https://connections.demo.local/wikis/basic/api

Removing these lines (specifically the line relating to Files) and restarting IBM HTTP server stopped the infinite redirection loop and let the Files sidebar plugin work.

Strange search results for deleted Profiles

When deleting a person from Connections (as opposed to ‘inactivating’ them) the search index for Profiles does not remove the entry for the deleted person. Most of the time this doesn’t present a big issue as ideally you will be ‘inactivating’ people rather than deleting them, but there will always be occasions when you do need to actually delete someone’s profile.

Below is an example of how this issue manifests itself:

I have a user I would like to delete called Test User4 (imaginative, I know) so in the  profiles_tdi.properties file I change sync_delete_or_inactivate from inactivate to delete and then add Test User4 to delete_or_inactivate_employees.in file (N.B. It is important to remember to change sync_delete_or_inactivate back to inactivate so when the scheduled sync_all_dns.sh script runs it does not delete all the inactive profiles). I then run delete_or_inactivate_employees.sh , which deletes Test User4′s profile.

The problem occurs when I search for Test User4, the search result returns a list (fig. 1) showing the profile as inactive when in fact it shouldn’t show up at all in the search results as the profile has been deleted and when I click on the link I get an error “Profile Not Available” (fig. 2).


fig. 1

 


fig. 2

This issue was raised with IBM and they confirmed that the only way to correct/purge the search index is by deleting it and recreating it (“Purging content from the index”). With version 3.0.x you can delete an application index without having to stop the Search application by using the deleteFeatureIndex command.

So, using wsadmin I run the following commands which removes Test User4 from the search index:

execfile(“/opt/IBM/WebSphere/AppServer/profiles/Dmgr01/config/bin_lc_admin/searchAdmin.py”)
SearchService.deleteFeatureIndex(“profiles”)

The index will be rebuilt automatically when the indexing task runs (default 15 minutes) or it can be run manually to rebuild the index straight away (which I would recommend).

SearchService.indexNowWithOptimization(“profiles”)

The rebuild of the index will take some time depending on the size of your Profiles database so make sure it is done outside of core working hours to avoid end-user impact.

TDI import troubleshooting

TDI is on my list of products I need to know more about. At Lotusphere this year I went to a ‘Show and Tell’ presentation on TDI – ‘Assemble ‘n Go: Integrate Data and Directories with Tivoli Directory Integrator’ which really showed the power of the product. My experience so far has been limited to its interaction with Lotus Connections (synchronising Profiles with various directories)

One of the questions I’ve been asked a couple of times recently (hence the blog post) is where to start troubleshooting when you get errors or failures, like the one below, during the TDI sync process for Lotus Connections:

CLFRN0037I: After synchronisation, added/modified records is 0, deleted records is 0, duplicate records is 4196, failure records is 11

The place I start looking to find the cause of the problem is in the ibmdi.log file (/opt/IBM/TDI/V7.0/tdisol/TDI/logs/ibmdi.log) which usually guides me successfully to the root cause.

In this particular instance I found the errors (shown below) in the ibmdi.log which identified the users that had not been imported and identified the cause as being an invalid country code. Once the country code was corrected the import ran successfully.

2011-04-17 14:49:47,307 WARN [AssemblyLine.AssemblyLines/sync_all_dns_process_add.18] – CLFRN0209W: WARNING: Validation failed for field countryCode. Value is U.K..
2011-04-17 14:49:47,310 WARN [AssemblyLine.AssemblyLines/sync_all_dns_process_add.18] – CLFRN1183W: WARNING: Validation failed for entry CN=Test User,o=corp

Follow

Get every new post delivered to your Inbox.