Lotus Connections Communities and the 64 character limit in Quickr

My colleague Ben Williams whilst working on Quickr and Lotus Connections Community integration has come up with a useful tip regarding the length of Place names when creating a Quickr Place from a Lotus Connections Community.

Communities that have a long name can breach the 64 character limit for Place names in Quickr. If this is the case you get the error below in your web browser when it tries to create the Teamspace.

com.ibm.tango.exception.ManagedAppFailureException: com.ibm.tango.exception.TangoException: 404 – Not Found
com.ibm.lconn.comm.quickr.QuickrMemberSynchronizer.throwManagedAppUpdateFailedException(QuickrMemberSynchronizer.java:500)
com.ibm.lconn.comm.quickr.QuickrMemberSynchronizer.createApplication(QuickrMemberSynchronizer.java:488)
com.ibm.tango.internal.service.TangoServiceImpl.createManagedApplication(TangoServiceImpl.java:3523)
com.ibm.tango.web.ui.actions.CommunityAddSubmitAction.doActionExecute(CommunityAddSubmitAction.java:233)
com.ibm.tango.web.ui.actions.TangoAction.execute(TangoAction.java:137)
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:421)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:226)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1164)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:415)
javax.servlet.http.HttpServlet.service(HttpServlet.java:763)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1143)
com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1084)
com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:145)
com.ibm.tango.web.ui.servlet.LastLoginFilter.doFilter(LastLoginFilter.java:99)
com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:190)
com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:130)
com.ibm.tango.web.ui.servlet.ApplicationContextFilter.doFilter(ApplicationContextFilter.java:162)
com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:190)
com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:130)
com.ibm.tango.web.ui.servlet.UuidMapperFilter.doFilter(UuidMapperFilter.java:114)
com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:190)
com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:130)
com.ibm.tango.web.ui.servlet.PromoteCachingFilter.doFilter(PromoteCachingFilter.java:64)
com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:190)
com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:130)
com.ibm.tango.web.ui.servlet.RequestStatisticsFilter.doFilter(RequestStatisticsFilter.java:57)
com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:190)
com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:130)
com.ibm.lconn.core.web.auth.LCUserDataConstraintFilter.doFilter(LCUserDataConstraintFilter.java:84)
com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:190)
com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:130)
com.ibm.lconn.core.web.request.HttpRequestFilter.doFilter(HttpRequestFilter.java:77)
com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:190)
com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:130)
com.ibm.tango.web.ui.servlet.Utf8CharEncodingFilter.doFilter(Utf8CharEncodingFilter.java:63)
com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:190)
com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:130)
com.ibm.lconn.core.web.util.lang.I18NFilter.doFilter(I18NFilter.java:203)
com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:190)
com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:130)
com.ibm.ws.webcontainer.filter.WebAppFilterChain._doFilter(WebAppFilterChain.java:87)
com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:832)
com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:679)
com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:587)
com.ibm.ws.wswebcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:481)
com.ibm.ws.webcontainer.servlet.CacheServletWrapper.handleRequest(CacheServletWrapper.java:90)
com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:748)
com.ibm.ws.wswebcontainer.WebContainer.handleRequest(WebContainer.java:1466)
com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:119)
com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:458)
com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewInformation(HttpInboundLink.java:387)
com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.ready(HttpInboundLink.java:267)
com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.sendToDiscriminators(NewConnectionInitialReadCallback.java:214)
com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.complete(NewConnectionInitialReadCallback.java:113)
com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:165)
com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217)
com.ibm.io.async.AsyncChannelFuture$1.run(AsyncChannelFuture.java:205)
com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1473)
 
 
The limit was put in place on Quickr to stop issues with the Quickr Connector (link to a technote explaining why shown below).

Title: “File could not be found” error when open Microsoft Office file through Connectors
Doc #: 1370502
URL: http://www-01.ibm.com/support/docview.wss?uid=swg21370502
 
 
The name of a Quickr Place can become very long quite quickly because when it is created from a Community it is prefixed with  “teamspace_20for_20″ and any spaces between the words of the Community name are converted to “_20″ (screen shot example below).

You can test this from within Quickr and you’ll see the following error:


 
 
There isn’t a way  at the moment to remove “teamspace_20for_20″ but you can configure Quickr not to turn spaces into “_20″ by making a change to the qpconfig.xml and restarting HTTP. This will save characters and stop end-users getting the hideous and confusing error within Communities.

use_short_place_name
====================
attribute         value    default  description
=========         =====    =======  ===========
enabled           true     no       Shorten placenames. Don’t try to create special characters in placename.
false            yes              Try to display special charcters (e.g. %20 -> _20)

<!– =============== START OF SAMPLE =================
<webservices enabled=”true”>
<atomws_response type=”get” />
<connector_install_url>http://server.lotus.com/qkrconn.exe</connector_install_url&gt;
<connectors>
<add_place_action enabled=”true” />
<views_include_rooms enabled=”false” />
</connectors>
<connection_integration>
<place_creation>
<show_members_folder_in_toc enabled=”true” />
<use_short_place_name enabled=”true” />
</place_creation>
</connection_integration>
</webservices>
=============== END OF SAMPLE =================== –>

 
 
After making the changes Quickr Places created from a Lotus Connections Community will have shorter names (screen shot example below).

Collaboration University

I was fortunate enough to go to the Collaboration University in London this week and listen to some very smart people talk about Quickr and Sametime. It was particularly good to see and hear about Quickr 8.5 which had only been released 8 days before. I’m looking forward to testing Quickr integration with ECM in our lab which thanks to Rob Novaks presentation should be a lot easier (especially as this has not been properly documented yet).

Something that I notice more and more is the number of people using MacBooks. On the train each morning (whilst wedged in standing up in the middle of the carriage) I could see a several people using MacBooks whilst only three or four years ago they would have been a rarity. Even more surprising was that all the presenters at the sessions I went to at Collaboration University were using MacBooks, admittedly they were then running Windows or Linux VMs for the demos but it is clearly the machine of choice for those that can choose their own work computer.

Quickr hotfix adventures

A colleague of mine, Ben Williams, has been working extensively over the last few weeks with IBM to resolve a Quickr 8.2 instability issue for a customer. The initial fix was upgrading from fix pack 11 (8.2.0.11) to fix pack 12 (8.2.0.12), this didn’t resolve the issue and actually created a new one; creating a Quickr Place from a Lotus Connections Community failed and produced the following error – “Failed to create or update an associated application.” (fig. 1)

fig. 1

IBM provided a Quickr hotfix – 14-003a – which resolved the new issue (not the original issue though) but during the testing of it two new issues where discovered.
1. The Quickr Place widget in Lotus Connections Communities stopped working.
2. Disconnecting a Quickr Place from a Community caused Quickr to crash.

IBM quickly (no pun intended) gave us another hotfix – 14-005a – to resolve the two new issues unfortunately the Quickr Place widget for Lotus Connections Communities created whilst hotfix 14-003a was installed were still broken (thankfully this was only test Communities and Places), these Places needed to be disconnected from the Community and then deleted (qptool remove -cleanup) from Quickr.

The support and assistance from IBM has been good and the rollback to fix pack 11 was always an option, but the moral of the story is make sure you test hot fixes and for Quickr if your using Lotus Connections test the Connector functionality as well.

Meanwhile Ben and IBM are still working on the original issue of the Quickr 8.2 instability…..

Follow

Get every new post delivered to your Inbox.