[jbossts-dev] about user transaction time-out
Jonathan Halliday
jonathan.halliday at redhat.com
Thu Jun 10 08:02:48 EDT 2010
This is a development list. User questions should go to
http://community.jboss.org/en/jbosstransactions?view=discussions
or you could just use google :-)
http://management-platform.blogspot.com/2008/11/transaction-timeouts-and-ejb3jpa.html
Jonathan.
On 06/10/2010 12:22 PM, Javier Sanz wrote:
> Hello,
> I am trying to run an example about transactions using timeout ... and
> i was surprised when i ran the code ...
> Using another transaction manager, like jotm, bitronix, the time-out
> from a user transaction do the following
> timeout := X seconds
> ut start
> action 1
> action 2
> action 3
> ut commit
> if error ... ut rollback
> if action1 or action 2 o action 3 are into the period of X seconds ,
> they will not executed ... for example ... if action 1 got a lot of
> time, more than timeout, then,
> action 2 and action 3 never been executed ... right ...
> But, using jboss-user transaction, ... the time-out exception is throwed
> when action 3 finished !!!! ... the following sample shows my problem ..
> package paq;
>
> import java.io.IOException;
> import java.io.PrintWriter;
> import java.util.Date;
>
> import javax.annotation.Resource;
> import javax.ejb.ApplicationException;
> import javax.persistence.EntityManager;
> import javax.persistence.EntityManagerFactory;
> import javax.persistence.EntityTransaction;
> import javax.persistence.PersistenceContext;
> import javax.persistence.PersistenceUnit;
> import javax.servlet.ServletException;
> import javax.servlet.http.HttpServletRequest;
> import javax.servlet.http.HttpServletResponse;
> import javax.transaction.UserTransaction;
>
> public class Tiempo extends javax.servlet.http.HttpServlet implements
> javax.servlet.Servlet {
>
> private static final long serialVersionUID = 8150995692542819134L;
>
> @Resource
> private UserTransaction ut;
>
> protected void doGet(HttpServletRequest request,
> HttpServletResponse response) throws ServletException, IOException {
>
> response.setContentType("text/html");
> PrintWriter out = response.getWriter();
>
> try {
> out.write("<br>" + new Date());
> ut.setTransactionTimeout(1);
> ut.begin();
> Thread.sleep(3000);
> out.write("<br>" + new Date());
> out.write("->1" + ut + "<br>");
> Thread.sleep(3000);
> out.write("<br>" + new Date());
> out.write("->2" + ut + "<br>");
> Thread.sleep(3000);
> out.write("<br>" + new Date());
>
> ut.commit();
> }
>
> catch (Exception e) {
> out.write("<br>" + new Date());
> out.write("<br>Excepcion:=" + e);
> }
> }
> }
>
> The exception from time-out is throwed after 9 seconds !!!! nooo ... i
> need it al least at 2 seconds !! and never run the hole of transaction ...
> why do i need to run a completed tx when the first is broken into a
> timeout !!!
> if my transaction has 3 operations and a timeout is 4 hours , 1.-
> spends 1 hour, 2.- spends 1 hours , 3.- spends 2 hours ... if i got
> a problem and the first one and second need 4 hours to finish, i don't
> want to wait another 2 hours to recieve the time-out exception !!!
> how can i resolve it
> thank you
>
>
>
> _______________________________________________
> jbossts-dev mailing list
> jbossts-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/jbossts-dev
--
------------------------------------------------------------
Registered Address: Red Hat UK Ltd, Amberley Place, 107-111
Peascod Street, Windsor, Berkshire, SI4 1TE, United Kingdom.
Registered in UK and Wales under Company Registration No.
3798903 Directors: Michael Cunningham (USA), Charlie Peters
(USA), Matt Parsons (USA) and Brendan Lane (Ireland)
More information about the jbossts-dev
mailing list