tomee-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Paul Carter-Brown <paul.carter-br...@smilecoms.com>
Subject Re: JTA Commit Timing
Date Wed, 26 Apr 2017 11:50:58 GMT
Thought so. Let me try and create a reproducable test case and let you know
what i find

Paul

Sent from my phone. Message may be brief and contain typos.


On 26 Apr 2017 13:35, "Romain Manni-Bucau" <rmannibucau@gmail.com> wrote:

> Hi
>
> Shouldn't be possible since it would assume this flow:
>
> thread1. start tx                  | thread2. -
> thread1. create the entry    | thread2. -
> thread1. serialize the entry | thread2. -
> thread1. commit tx              | thread2. - find the entry
> thread1.                              | thread2. - fails
>
> The commit will happen
> in org.apache.openejb.server.cxf.ejb.EjbMethodInvoker#invoke where the
> serialization happens after
> in org.apache.cxf.jaxb.io.DataWriterImpl#write(java.lang.Object,
> org.apache.cxf.service.model.MessagePartInfo, T)
>
> Only case it should be possible to happen is if you wrapped jaxws
> servlet/layer with a custom transaction management (through a filter for
> instance) which would start/commit outside default JAXWS handling.
>
>
> Romain Manni-Bucau
> @rmannibucau <https://twitter.com/rmannibucau> |  Blog
> <https://blog-rmannibucau.rhcloud.com> | Old Blog
> <http://rmannibucau.wordpress.com> | Github <https://github.com/
> rmannibucau> |
> LinkedIn <https://www.linkedin.com/in/rmannibucau> | JavaEE Factory
> <https://javaeefactory-rmannibucau.rhcloud.com>
>
> 2017-04-26 12:59 GMT+02:00 Paul Carter-Brown <
> paul.carter-brown@smilecoms.com>:
>
> > Hi
> >
> > I have a call flow as follows in tomee:
> >
> > 1. Client calls jaxws service that adds a row into mysql table. EJB is
> > using JTA with eclipselink JPA entity bean. Seevice returns the primary
> key
> > of the row just added.
> > 2. Client uses returned soap message that contains the primary key and
> > calls a second service that does a select for the row in question.
> >
> > The service in 1 and 2 is in the same tomee instance and caching in jpa
> is
> > disabled. Tx isolation isread committed.
> >
> > Under high load and concurrency doing about 1000 tps i get about a 20%
> > failure rate where the service at stage 2 cannot find the row inserted at
> > stage 1. The row is inserted at some stage as i do see it in the db. Its
> as
> > though service 1 is returning prior to the database having committed the
> > data. My understanding is that this should not be possible as it would
> > create all sorts of inconsistencies. Is what i am observing expected
> > behaviour?
> >
> > Paul
> >
> > Sent from my phone. Message may be brief and contain typos.
> >
> > --
> >
> >
> > This email is subject to the disclaimer of Smile Communications at
> > http://www.smilecoms.com/home/email-disclaimer/ <
> http://www.smilecoms.com/
> > disclaimer>
> >
> >
>

-- 


This email is subject to the disclaimer of Smile Communications at http://www.smilecoms.com/home/email-disclaimer/
<http://www.smilecoms.com/disclaimer>


Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message