« Home | Introscope EJB's not being displayed » | Introscope java.net.MalformedURLException » | Wily EPAgent Stopping Unexpectedly » | MS Office and Dual Monitors » | Dial-up BlackBerry for BroadBand Internet Access » | Using proxies to break into the office » | Windows 2003, Cygwin - SSHD Issues » | Harvesting Cell Phone Numbers with Myspace.com » | Easy Spell Checking » | Apache/IBM Http Server Lockdown »

Portal 5.1 NlsCannotInterpretStateException

Recently I started to poke around our log files when we started having performance issues shortly after our upgrade of portal. I started to see a number of unfamiliar errors:

2008.01.25 15:02:33.111 W com.ibm.wps.engine.Servlet doGet()
class com.ibm.wps.state.nls.inputmediators.exceptions.NlsCannotInterpretStateException: Unspecified message ()

I traced it back to before the upgrade which was good that it wasn't introduced by but what is it?

Searching through the IBM site, it didn't give me very much on it at all. Over the years I've learned not to ignore any errors from WAS or Portal until you can safely identify what they are! On some of our lower volume portal instances we were getting a few hundred of these a day.

Using Introscope I was able to see that one user navigating a synthetic transaction (sitescope) was actually executing portlets multiple times.. some of which were not even on the same page, but on that users homepage. Using the transaction tracer for Introscope and error detector we were able to see this pretty clearly.

With some tracing we were able to see we were missing some images (arrow.gif) and a few others. Each time portal attempted to pull if they didn't exist it would throw back a home page, rather than something light such as a 404. It seems the default behavior for portal if it cannot decode a URL is to throw the home page back. ICK!

That means a few bad images could really degrade performance for your portal. This seems like a pretty tough lesson to learn about missing images especially for high volume sites! Hopefully in future releases portal will understand light weight error pages (maybe even custom ones) and throw back something like a 404!

I won't hold my breath though!

Previous posts