Hello David,
I am now using the the generic adapter, with set the property
CommitOnAutocommit to true.
Now in the code, nowhere setAutcommit is being called/invoked.
For a good scenario, the rows are getting inserted and I can check them in
the database as well. Now for the reason which I was doing the test, is to
chck the transaction rollback support using the ejb.
Scenario
----------
To check for rollback:
After I insert the record, I am throwing a runtime exception. I am catching
that exception and invking the
sessionContext.setRollbackOnly();
The stateless session is thrwoing while invoking that setRollbackOnly()
method.
2010-05-03 18:17:13,051 ERROR [TestBean] Could not rollback CMT!
java.lang.IllegalStateException: bean-managed transaction beans can not
access the setRollbackOnly() method
at
org.apache.openejb.core.BaseContext$State.setRollbackOnly(BaseContext.java:266)
at
org.apache.openejb.core.BaseContext.setRollbackOnly(BaseContext.java:110)
at com.testingejb.manager.ejb.TestBean.rollback(TestBean.java:1178)
at
com.testingejb.manager.ejb.TestBean.createPOCProfile(TestBean.java:1528)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at
org.apache.openejb.core.interceptor.ReflectionInvocationContext$Invocation.invoke(ReflectionInvocationContext.java:158)
at
org.apache.openejb.core.interceptor.ReflectionInvocationContext.proceed(ReflectionInvocationContext.java:141)
at
org.apache.openejb.core.interceptor.InterceptorStack.invoke(InterceptorStack.java:67)
at
org.apache.openejb.core.stateless.StatelessContainer._invoke(StatelessContainer.java:210)
at
org.apache.openejb.core.stateless.StatelessContainer._invoke(StatelessContainer.java:188)
at
org.apache.openejb.core.stateless.StatelessContainer.invoke(StatelessContainer.java:165)
at
org.apache.openejb.core.ivm.EjbObjectProxyHandler.businessMethod(EjbObjectProxyHandler.java:217)
at
org.apache.openejb.core.ivm.EjbObjectProxyHandler._invoke(EjbObjectProxyHandler.java:77)
at
org.apache.openejb.core.ivm.BaseEjbProxyHandler.invoke(BaseEjbProxyHandler.java:321)
at
org.apache.openejb.util.proxy.Jdk13InvocationHandler.invoke(Jdk13InvocationHandler.java:49)
at $Proxy47.createPOCProfile(Unknown Source)
at
com.testingejb.common.PMClientHelper.createPOCProfile(PMClientHelper.java:2197)
at
com.testingejb.common.manager.ProfileManager.create(ProfileManager.java:557)
at
com.testingejb.common.presentation.action.POCProfileHandlerAction.Submit(POCProfileHandlerAction.java:440)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at
com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:404)
at
com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:267)
at
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:229)
at
com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:221)
at
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:86)
at
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
at
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
at
com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
at
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
at
com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:121)
at
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:86)
at
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
at
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
at
com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
at
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
at ...
I did try the bean to be container or bean, it is the same error. I tried
the trans attribute for Required or RequiresNew, same thing.
This illegal state exception, is thrown from the open ejb (class:
CoreContext ), correct me if I am wrong.
Any workaround??
Does Geronimo 2.1.4 really support container managed transaction?
Anshuk
--
View this message in context:
http://apache-geronimo.328035.n3.nabble.com/geronimo-2-1-4-container-managed-transaction-tp768780p775052.html
Sent from the Users mailing list archive at Nabble.com.