[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kandula-dev
Subject:    Re: Help for Kandula 1
From:       Dasarath Weeratunge <dweeratu () purdue ! edu>
Date:       2007-11-07 18:35:56
Message-ID: 1194460556.4732058ce133a () webmail ! purdue ! edu
[Download RAW message or body]

Quoting Dominik Heller <Dominik.Heller@gmx.net>:

> ok, so the status of the transaction object is PREPARED, but right now I have
> no idea how to check on the current behavior of Geronimo? well I am not sure
> if I understand the interaction between the WS-AT and the JTA in this case
> completely. For my understanding the transactions are manged by the JTA on
> clientside as well as on the serverside(s). The Mediator is used as a
> connector between the actual web service participant and the

JTA is only used on the client side. Just create a transaction using 

Bridge.getTM().begin()

and then use the methods in TransactionImpl object to manually orchestrate 2PC
on it. The code in Mediator should help you. I'm currently busy with academic
work so I cannot have a look at the code myself. Alternatively, you can drop in
a mail to geronimo-user and ask about the behavior of their TM in this case or
have a look at the code your self.

> transactionmanager of the JTA, right? so even if there is a problem with the
> rollback() I don't understand why the web service sends back a PREPARED
> statement?

The PREPARED statement could be a replay assuming the coordinator didn't
respond. However, in this case a response was received but was not properly handled.

> 
> THX
> -Dominik
> 
> -------- Original-Nachricht --------
> > Datum: Wed,  7 Nov 2007 10:35:51 -0500
> > Von: Dasarath Weeratunge <dweeratu@purdue.edu>
> > An: kandula-dev@ws.apache.org
> > Betreff: Re: Help for Kandula 1
> 
> > Quoting Dominik Heller <Dominik.Heller@gmx.net>:
> > 
> > > javax.transaction.xa.XAException
> > > 	at
> > > 
> > 
> 
org.apache.geronimo.transaction.manager.TransactionManagerImpl.rollback(TransactionManagerImpl.java:212)

> > > 	at org.apache.kandula.geronimo.Mediator.rollback(Mediator.java:123)
> > > 	at
> > > 
> > 
> 
org.apache.kandula.coordinator.at.AbstractParticipant.rollbackOperation(AbstractParticipant.java:191)

> > > 	at
> > > 
> > 
> 
org.apache.kandula.coordinator.at.ParticipantImpl.rollbackOperation(ParticipantImpl.java:39)

> > > 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> > 
> > The exception is thrown by the Geronimo transaction manager when Kandula
> > attempts to rollback the local JTA transaction associated with global web
> > service transaction. I would suggest that you first validate the
> > transaction
> > object held in Mediator immediately prior to the call to rollback method
> > of
> > local transaction manager (this should be PREPARED) and then if so, see
> > what the
> > current behavior of Geronimo is when you rollback a prepared transaction
> > (JTA).
> > 
> > You can also have a look at interopIBM sample. This particular scenario is
> > most
> > likely there but in that sample we are not using the Geronimo TM/JTA.
> > Hence this
> > is different.
> > 
> > I hope you understand the interaction between WS-AT and JTA in this
> > particular case.
> > 
> > Thanks,
> > -- Dasarath
> > 
> > 
> > 
> > > Hi Dasarath,
> > > well I ran the test preparerollback implemented in your testSuite and it
> > > works fine. I monitored the whole scenario and one of the differences
> > between
> > > the testsuit and my scenario is the existence of multiple participants
> > > registered to the coordinator. As far as I can see the participant in
> > the
> > > testsuite receives a prepare command and sends an aborted statement back
> > to
> > > the coordinator because of the XAException whereupon the coordinator
> > aborts
> > > the transaction. In my scenario I have two participants and when the
> > > participant which has already prepared receives the roolback command the
> > > following exception is thrown and the participant sends the prepared
> > > statement again:
> > > 
> > > javax.transaction.xa.XAException
> > > 	at
> > > 
> > 
> 
org.apache.geronimo.transaction.manager.TransactionManagerImpl.rollback(TransactionManagerImpl.java:212)

> > > 	at org.apache.kandula.geronimo.Mediator.rollback(Mediator.java:123)
> > > 	at
> > > 
> > 
> 
org.apache.kandula.coordinator.at.AbstractParticipant.rollbackOperation(AbstractParticipant.java:191)

> > > 	at
> > > 
> > 
> 
org.apache.kandula.coordinator.at.ParticipantImpl.rollbackOperation(ParticipantImpl.java:39)

> > > 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> > > 	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
> > > 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
> > > 	at java.lang.reflect.Method.invoke(Unknown Source)
> > > 	at
> > > 
> > 
> org.apache.axis.providers.java.RPCProvider.invokeMethod(RPCProvider.java:397)
> > > 	at
> > > 
> > 
> org.apache.axis.providers.java.RPCProvider.processMessage(RPCProvider.java:186)
> > > 	at
> > > 
> > org.apache.axis.providers.java.JavaProvider.invoke(JavaProvider.java:323)
> > > 	at
> > > 
> > 
> org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)
> > > 	at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
> > > 	at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
> > > 	at
> > org.apache.axis.handlers.soap.SOAPService.invoke(SOAPService.java:454)
> > > 	at org.apache.axis.server.AxisServer.invoke(AxisServer.java:281)
> > > 	at
> > org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:699)
> > > 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
> > > 	at
> > > 
> > 
> org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:327)
> > > 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
> > > 	at
> > > 
> > 
> 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)

> > > 	at
> > > 
> > 
> 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)

> > > 	at
> > > 
> > 
> 
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:210)
> > > 	at
> > > 
> > 
> 
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
> > > 	at
> > > 
> > 
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
> > > 	at
> > > 
> > 
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
> > > 	at
> > > 
> > 
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
> > > 	at
> > > 
> > 
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)
> > > 	at
> > > 
> > org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:870)
> > > 	at
> > > 
> > 
> 
org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)

> > > 	at
> > > 
> > 
> org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
> > > 	at
> > > 
> > 
> 
org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)

> > > 	at
> > > 
> > 
> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:685)
> > > 	at java.lang.Thread.run(Unknown Source)
> > > Caused by: java.lang.IllegalStateException: Status is STATUS_PREPARED
> > > 	at
> > > 
> > 
> 
org.apache.geronimo.transaction.manager.TransactionImpl.rollback(TransactionImpl.java:438)

> > > 	at
> > > 
> > 
> 
org.apache.geronimo.transaction.manager.TransactionManagerImpl.rollback(TransactionManagerImpl.java:210)

> > > 	... 33 more
> > > 
> > > Right now I have no clue what the cause might be. So I am thankfull for
> > any
> > > ideas.
> > > 
> > > THX dominik
> > > -- 
> > > Psssst! Schon vom neuen GMX MultiMessenger gehört?
> > > Der kann`s mit allen: http://www.gmx.net/de/go/multimessenger
> > > 
> > 
> > 
> > 
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: kandula-dev-unsubscribe@ws.apache.org
> > For additional commands, e-mail: kandula-dev-help@ws.apache.org
> 
> -- 
> GMX FreeMail: 1 GB Postfach, 5 E-Mail-Adressen, 10 Free SMS.
> Alle Infos und kostenlose Anmeldung: http://www.gmx.net/de/go/freemail
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: kandula-dev-unsubscribe@ws.apache.org
> For additional commands, e-mail: kandula-dev-help@ws.apache.org
> 
> 



---------------------------------------------------------------------
To unsubscribe, e-mail: kandula-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: kandula-dev-help@ws.apache.org


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic