12/19/08

Client's transaction aborted

I've met the above error message using a Wicket 1.2 / EJB3 intranet application under Glassfish v2.
Here is the more particular head of the stack trace:

javax.ejb.TransactionRolledbackLocalException: Client's transaction aborted
at com.sun.ejb.containers.BaseContainer.useClientTx(BaseContainer.java:3394)
at com.sun.ejb.containers.BaseContainer.preInvokeTx(BaseContainer.java:3274)
at com.sun.ejb.containers.BaseContainer.preInvoke(BaseContainer.java:1244)
at com.sun.ejb.containers.EJBLocalObjectInvocationHandler.invoke(EJBLocalObjectInvocationHandler.java:195)
at com.sun.ejb.containers.EJBLocalObjectInvocationHandlerDelegate.invoke(EJBLocalObjectInvocationHandlerDelegate.java:127)

This exception raised on the integration server sometimes, randomly, for simple page fetch operations. After pressing reload on the browser, the operation was usually successful. I couldn't reproduce the failure on the local machine where I regularly restart the app server and have run some tiny applications only beside the subject one.

After some hours code bugging I'd found a forum message which gave me an idea to play some rounds with the Glassfish's HTTP Service configuration. Maybe not my EJB logic is buggy or misconfigured but the client web application causes the error somehow. Unfortunately I couldn't quarry anything regarding this from the default server logs.

Finally I tried the following on the Glassfish admin console which solved the problem as a symptomatic treatment:
Configuration > HTTP Service > RequestProcessing > Thread Count (set a higher value, the default is 5. 10 is worked for me.)

It seems to be working now.

12/10/08

Eclipse DemoCamp Budapest

This year I also couldn't get to any of the heavy European Java conferences, so I stayed at visiting some tiny local events intown. For example last week I attended on the Eclipse DemoCamp Budapest which was organized by the right engaging b2i local team at a pleasant (but not too silent) downtown pub.

Around 20 participant were present and there were two presentations, or rather demos planned. When people entered they were asked if they had some interesting subject to speak about, so the whole thing had an unconference style. FOT Testing Services guys actually had a notebook with a copy of their recent project so they took the opportunity to introduce it to the public.

First demo was about making a generic data model with EMF (Eclipse Modeling Framework) plugin and creating a model editor with Eclipse GMF (Graphical Modeling Framework) which is given by GEF (Graphical Editing Framework). The example model was a basic CD database.

With suitable experiences, it takes about 10-20 minutes to create a comfortable class diagram-like Eclipse-based graphical editor for a data model with the same complexity. b2i assembled a complex healthcare system model and editor in six months as they said. (I don't know how many people, I guess 2-4.) It's worth considering to use these tools in case of a similar proposition.

Second demo was about testing banking applications with Eclipse environment (FOT Testing Services) with their plugin set. There were green and red strikes, an imitation of the GUI of the banking application for testing, report generation tools and much more. People with

Third demo was about Eclipse tips and tricks. A guy showed a number of smart keyboard shortcuts and useful functions. Most of us know most funtions so I observed that the average knowledge was rather high.

After that, or rather during the last demo, the event slightly turned into a drinking party. Unfortunately I had to leave but I decided to be there at the next occassion, maybe in next Juny or so.