tomee-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Romain Manni-Bucau <rmannibu...@gmail.com>
Subject Re: JTA Commit Timing
Date Wed, 03 May 2017 14:10:14 GMT
that's what i tested and timing looks normal (like +-3s depending if you
have the hack or not)

will be on IRC on #openejb (on freenode server), maybe easier to chat in a
more interactive way


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-05-03 16:08 GMT+02:00 Paul Carter-Brown <
paul.carter-brown@smilecoms.com>:

> Sorry. Yes spot on. Use the default of Requires so that the class is used.
>
> On 3 May 2017 at 15:14, Romain Manni-Bucau <rmannibucau@gmail.com> wrote:
>
> > the EJB uses REQUIRED_NEW so doesnt use TxRequired, just want to ensure
> you
> > didnt add dead code cause i cant see the behavior you describe
> >
> >
> > 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-05-03 15:13 GMT+02:00 Paul Carter-Brown <
> > paul.carter-brown@smilecoms.com>:
> >
> > > Sorry Romain, not sure what you mean?
> > >
> > > On 3 May 2017 at 14:44, Romain Manni-Bucau <rmannibucau@gmail.com>
> > wrote:
> > >
> > > > Just to be sure: you removed from the EJB this annotation?:
> > > >
> > > > @TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)
> > > >
> > > >
> > > >
> > > > 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-05-02 23:15 GMT+02:00 Paul Carter-Brown <
> > > > paul.carter-brown@smilecoms.com>:
> > > >
> > > > > Hi,
> > > > >
> > > > > I'm not that familiar with HSQL so maybe my test case is confusing
> > the
> > > > > issue and not adding much value.
> > > > >
> > > > > Any way you can put the attached file in your openejb-core jar to
> > > replace
> > > > > the one in /org/apache/openejb/core/transaction/
> > > > >
> > > > > It sleeps for 3s on commit. You should notice that any EJB's you
> call
> > > > that
> > > > > use TxRequired will still respond in normal latency. The source of
> > the
> > > > file
> > > > > is:
> > > > >
> > > > > /*
> > > > >  * Licensed to the Apache Software Foundation (ASF) under one or
> more
> > > > >  * contributor license agreements.  See the NOTICE file distributed
> > > with
> > > > >  * this work for additional information regarding copyright
> > ownership.
> > > > >  * The ASF licenses this file to You under the Apache License,
> > Version
> > > > 2.0
> > > > >  * (the "License"); you may not use this file except in compliance
> > with
> > > > >  * the License.  You may obtain a copy of the License at
> > > > >  *
> > > > >  *     http://www.apache.org/licenses/LICENSE-2.0
> > > > >  *
> > > > >  * Unless required by applicable law or agreed to in writing,
> > software
> > > > >  * distributed under the License is distributed on an "AS IS"
> BASIS,
> > > > >  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
> > > > implied.
> > > > >  * See the License for the specific language governing permissions
> > and
> > > > >  * limitations under the License.
> > > > >  */
> > > > >
> > > > > package org.apache.openejb.core.transaction;
> > > > >
> > > > > import org.apache.openejb.ApplicationException;
> > > > > import org.apache.openejb.SystemException;
> > > > >
> > > > > import javax.transaction.Transaction;
> > > > > import javax.transaction.TransactionManager;
> > > > > import org.slf4j.Logger;
> > > > > import org.slf4j.LoggerFactory;
> > > > >
> > > > > /**
> > > > >  * 17.6.2.2 Required
> > > > >  * <p/>
> > > > >  * The Container must invoke an enterprise Bean method whose
> > > transaction
> > > > >  * attribute is set to Required with a valid transaction context.
> > > > >  * <p/>
> > > > >  * If a client invokes the enterprise Bean's method while the
> client
> > is
> > > > >  * associated with a transaction context, the container invokes the
> > > > > enterprise
> > > > >  * Bean's method in the client's transaction context.
> > > > >  * <p/>
> > > > >  * If the client invokes the enterprise Bean's method while the
> > client
> > > is
> > > > > not
> > > > >  * associated with a transaction context, the container
> automatically
> > > > > starts a
> > > > >  * new transaction before delegating a method call to the
> enterprise
> > > Bean
> > > > >  * business method. The Container automatically enlists all the
> > > resource
> > > > >  * managers accessed by the business method with the transaction.
> If
> > > the
> > > > >  * business method invokes other enterprise beans, the Container
> > passes
> > > > the
> > > > >  * transaction context with the invocation. The Container attempts
> to
> > > > > commit the
> > > > >  * transaction when the business method has completed. The
> container
> > > > > performs
> > > > >  * the commit protocol before the method result is sent to the
> > client.
> > > > >  */
> > > > > public class TxRequired extends JtaTransactionPolicy {
> > > > >     private final Transaction clientTx;
> > > > >     private final Transaction currentTx;
> > > > >
> > > > >     private static final Logger log = LoggerFactory.getLogger(
> > > > > TxRequired.class);
> > > > >
> > > > >     public TxRequired(final TransactionManager transactionManager)
> > > throws
> > > > > SystemException {
> > > > >         super(TransactionType.Required, transactionManager);
> > > > >         log.warn("In TxRequired constructore");
> > > > >         clientTx = getTransaction();
> > > > >         if (clientTx == null) {
> > > > >             log.warn("Client Tx is null");
> > > > >             currentTx = beginTransaction();
> > > > >         } else {
> > > > >             log.warn("Client Tx is not null");
> > > > >             currentTx = clientTx;
> > > > >         }
> > > > >     }
> > > > >
> > > > >     public boolean isNewTransaction() {
> > > > >         return clientTx == null;
> > > > >     }
> > > > >
> > > > >     public boolean isClientTransaction() {
> > > > >         return !isNewTransaction();
> > > > >     }
> > > > >
> > > > >     public Transaction getCurrentTransaction() {
> > > > >         log.warn("In getCurrentTransaction");
> > > > >         return currentTx;
> > > > >     }
> > > > >
> > > > >     public void commit() throws ApplicationException,
> > SystemException {
> > > > >         // only commit if we started the transaction
> > > > >         log.warn("In commit - sleeping for 3000ms");
> > > > >         try {
> > > > >             Thread.sleep(3000);
> > > > >         } catch (Exception e) {
> > > > >             log.warn("Error in sleep");
> > > > >         }
> > > > >         log.warn("Woke up from sleep");
> > > > >         if (clientTx == null) {
> > > > >             log.warn("In commit - clientTx is null");
> > > > >             completeTransaction(currentTx);
> > > > >         } else {
> > > > >             log.warn("In commit - clientTx is not null");
> > > > >             fireNonTransactionalCompletion();
> > > > >         }
> > > > >     }
> > > > > }
> > > > >
> > > > > On 2 May 2017 at 22:55, Romain Manni-Bucau <rmannibucau@gmail.com>
> > > > wrote:
> > > > >
> > > > >> Still, it is recoverable
> > > > >>
> > > > >> Said otherwise: with in memory hsqldb SHUTDOWN does pretty much
> > > nothing,
> > > > >> add hsqldb in scope compile and this code instead of your
> SHUTDOWN:
> > > > >>
> > > > >> final Database hsqldb = DatabaseManager.getDatabase("mem:",
> > "hsqldb",
> > > > >> new HsqlProperties());
> > > > >> hsqldb.close(1);
> > > > >>
> > > > >>
> > > > >>
> > > > >> 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-05-02 20:42 GMT+02:00 Paul Carter-Brown <
> > > > >> paul.carter-brown@smilecoms.com>:
> > > > >>
> > > > >> > You can remove the second call to setautocommit. Then
> > > setrollbackonly
> > > > >> wont
> > > > >> > be called.
> > > > >> >
> > > > >> > Paul
> > > > >> >
> > > > >> > Sent from my phone. Message may be brief and contain typos.
> > > > >> >
> > > > >> >
> > > > >> > On 2 May 2017 7:51 p.m., "Romain Manni-Bucau" <
> > > rmannibucau@gmail.com>
> > > > >> > wrote:
> > > > >> >
> > > > >> > > this is because eclipselink JTA integration calls
> > > setRollbackOnly()
> > > > >> which
> > > > >> > > is welld handled by our transaction manager but as requested
> it
> > is
> > > > >> done
> > > > >> > > silently. You can
> > > > >> > > check org.eclipse.persistence.transaction.
> > > JTATransactionController#
> > > > >> > > markTransactionForRollback_impl
> > > > >> > >
> > > > >> > >
> > > > >> > > 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-05-02 19:37 GMT+02:00 Paul Carter-Brown <
> > > > >> > > paul.carter-brown@smilecoms.com>:
> > > > >> > >
> > > > >> > > > I cause and then catch the exception to show the connections
> > is
> > > > >> down.
> > > > >> > > That
> > > > >> > > > same connection is then needed by the container to do the
> > commit
> > > > and
> > > > >> > yet
> > > > >> > > it
> > > > >> > > > does not fail.
> > > > >> > > >
> > > > >> > > > Paul
> > > > >> > > >
> > > > >> > > > Sent from my phone. Message may be brief and contain typos.
> > > > >> > > >
> > > > >> > > >
> > > > >> > > > On 2 May 2017 6:10 p.m., "Romain Manni-Bucau" <
> > > > >> rmannibucau@gmail.com>
> > > > >> > > > wrote:
> > > > >> > > >
> > > > >> > > > > issue with this example is you catch the exception so the
> > jta
> > > > >> > > transaction
> > > > >> > > > > is not rolledback, modified it to throw a runtime
> exception
> > > and
> > > > >> make
> > > > >> > > the
> > > > >> > > > tx
> > > > >> > > > > failing and it works it seems
> > > > >> > > > >
> > > > >> > > > >
> > > > >> > > > > 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-05-02 12:34 GMT+02:00 Paul Carter-Brown <
> > > > >> > > > > paul.carter-brown@smilecoms.com>:
> > > > >> > > > >
> > > > >> > > > > > Hi Romain,
> > > > >> > > > > >
> > > > >> > > > > > I set the MySQL connection timeout to 2 seconds and did
> a
> > > > sleep
> > > > >> > for 3
> > > > >> > > > > > seconds at the end of the business method.
> > > > >> > > > > >
> > > > >> > > > > > The result was that the business method still returned
> the
> > > > >> primary
> > > > >> > > key
> > > > >> > > > of
> > > > >> > > > > > the new row successfully yet after that there was an
> > > exception
> > > > >> > > > committing
> > > > >> > > > > > the TX and the row was not actually written to the DB.
> > > > >> > > > > >
> > > > >> > > > > > 2017/05/02 12:19:53.354 WARNING
> [TomEE-Exec-33][307][org.
> > > > >> > > > > apache.cxf.phase.
> > > > >> > > > > > PhaseInterceptorChain.doDefaultLogging] |Application {
> > > > >> > > > > > http://xml.smilecoms.com/IM}
> IM#{http://xml.smilecoms.com/
> > > > >> > > > IM}AddCustomer
> > > > >> > > > > > has thrown exception, unwinding now
> > > > >> > > > > > org.apache.cxf.interceptor.Fault: javax.transaction.
> > > > >> > SystemException:
> > > > >> > > > > > Error during two phase commit: Error during two phase
> > commit
> > > > >> while
> > > > >> > > > > invoking
> > > > >> > > > > > public abstract com.smilecoms.xml.schema.im.
> > PlatformInteger
> > > > >> > > > > > com.smilecoms.xml.im.IMSoap.
> > addCustomer(com.smilecoms.xml.
> > > > >> > > > > schema.im.Customer)
> > > > >> > > > > > throws com.smilecoms.xml.im.IMError with params [
> > > > >> > > > > > com.smilecoms.xml.schema.im.Customer@5950a117].
> > > > >> > > > > >         at org.apache.cxf.service.
> > invoker.AbstractInvoker.
> > > > >> > > > > > createFault(AbstractInvoker.java:166)
> > > > >> > > > > >         at org.apache.cxf.jaxws.
> > AbstractJAXWSMethodInvoker.
> > > > >> > > > createFault(
> > > > >> > > > > > AbstractJAXWSMethodInvoker.java:267)
> > > > >> > > > > >         at org.apache.openejb.server.cxf.
> > > > ejb.EjbMethodInvoker.
> > > > >> > > > > > preEjbInvoke(EjbMethodInvoker.java:165)
> > > > >> > > > > >         at org.apache.openejb.server.cxf.
> > > > >> > > ejb.EjbMethodInvoker.invoke(
> > > > >> > > > > > EjbMethodInvoker.java:82)
> > > > >> > > > > >         at org.apache.cxf.service.
> > invoker.AbstractInvoker.
> > > > >> > > > > > invoke(AbstractInvoker.java:74)
> > > > >> > > > > >         at org.apache.cxf.interceptor.Ser
> > > > >> viceInvokerInterceptor$1.
> > > > >> > > > > > run(ServiceInvokerInterceptor.java:59)
> > > > >> > > > > >         at java.util.concurrent.
> > Executors$RunnableAdapter.
> > > > >> > > > > > call(Executors.java:511)
> > > > >> > > > > >         at java.util.concurrent.
> > FutureTask.run(FutureTask.
> > > > >> > java:266)
> > > > >> > > > > >         at org.apache.cxf.interceptor.Ser
> > > > >> viceInvokerInterceptor$2.
> > > > >> > > > > > run(ServiceInvokerInterceptor.java:126)
> > > > >> > > > > >         at org.apache.cxf.workqueue.Synch
> > > > >> ronousExecutor.execute(
> > > > >> > > > > > SynchronousExecutor.java:37)
> > > > >> > > > > >         at org.apache.cxf.interceptor.Ser
> > > > >> viceInvokerInterceptor.
> > > > >> > > > > > handleMessage(ServiceInvokerInterceptor.java:131)
> > > > >> > > > > >         at org.apache.cxf.phase.PhaseInte
> > > > >> rceptorChain.doIntercept(
> > > > >> > > > > > PhaseInterceptorChain.java:308)
> > > > >> > > > > >         at org.apache.cxf.transport.
> > > ChainInitiationObserver.
> > > > >> > > onMessage(
> > > > >> > > > > > ChainInitiationObserver.java:121)
> > > > >> > > > > >         at org.apache.cxf.transport.http.
> > > > >> AbstractHTTPDestination.
> > > > >> > > > invoke(
> > > > >> > > > > > AbstractHTTPDestination.java:262)
> > > > >> > > > > >         at org.apache.openejb.server.cxf.
> > > > >> CxfWsContainer.onMessage(
> > > > >> > > > > > CxfWsContainer.java:85)
> > > > >> > > > > >         at org.apache.openejb.server.
> > > > >> > webservices.WsServlet.service(
> > > > >> > > > > > WsServlet.java:98)
> > > > >> > > > > >         at org.apache.catalina.core.
> > ApplicationFilterChain.
> > > > >> > > > > > internalDoFilter(ApplicationFilterChain.java:230)
> > > > >> > > > > >         at org.apache.catalina.core.
> > ApplicationFilterChain.
> > > > >> > doFilter(
> > > > >> > > > > > ApplicationFilterChain.java:165)
> > > > >> > > > > >         at org.apache.catalina.core.Stand
> > > > >> ardWrapperValve.invoke(
> > > > >> > > > > > StandardWrapperValve.java:198)
> > > > >> > > > > >         at org.apache.catalina.core.Stand
> > > > >> ardContextValve.invoke(
> > > > >> > > > > > StandardContextValve.java:96)
> > > > >> > > > > >         at org.apache.catalina.core.
> > > StandardHostValve.invoke(
> > > > >> > > > > > StandardHostValve.java:140)
> > > > >> > > > > >         at org.apache.catalina.valves.
> > > > ErrorReportValve.invoke(
> > > > >> > > > > > ErrorReportValve.java:79)
> > > > >> > > > > >         at org.apache.tomee.catalina.
> > > OpenEJBSecurityListener$
> > > > >> > > > > > RequestCapturer.invoke(OpenEJBSecurityListener.java:97)
> > > > >> > > > > >         at org.apache.catalina.core.
> > > > StandardEngineValve.invoke(
> > > > >> > > > > > StandardEngineValve.java:87)
> > > > >> > > > > >         at org.apache.catalina.connector.
> > > > CoyoteAdapter.service(
> > > > >> > > > > > CoyoteAdapter.java:349)
> > > > >> > > > > >         at org.apache.coyote.http11.
> > > Http11Processor.service(
> > > > >> > > > > > Http11Processor.java:783)
> > > > >> > > > > >         at org.apache.coyote.AbstractProcessorLight.
> > > process(
> > > > >> > > > > > AbstractProcessorLight.java:66)
> > > > >> > > > > >         at org.apache.coyote.AbstractProtocol$
> > > > >> > > > ConnectionHandler.process(
> > > > >> > > > > > AbstractProtocol.java:798)
> > > > >> > > > > >         at org.apache.tomcat.util.net.Nio
> > > > >> Endpoint$SocketProcessor.
> > > > >> > > > > > doRun(NioEndpoint.java:1434)
> > > > >> > > > > >         at org.apache.tomcat.util.net.
> > > > SocketProcessorBase.run(
> > > > >> > > > > > SocketProcessorBase.java:49)
> > > > >> > > > > >         at java.util.concurrent.
> > > ThreadPoolExecutor.runWorker(
> > > > >> > > > > > ThreadPoolExecutor.java:1142)
> > > > >> > > > > >         at java.util.concurrent.
> > > > ThreadPoolExecutor$Worker.run(
> > > > >> > > > > > ThreadPoolExecutor.java:617)
> > > > >> > > > > >         at org.apache.tomcat.util.threads.TaskThread$
> > > > >> > > > > WrappingRunnable.run(
> > > > >> > > > > > TaskThread.java:61)
> > > > >> > > > > >         at java.lang.Thread.run(Thread.java:745)
> > > > >> > > > > > Caused by: org.apache.openejb.SystemException:
> > > > >> javax.transaction.
> > > > >> > > > > SystemException:
> > > > >> > > > > > Error during two phase commit: Error during two phase
> > commit
> > > > >> > > > > >         at org.apache.openejb.core.transaction.
> > > > >> > JtaTransactionPolicy.
> > > > >> > > > > > completeTransaction(JtaTransactionPolicy.java:364)
> > > > >> > > > > >         at org.apache.openejb.core.transa
> > > > >> ction.TxRequired.commit(
> > > > >> > > > > > TxRequired.java:76)
> > > > >> > > > > >         at org.apache.openejb.core.transa
> > > > >> ction.EjbTransactionUtil.
> > > > >> > > > > > afterInvoke(EjbTransactionUtil.java:77)
> > > > >> > > > > >         at org.apache.openejb.core.statel
> > > > >> ess.StatelessContainer._
> > > > >> > > > > > invoke(StatelessContainer.java:271)
> > > > >> > > > > >         at org.apache.openejb.core.statel
> > > > >> ess.StatelessContainer.
> > > > >> > > > > > invoke(StatelessContainer.java:212)
> > > > >> > > > > >         at org.apache.openejb.server.cxf.
> > > > ejb.EjbMethodInvoker.
> > > > >> > > > > > preEjbInvoke(EjbMethodInvoker.java:125)
> > > > >> > > > > >         ... 31 more
> > > > >> > > > > > Caused by: javax.transaction.SystemException: Error
> > during
> > > > two
> > > > >> > phase
> > > > >> > > > > > commit
> > > > >> > > > > >         at org.apache.geronimo.transaction.manager.
> > > > >> > TransactionImpl.
> > > > >> > > > > > commitResource(TransactionImpl.java:683)
> > > > >> > > > > >         at org.apache.geronimo.transaction.manager.
> > > > >> > > > > TransactionImpl.commit(
> > > > >> > > > > > TransactionImpl.java:305)
> > > > >> > > > > >         at org.apache.geronimo.transaction.manager.
> > > > >> > > > > > TransactionManagerImpl.commit(
> > TransactionManagerImpl.java:
> > > > 252)
> > > > >> > > > > >         at org.apache.openejb.core.transaction.
> > > > >> > JtaTransactionPolicy.
> > > > >> > > > > > completeTransaction(JtaTransactionPolicy.java:331)
> > > > >> > > > > >         ... 36 more
> > > > >> > > > > > Caused by: javax.transaction.xa.XAException
> > > > >> > > > > >         at org.apache.openejb.resource.
> > jdbc.managed.local.
> > > > >> > > > > > LocalXAResource.commit(LocalXAResource.java:134)
> > > > >> > > > > >         at org.apache.geronimo.transaction.manager.
> > > > >> > TransactionImpl.
> > > > >> > > > > > commitResource(TransactionImpl.java:627)
> > > > >> > > > > >         ... 39 more
> > > > >> > > > > > Caused by: java.sql.SQLException: Could not retrieve
> > > > transation
> > > > >> > > > read-only
> > > > >> > > > > > status server
> > > > >> > > > > >         at com.mysql.jdbc.SQLError.
> > > > createSQLException(SQLError.
> > > > >> > > > java:957)
> > > > >> > > > > >         at com.mysql.jdbc.SQLError.
> > > > createSQLException(SQLError.
> > > > >> > > > java:896)
> > > > >> > > > > >         at com.mysql.jdbc.SQLError.
> > > > createSQLException(SQLError.
> > > > >> > > > java:885)
> > > > >> > > > > >         at com.mysql.jdbc.SQLError.
> > > > createSQLException(SQLError.
> > > > >> > > > java:860)
> > > > >> > > > > >         at com.mysql.jdbc.SQLError.
> > > > createSQLException(SQLError.
> > > > >> > > > java:877)
> > > > >> > > > > >         at com.mysql.jdbc.SQLError.
> > > > createSQLException(SQLError.
> > > > >> > > > java:873)
> > > > >> > > > > >         at com.mysql.jdbc.ConnectionImpl.
> > > > >> > isReadOnly(ConnectionImpl.
> > > > >> > > > > > java:3629)
> > > > >> > > > > >         at com.mysql.jdbc.ConnectionImpl.
> > > > >> > isReadOnly(ConnectionImpl.
> > > > >> > > > > > java:3598)
> > > > >> > > > > >         at sun.reflect.NativeMethodAccessorImpl.
> > > > invoke0(Native
> > > > >> > > Method)
> > > > >> > > > > >         at sun.reflect.NativeMethodAccessorImpl.invoke(
> > > > >> > > > > > NativeMethodAccessorImpl.java:62)
> > > > >> > > > > >         at sun.reflect.DelegatingMethodAccessorImpl.
> > invoke(
> > > > >> > > > > > DelegatingMethodAccessorImpl.java:43)
> > > > >> > > > > >         at java.lang.reflect.Method.
> > invoke(Method.java:498)
> > > > >> > > > > >         at org.apache.tomcat.jdbc.pool.
> > > > ProxyConnection.invoke(
> > > > >> > > > > > ProxyConnection.java:126)
> > > > >> > > > > >         at org.apache.tomcat.jdbc.pool.
> > > > JdbcInterceptor.invoke(
> > > > >> > > > > > JdbcInterceptor.java:108)
> > > > >> > > > > >         at org.apache.tomcat.jdbc.pool.Di
> > > > >> sposableConnectionFacade.
> > > > >> > > > > invoke(
> > > > >> > > > > > DisposableConnectionFacade.java:81)
> > > > >> > > > > >         at com.sun.proxy.$Proxy61.isReadOnly(Unknown
> > > Source)
> > > > >> > > > > >         at org.apache.openejb.resource.
> > jdbc.managed.local.
> > > > >> > > > > > LocalXAResource.commit(LocalXAResource.java:130)
> > > > >> > > > > >         ... 40 more
> > > > >> > > > > > Caused by: com.mysql.jdbc.exceptions.
> > > > >> > jdbc4.CommunicationsException:
> > > > >> > > > > > Communications link failure
> > > > >> > > > > >
> > > > >> > > > > >
> > > > >> > > > > > Attached is a basic test project with an EJB. I based it
> > on
> > > an
> > > > >> > > existing
> > > > >> > > > > > TomEE example on github. The example shows that the EJB
> > > > returns
> > > > >> > > > > > successfully even though the commit should have failed.
> > > > >> > > > > >
> > > > >> > > > > >
> > > > >> > > > > >
> > > > >> > > > > >
> > > > >> > > > > > On 2 May 2017 at 07:59, Romain Manni-Bucau <
> > > > >> rmannibucau@gmail.com>
> > > > >> > > > > wrote:
> > > > >> > > > > >
> > > > >> > > > > >> Interesting since it tends to comfort the timeout
> issue.
> > > > >> > > > > >>
> > > > >> > > > > >> Can you try putting some aggressive db timeout? Or
> > > > transaction
> > > > >> > > manager
> > > > >> > > > > >> timeout - default is 10mn, way too high for http.
> > > > >> > > > > >>
> > > > >> > > > > >> If still an issue I d apprecoate a small github project
> > > with
> > > > a
> > > > >> > > > failling
> > > > >> > > > > >> arquillian test with your idea if possible.
> > > > >> > > > > >>
> > > > >> > > > > >> Le 1 mai 2017 23:53, "Paul Carter-Brown"
> > > > >> > > <paul.carter-brown@smilecoms.
> > > > >> > > > > com
> > > > >> > > > > >> >
> > > > >> > > > > >> a écrit :
> > > > >> > > > > >>
> > > > >> > > > > >> > Hi Romain,
> > > > >> > > > > >> >
> > > > >> > > > > >> > I'm struggling to think of a way to test this as it
> > would
> > > > >> > involve
> > > > >> > > > > >> modifying
> > > > >> > > > > >> > code in TomEE core as part of the test. I found an
> > > > >> easy-enough
> > > > >> > way
> > > > >> > > > is
> > > > >> > > > > to
> > > > >> > > > > >> > have a JAW-WS service with CMP that does some DB
> > changes.
> > > > >> Then
> > > > >> > at
> > > > >> > > > the
> > > > >> > > > > >> end
> > > > >> > > > > >> > of the business method just before returning, sleep
> for
> > > say
> > > > >> 20s.
> > > > >> > > > When
> > > > >> > > > > >> you
> > > > >> > > > > >> > call the service, during those 20s, shut down the
> > > database.
> > > > >> You
> > > > >> > > > should
> > > > >> > > > > >> see
> > > > >> > > > > >> > that although the commit fails due to the DB having
> > gone
> > > > >> away,
> > > > >> > the
> > > > >> > > > > SOAP
> > > > >> > > > > >> > service will respond successfully.
> > > > >> > > > > >> >
> > > > >> > > > > >> > On 1 May 2017 at 21:29, Romain Manni-Bucau <
> > > > >> > rmannibucau@gmail.com
> > > > >> > > >
> > > > >> > > > > >> wrote:
> > > > >> > > > > >> >
> > > > >> > > > > >> > > then it should happen also with hsqldb and you can
> > > > probably
> > > > >> > > share
> > > > >> > > > a
> > > > >> > > > > >> small
> > > > >> > > > > >> > > sample on github. Main challenge is to write a
> small
> > > > >> failling
> > > > >> > > > test.
> > > > >> > > > > >> Will
> > > > >> > > > > >> > > try to have a look in the week.
> > > > >> > > > > >> > >
> > > > >> > > > > >> > > PS: thought to a case it can happen and is not
> > > abnormal:
> > > > a
> > > > >> > > > timeout.
> > > > >> > > > > If
> > > > >> > > > > >> > you
> > > > >> > > > > >> > > timeout the EJB method is not cancelled so you get
> > the
> > > > >> > response
> > > > >> > > > > before
> > > > >> > > > > >> > the
> > > > >> > > > > >> > > commit but this is "normal".
> > > > >> > > > > >> > >
> > > > >> > > > > >> > >
> > > > >> > > > > >> > > 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-05-01 21:18 GMT+02:00 Paul Carter-Brown <
> > > > >> > > > > >> > > paul.carter-brown@smilecoms.com>:
> > > > >> > > > > >> > >
> > > > >> > > > > >> > > > Hi Romain,
> > > > >> > > > > >> > > >
> > > > >> > > > > >> > > > I modifed that class as follows:
> > > > >> > > > > >> > > >
> > > > >> > > > > >> > > > public void commit() throws ApplicationException,
> > > > >> > > > SystemException
> > > > >> > > > > {
> > > > >> > > > > >> > > >         // only commit if we started the
> > transaction
> > > > >> > > > > >> > > >         log.warn("In commit - sleeping for
> > 3000ms");
> > > > >> > > > > >> > > >         try {
> > > > >> > > > > >> > > >             Thread.sleep(3000);
> > > > >> > > > > >> > > >         } catch (Exception e) {
> > > > >> > > > > >> > > >             log.warn("Error in sleep");
> > > > >> > > > > >> > > >         }
> > > > >> > > > > >> > > >         log.warn("Woke up from sleep");
> > > > >> > > > > >> > > >         if (clientTx == null) {
> > > > >> > > > > >> > > >             log.warn("In commit - clientTx is
> > null");
> > > > >> > > > > >> > > >             completeTransaction(currentTx);
> > > > >> > > > > >> > > >         } else {
> > > > >> > > > > >> > > >             log.warn("In commit - clientTx is not
> > > > null");
> > > > >> > > > > >> > > >             fireNonTransactionalCompletion();
> > > > >> > > > > >> > > >         }
> > > > >> > > > > >> > > >     }
> > > > >> > > > > >> > > >
> > > > >> > > > > >> > > > Here is the timing of the wireshark
> > request/response:
> > > > >> > > > > >> > > > 462 20:35:11.046374    10.0.1.57 -> 10.0.1.57
> > > > HTTP/XML
> > > > >> > 2124
> > > > >> > > > > POST
> > > > >> > > > > >> > > > /IM/IdentityManager HTTP/1.1
> > > > >> > > > > >> > > > 464 20:35:11.082010    10.0.1.57 -> 10.0.1.57
> > > > HTTP/XML
> > > > >> > 384
> > > > >> > > > > >> HTTP/1.1
> > > > >> > > > > >> > > 200
> > > > >> > > > > >> > > >
> > > > >> > > > > >> > > > My JMeter client reported a response time of 52ms
> > on
> > > > the
> > > > >> > SOAP
> > > > >> > > > > call.
> > > > >> > > > > >> > > >
> > > > >> > > > > >> > > > And the TomEE logs:
> > > > >> > > > > >> > > >
> > > > >> > > > > >> > > > 2017/05/01 20:35:11.046 FINE
> > > > >> > > > > >> > > >  [TomEE-Exec-12][206][org.apache.cxf.phase.
> > > > >> > PhaseInterceptorCh
> > > > >> > > > > >> ain.add]
> > > > >> > > > > >> > > > |Adding interceptor
> > > > >> > > > > >> > > > org.apache.cxf.transport.https
> > > > >> .CertConstraintsInterceptor@
> > > > >> > > > > 3a37dedb
> > > > >> > > > > >> to
> > > > >> > > > > >> > > > phase
> > > > >> > > > > >> > > > pre-stream
> > > > >> > > > > >> > > > 2017/05/01 20:35:11.047 FINE
> > > > >> > > > > >> > > >  [TomEE-Exec-12][206][org.apache.cxf.phase.
> > > > >> > > > PhaseInterceptorChain.
> > > > >> > > > > >> > > > outputChainToLog]
> > > > >> > > > > >> > > > |Chain org.apache.cxf.phase.PhaseInte
> > > > >> rceptorChain@16d0091a
> > > > >> > > was
> > > > >> > > > > >> > created.
> > > > >> > > > > >> > > > Current flow:
> > > > >> > > > > >> > > >   receive [PolicyInInterceptor,
> > > SaajInFaultInterceptor,
> > > > >> > > > > >> > > > AttachmentInInterceptor]
> > > > >> > > > > >> > > >   pre-stream [CertConstraintsInterceptor]
> > > > >> > > > > >> > > >   post-stream [StaxInInterceptor]
> > > > >> > > > > >> > > >   read [SAAJPreInInterceptor, WSDLGetInterceptor,
> > > > >> > > > > >> > ReadHeadersInterceptor,
> > > > >> > > > > >> > > > SoapActionInInterceptor, StartBodyInterceptor]
> > > > >> > > > > >> > > >   pre-protocol [SAAJInInterceptor]
> > > > >> > > > > >> > > >   post-protocol [CheckFaultInterceptor,
> > > > >> > > > > >> JAXBAttachmentSchemaValidation
> > > > >> > > > > >> > > > Hack]
> > > > >> > > > > >> > > >   unmarshal [DocLiteralInInterceptor,
> > > > >> SoapHeaderInterceptor]
> > > > >> > > > > >> > > >   pre-logical [OneWayProcessorInterceptor]
> > > > >> > > > > >> > > >   post-logical [WrapperClassInInterceptor]
> > > > >> > > > > >> > > >   pre-invoke [SwAInInterceptor,
> > HolderInInterceptor]
> > > > >> > > > > >> > > >   invoke [ServiceInvokerInterceptor]
> > > > >> > > > > >> > > >   post-invoke [SaajInInterceptor,
> > > > >> OutgoingChainInterceptor]
> > > > >> > > > > >> > > >
> > > > >> > > > > >> > > > ...... (further logs of incoming processing)
> > > > >> > > > > >> > > >
> > > > >> > > > > >> > > > 2017/05/01 20:35:11.081 FINE
> > > > >> > > > > >> > > >  [TomEE-Exec-12][206][org.apache.cxf.phase.
> > > > >> > > > PhaseInterceptorChain.
> > > > >> > > > > >> > > > doIntercept]
> > > > >> > > > > >> > > > |Invoking handleMessage on interceptor
> > > > >> > > > > >> > > > org.apache.cxf.binding.soap.in
> > > > >> terceptor.SoapOutInterceptor$
> > > > >> > > > > >> > > > SoapOutEndingInterceptor@1f0dd756
> > > > >> > > > > >> > > > 2017/05/01 20:35:11.081 FINE
> > > > >> > > > > >> > > >  [TomEE-Exec-12][206][org.apache.cxf.phase.
> > > > >> > > > PhaseInterceptorChain.
> > > > >> > > > > >> > > > doIntercept]
> > > > >> > > > > >> > > > |Invoking handleMessage on interceptor
> > > > >> > > > > >> > > > org.apache.cxf.binding.soap.
> > saaj.SAAJOutInterceptor$
> > > > >> > > > > >> > > > SAAJOutEndingInterceptor@720f2664
> > > > >> > > > > >> > > > 2017/05/01 20:35:11.081 FINE
> > > > >> > > > > >> > > >  [TomEE-Exec-12][206][org.apache.cxf.phase.
> > > > >> > > > PhaseInterceptorChain.
> > > > >> > > > > >> > > > doIntercept]
> > > > >> > > > > >> > > > |Invoking handleMessage on interceptor
> > > > >> > > > > >> > > > org.apache.cxf.interceptor.
> > StaxOutEndingInterceptor@
> > > > >> > 3b5f0e7e
> > > > >> > > > > >> > > > 2017/05/01 20:35:11.081 FINE
> > > > >> > > > > >> > > >  [TomEE-Exec-12][206][org.apache.cxf.phase.
> > > > >> > > > PhaseInterceptorChain.
> > > > >> > > > > >> > > > doIntercept]
> > > > >> > > > > >> > > > |Invoking handleMessage on interceptor
> > > > >> > > > > >> > > > org.apache.cxf.interceptor.
> > MessageSenderInterceptor$
> > > > >> > > > > >> > > > MessageSenderEndingInterceptor@6ae1d81a
> > > > >> > > > > >> > > >
> > > > >> > > > > >> > > > *2017/05/01 20:35:11.082 WARNING
> > > > >> > > > > >> > > > [TomEE-Exec-12][206][org.apache.openejb.core.
> > > > >> > > > > >> > > > transaction.TxRequired.commit]
> > > > >> > > > > >> > > > |In commit - sleeping for 3000ms*
> > > > >> > > > > >> > > > *2017/05/01 20:35:14.082 WARNING
> > > > >> > > > > >> > > > [TomEE-Exec-12][206][org.apache.openejb.core.
> > > > >> > > > > >> > > > transaction.TxRequired.commit]
> > > > >> > > > > >> > > > |Woke up from sleep*
> > > > >> > > > > >> > > > 2017/05/01 20:35:14.082 WARNING
> > > > >> > > > > >> > > > [TomEE-Exec-12][206][org.apache.openejb.core.
> > > > >> > > > > >> > > > transaction.TxRequired.commit]
> > > > >> > > > > >> > > > |In commit - clientTx is null
> > > > >> > > > > >> > > > 2017/05/01 20:35:14.083 FINE
> > > > >> > > > > >> > > >  [TomEE-Exec-12][206][com.smile
> > > > >> coms.commons.base.lifecycle.
> > > > >> > > > > >> > > > SmileConnectionLifecycleInterc
> > > eptor.transactionBegun]
> > > > >> > > > > >> > > > |TransactionBegun called on
> > > > >> [com.mysql.jdbc.JDBC4Connectio
> > > > >> > > > > >> n@7d0cc890]
> > > > >> > > > > >> > > > 2017/05/01 20:35:14.083 FINE
> > > > >> > > > > >> > > >  [TomEE-Exec-12][206][com.smile
> > > > >> coms.commons.base.lifecycle.
> > > > >> > > > > >> > > > SmileConnectionLifecycleInterceptor.commit]
> > > > >> > > > > >> > > > |Commit called on [com.mysql.jdbc.JDBC4Connectio
> > > > >> n@7d0cc890]
> > > > >> > > > > >> > > > 2017/05/01 20:35:14.083 FINE
> > > > >> > > > > >> > > >  [TomEE-Exec-12][206][com.smile
> > > > >> coms.commons.base.lifecycle.
> > > > >> > > > > >> > > > SmileConnectionLifecycleInterceptor.commit]
> > > > >> > > > > >> > > > |Stack:
> > > > >> > > > > >> > > > java.lang.Exception
> > > > >> > > > > >> > > >         at
> > > > >> > > > > >> > > > com.smilecoms.commons.base.lifecycle.
> > > > >> > > > > SmileConnectionLifecycleInterc
> > > > >> > > > > >> > > > eptor.commit(SmileConnectionLi
> > > > >> fecycleInterceptor.java:34)
> > > > >> > > > > >> > > >         at com.mysql.jdbc.ConnectionImpl$
> > > > >> > > > > >> > 2.forEach(ConnectionImpl.java:
> > > > >> > > > > >> > > > 1593)
> > > > >> > > > > >> > > >         at com.mysql.jdbc.ConnectionImpl$
> > > > >> > > > > >> > 2.forEach(ConnectionImpl.java:
> > > > >> > > > > >> > > > 1592)
> > > > >> > > > > >> > > >         at com.mysql.jdbc.IterateBlock.do
> > > > >> > > > > >> ForAll(IterateBlock.java:61)
> > > > >> > > > > >> > > >         at com.mysql.jdbc.ConnectionImpl.
> > > > >> > > > > >> commit(ConnectionImpl.java:
> > > > >> > > > > >> > > 1599)
> > > > >> > > > > >> > > >         at sun.reflect.
> GeneratedMethodAccessor145.
> > > > >> > > > invoke(Unknown
> > > > >> > > > > >> > Source)
> > > > >> > > > > >> > > >         at
> > > > >> > > > > >> > > > sun.reflect.DelegatingMethodAccessorImpl.invoke(
> > > > >> > > > > >> > > > DelegatingMethodAccessorImpl.java:43)
> > > > >> > > > > >> > > >         at java.lang.reflect.Method.invok
> > > > >> e(Method.java:498)
> > > > >> > > > > >> > > >         at
> > > > >> > > > > >> > > > org.apache.tomcat.jdbc.pool.
> > ProxyConnection.invoke(
> > > > >> > > > > >> > > > ProxyConnection.java:126)
> > > > >> > > > > >> > > >         at
> > > > >> > > > > >> > > > org.apache.tomcat.jdbc.pool.
> > JdbcInterceptor.invoke(
> > > > >> > > > > >> > > > JdbcInterceptor.java:108)
> > > > >> > > > > >> > > >         at
> > > > >> > > > > >> > > > org.apache.tomcat.jdbc.pool.
> > > > DisposableConnectionFacade.
> > > > >> > > invoke(
> > > > >> > > > > >> > > > DisposableConnectionFacade.java:81)
> > > > >> > > > > >> > > >         at com.sun.proxy.$Proxy58.commit(Unknown
> > > > Source)
> > > > >> > > > > >> > > >         at
> > > > >> > > > > >> > > > org.apache.openejb.resource.jdbc.managed.local.
> > > > >> > LocalXAResour
> > > > >> > > > > >> ce.commit(
> > > > >> > > > > >> > > > LocalXAResource.java:131)
> > > > >> > > > > >> > > >         at
> > > > >> > > > > >> > > > org.apache.geronimo.transaction.manager.
> > > > TransactionImpl.
> > > > >> > > > > >> > commitResource(
> > > > >> > > > > >> > > > TransactionImpl.java:627)
> > > > >> > > > > >> > > >         at
> > > > >> > > > > >> > > > org.apache.geronimo.transaction.manager.
> > > > >> > > TransactionImpl.commit(
> > > > >> > > > > >> > > > TransactionImpl.java:305)
> > > > >> > > > > >> > > >         at
> > > > >> > > > > >> > > > org.apache.geronimo.transaction.manager.
> > > > >> > TransactionManagerIm
> > > > >> > > > > >> pl.commit(
> > > > >> > > > > >> > > > TransactionManagerImpl.java:252)
> > > > >> > > > > >> > > >         at
> > > > >> > > > > >> > > > org.apache.openejb.core.transa
> > > > >> ction.JtaTransactionPolicy.
> > > > >> > > > > >> > > > completeTransaction(
> JtaTransactionPolicy.java:331)
> > > > >> > > > > >> > > >         at
> > > > >> > > > > >> > > > org.apache.openejb.core.
> > > transaction.TxRequired.commit(
> > > > >> > > > > >> > > TxRequired.java:91)
> > > > >> > > > > >> > > >         at
> > > > >> > > > > >> > > > org.apache.openejb.core.transaction.
> > > > EjbTransactionUtil.
> > > > >> > > > > afterInvoke(
> > > > >> > > > > >> > > > EjbTransactionUtil.java:77)
> > > > >> > > > > >> > > >         at
> > > > >> > > > > >> > > > org.apache.openejb.core.
> > > stateless.StatelessContainer._
> > > > >> > > > > >> > > > invoke(StatelessContainer.java:271)
> > > > >> > > > > >> > > >         at
> > > > >> > > > > >> > > > org.apache.openejb.core.
> > > stateless.StatelessContainer.
> > > > >> > > > > >> > > > invoke(StatelessContainer.java:212)
> > > > >> > > > > >> > > >         at
> > > > >> > > > > >> > > > org.apache.openejb.server.cxf.
> > ejb.EjbMethodInvoker.
> > > > >> > > > > >> > > > preEjbInvoke(EjbMethodInvoker.java:125)
> > > > >> > > > > >> > > >         at
> > > > >> > > > > >> > > > org.apache.openejb.server.cxf.
> > > > >> ejb.EjbMethodInvoker.invoke(
> > > > >> > > > > >> > > > EjbMethodInvoker.java:82)
> > > > >> > > > > >> > > >         at
> > > > >> > > > > >> > > > org.apache.cxf.interceptor.
> > > > ServiceInvokerInterceptor$1.
> > > > >> > > > > >> > > > run(ServiceInvokerInterceptor.java:59)
> > > > >> > > > > >> > > >         at
> > > > >> > > > > >> > > > java.util.concurrent.Executors$RunnableAdapter.
> > > > >> > > > > >> > call(Executors.java:511)
> > > > >> > > > > >> > > >         at java.util.concurrent.FutureTas
> > > > >> k.run(FutureTask.
> > > > >> > > > > java:266)
> > > > >> > > > > >> > > >         at
> > > > >> > > > > >> > > > org.apache.cxf.interceptor.
> > > > ServiceInvokerInterceptor$2.
> > > > >> > > > > >> > > > run(ServiceInvokerInterceptor.java:126)
> > > > >> > > > > >> > > >         at
> > > > >> > > > > >> > > > org.apache.cxf.workqueue.
> > > SynchronousExecutor.execute(
> > > > >> > > > > >> > > > SynchronousExecutor.java:37)
> > > > >> > > > > >> > > >         at
> > > > >> > > > > >> > > > org.apache.cxf.interceptor.
> > > ServiceInvokerInterceptor.
> > > > >> > > > > handleMessage(
> > > > >> > > > > >> > > > ServiceInvokerInterceptor.java:131)
> > > > >> > > > > >> > > >         at
> > > > >> > > > > >> > > > org.apache.cxf.phase.PhaseInterceptorChain.
> > > > doIntercept(
> > > > >> > > > > >> > > > PhaseInterceptorChain.java:308)
> > > > >> > > > > >> > > >         at
> > > > >> > > > > >> > > > org.apache.cxf.transport.Chain
> > > > >> InitiationObserver.onMessage(
> > > > >> > > > > >> > > > ChainInitiationObserver.java:121)
> > > > >> > > > > >> > > >         at
> > > > >> > > > > >> > > > org.apache.cxf.transport.http.
> > > AbstractHTTPDestination.
> > > > >> > invoke(
> > > > >> > > > > >> > > > AbstractHTTPDestination.java:262)
> > > > >> > > > > >> > > >         at
> > > > >> > > > > >> > > > org.apache.openejb.server.cxf.
> > > > CxfWsContainer.onMessage(
> > > > >> > > > > >> > > > CxfWsContainer.java:85)
> > > > >> > > > > >> > > >         at
> > > > >> > > > > >> > > > org.apache.openejb.server.
> > > > webservices.WsServlet.service(
> > > > >> > > > > >> > > WsServlet.java:98)
> > > > >> > > > > >> > > >         at
> > > > >> > > > > >> > > > org.apache.catalina.core.ApplicationFilterChain.
> > > > >> > > > internalDoFilter(
> > > > >> > > > > >> > > > ApplicationFilterChain.java:230)
> > > > >> > > > > >> > > >         at
> > > > >> > > > > >> > > > org.apache.catalina.core.Appli
> > > > >> cationFilterChain.doFilter(
> > > > >> > > > > >> > > > ApplicationFilterChain.java:165)
> > > > >> > > > > >> > > >         at
> > > > >> > > > > >> > > > org.apache.catalina.core.
> > > StandardWrapperValve.invoke(
> > > > >> > > > > >> > > > StandardWrapperValve.java:198)
> > > > >> > > > > >> > > >         at
> > > > >> > > > > >> > > > org.apache.catalina.core.
> > > StandardContextValve.invoke(
> > > > >> > > > > >> > > > StandardContextValve.java:96)
> > > > >> > > > > >> > > >         at
> > > > >> > > > > >> > > > org.apache.catalina.core.
> StandardHostValve.invoke(
> > > > >> > > > > >> > > > StandardHostValve.java:140)
> > > > >> > > > > >> > > >         at
> > > > >> > > > > >> > > > org.apache.catalina.valves.
> > ErrorReportValve.invoke(
> > > > >> > > > > >> > > > ErrorReportValve.java:79)
> > > > >> > > > > >> > > >         at
> > > > >> > > > > >> > > > org.apache.tomee.catalina.
> OpenEJBSecurityListener$
> > > > >> > > > > >> > > RequestCapturer.invoke(
> > > > >> > > > > >> > > > OpenEJBSecurityListener.java:97)
> > > > >> > > > > >> > > >         at
> > > > >> > > > > >> > > > org.apache.catalina.core.
> > StandardEngineValve.invoke(
> > > > >> > > > > >> > > > StandardEngineValve.java:87)
> > > > >> > > > > >> > > >         at
> > > > >> > > > > >> > > > org.apache.catalina.connector.
> > CoyoteAdapter.service(
> > > > >> > > > > >> > > > CoyoteAdapter.java:349)
> > > > >> > > > > >> > > >         at
> > > > >> > > > > >> > > > org.apache.coyote.http11.
> Http11Processor.service(
> > > > >> > > > > >> > > Http11Processor.java:783)
> > > > >> > > > > >> > > >         at
> > > > >> > > > > >> > > > org.apache.coyote.AbstractProcessorLight.
> process(
> > > > >> > > > > >> > > > AbstractProcessorLight.java:66)
> > > > >> > > > > >> > > >         at
> > > > >> > > > > >> > > > org.apache.coyote.AbstractProtocol$
> > > > >> > ConnectionHandler.process(
> > > > >> > > > > >> > > > AbstractProtocol.java:798)
> > > > >> > > > > >> > > >         at
> > > > >> > > > > >> > > > org.apache.tomcat.util.net.
> > > > NioEndpoint$SocketProcessor.
> > > > >> > > > > >> > > > doRun(NioEndpoint.java:1434)
> > > > >> > > > > >> > > >         at
> > > > >> > > > > >> > > > org.apache.tomcat.util.net.
> > SocketProcessorBase.run(
> > > > >> > > > > >> > > > SocketProcessorBase.java:49)
> > > > >> > > > > >> > > >         at
> > > > >> > > > > >> > > > java.util.concurrent.
> ThreadPoolExecutor.runWorker(
> > > > >> > > > > >> > > > ThreadPoolExecutor.java:1142)
> > > > >> > > > > >> > > >         at
> > > > >> > > > > >> > > > java.util.concurrent.
> > ThreadPoolExecutor$Worker.run(
> > > > >> > > > > >> > > > ThreadPoolExecutor.java:617)
> > > > >> > > > > >> > > >         at
> > > > >> > > > > >> > > > org.apache.tomcat.util.threads.TaskThread$
> > > > >> > > WrappingRunnable.run(
> > > > >> > > > > >> > > > TaskThread.java:61)
> > > > >> > > > > >> > > >         at java.lang.Thread.run(Thread.java:745)
> > > > >> > > > > >> > > >
> > > > >> > > > > >> > > > 2017/05/01 20:35:14.084 FINE
> > > > >> > > > > >> > > >  [TomEE-Exec-12][206][com.smile
> > > > >> coms.commons.base.lifecycle.
> > > > >> > > > > >> > > > SmileConnectionLifecycleInterc
> > > > >> eptor.transactionCompleted]
> > > > >> > > > > >> > > > |TransactionCompleted called on [com.mysql.jdbc.
> > > > >> > > > > >> > JDBC4Connection@7d0cc890
> > > > >> > > > > >> > > ]
> > > > >> > > > > >> > > > 2017/05/01 20:35:14.084 WARNING
> > > > >> > > > > >> > > > [TomEE-Exec-12][206][org.apach
> > > > >> e.openejb.core.transaction.
> > > > >> > > > > >> TxRequired.
> > > > >> > > > > >> > > > getCurrentTransaction]
> > > > >> > > > > >> > > > |In getCurrentTransaction
> > > > >> > > > > >> > > > 2017/05/01 20:35:14.084 FINE
> > > > >> > > > > >> > > >  [TomEE-Exec-12][206][org.apache.cxf.phase.
> > > > >> > > > PhaseInterceptorChain.
> > > > >> > > > > >> > > > doIntercept]
> > > > >> > > > > >> > > > |Invoking handleMessage on interceptor
> > > > >> > > > > >> > > > org.apache.openejb.server.cxf.
> > > > client.SaajInInterceptor@
> > > > >> > > 3374eec1
> > > > >> > > > > >> > > > 2017/05/01 20:35:14.085 FINE
> > > > >> > > > > >> > > >  [TomEE-Exec-12][206][org.apache.cxf.phase.
> > > > >> > > > PhaseInterceptorChain.
> > > > >> > > > > >> > > > doIntercept]
> > > > >> > > > > >> > > > |Invoking handleMessage on interceptor
> > > > >> > > > > >> > > > org.apache.cxf.interceptor.
> > OutgoingChainInterceptor@
> > > > >> > 62316059
> > > > >> > > > > >> > > > 2017/05/01 20:35:14.085 FINE
> > > > >> > > > > >> > > >  [TomEE-Exec-12][206][org.apache.cxf.phase.
> > > > >> > PhaseInterceptorCh
> > > > >> > > > > >> ain.add]
> > > > >> > > > > >> > > > |Adding interceptor
> > > > >> > > > > >> > > > org.apache.cxf.transport.https
> > > > >> .CertConstraintsInterceptor@
> > > > >> > > > > 3a37dedb
> > > > >> > > > > >> to
> > > > >> > > > > >> > > > phase
> > > > >> > > > > >> > > > pre-stream
> > > > >> > > > > >> > > > 2017/05/01 20:35:14.085 FINE
> > > > >> > > > > >> > > >  [TomEE-Exec-12][206][org.apache.cxf.phase.
> > > > >> > > > PhaseInterceptorChain.
> > > > >> > > > > >> > > > outputChainToLog]
> > > > >> > > > > >> > > > |Chain org.apache.cxf.phase.PhaseInte
> > > > >> rceptorChain@301c8187
> > > > >> > > was
> > > > >> > > > > >> > created.
> > > > >> > > > > >> > > > Current flow:
> > > > >> > > > > >> > > >   receive [PolicyInInterceptor,
> > > SaajInFaultInterceptor,
> > > > >> > > > > >> > > > AttachmentInInterceptor]
> > > > >> > > > > >> > > >   pre-stream [CertConstraintsInterceptor]
> > > > >> > > > > >> > > >   post-stream [StaxInInterceptor]
> > > > >> > > > > >> > > >   read [SAAJPreInInterceptor, WSDLGetInterceptor,
> > > > >> > > > > >> > ReadHeadersInterceptor,
> > > > >> > > > > >> > > > SoapActionInInterceptor, StartBodyInterceptor]
> > > > >> > > > > >> > > >   pre-protocol [SAAJInInterceptor]
> > > > >> > > > > >> > > >   post-protocol [CheckFaultInterceptor,
> > > > >> > > > > >> JAXBAttachmentSchemaValidation
> > > > >> > > > > >> > > > Hack]
> > > > >> > > > > >> > > >   unmarshal [DocLiteralInInterceptor,
> > > > >> SoapHeaderInterceptor]
> > > > >> > > > > >> > > >   pre-logical [OneWayProcessorInterceptor]
> > > > >> > > > > >> > > >   post-logical [WrapperClassInInterceptor]
> > > > >> > > > > >> > > >   pre-invoke [SwAInInterceptor,
> > HolderInInterceptor]
> > > > >> > > > > >> > > >   invoke [ServiceInvokerInterceptor]
> > > > >> > > > > >> > > >   post-invoke [SaajInInterceptor,
> > > > >> OutgoingChainInterceptor]
> > > > >> > > > > >> > > >
> > > > >> > > > > >> > > > 2017/05/01 20:35:14.085 FINE
> > > > >> > > > > >> > > >  [TomEE-Exec-12][206][org.apache.cxf.phase.
> > > > >> > > > PhaseInterceptorChain.
> > > > >> > > > > >> > > > doIntercept]
> > > > >> > > > > >> > > > |Invoking handleMessage on interceptor
> > > > >> > > > > >> > > > org.apache.cxf.ws.policy.
> > > PolicyInInterceptor@6c760041
> > > > >> > > > > >> > > > 2017/05/01 20:35:14.085 FINE
> > > > >> > > > > >> > > >  [TomEE-Exec-12][206][org.apache.cxf.phase.
> > > > >> > > > PhaseInterceptorChain.
> > > > >> > > > > >> > > > doIntercept]
> > > > >> > > > > >> > > > |Invoking handleMessage on interceptor
> > > > >> > > > > >> > > > org.apache.openejb.server.cxf.
> > > > >> > client.SaajInFaultInterceptor@
> > > > >> > > > > 4d50ee8
> > > > >> > > > > >> > > >
> > > > >> > > > > >> > > >
> > > > >> > > > > >> > > > So this 100% confirms that the transaction is
> > > committed
> > > > >> > after
> > > > >> > > > the
> > > > >> > > > > >> > > response
> > > > >> > > > > >> > > > has been sent. I think this bug has major
> > > implications
> > > > on
> > > > >> > ACID
> > > > >> > > > > >> > > compliance.
> > > > >> > > > > >> > > > I also checked on 7.0.2 and found the same
> > behavior.
> > > > >> > > > > >> > > >
> > > > >> > > > > >> > > > Paul
> > > > >> > > > > >> > > >
> > > > >> > > > > >> > > > On 29 April 2017 at 09:57, Romain Manni-Bucau <
> > > > >> > > > > >> rmannibucau@gmail.com>
> > > > >> > > > > >> > > > wrote:
> > > > >> > > > > >> > > >
> > > > >> > > > > >> > > > > Ps:
> > > > >> > > > > >> > > > > https://github.com/apache/
> > > > tomee/blob/master/container/
> > > > >> > > > > >> > > > > openejb-core/src/main/java/
> > > org/apache/openejb/core/
> > > > >> > > > > >> > > > > transaction/TxRequired.java
> > > > >> > > > > >> > > > >
> > > > >> > > > > >> > > > > Le 29 avr. 2017 09:55, "Romain Manni-Bucau" <
> > > > >> > > > > >> rmannibucau@gmail.com>
> > > > >> > > > > >> > a
> > > > >> > > > > >> > > > > écrit :
> > > > >> > > > > >> > > > >
> > > > >> > > > > >> > > > > > Should be before. You can put breakpoint/logs
> > in
> > > > >> > TxPolicy
> > > > >> > > > and
> > > > >> > > > > >> your
> > > > >> > > > > >> > > ejb
> > > > >> > > > > >> > > > > >
> > > > >> > > > > >> > > > > > Le 29 avr. 2017 00:44, "Paul Carter-Brown"
> > > > >> > > > > >> > > > <paul.carter-brown@smilecoms.
> > > > >> > > > > >> > > > > > com> a écrit :
> > > > >> > > > > >> > > > > >
> > > > >> > > > > >> > > > > >> Hi Romain,
> > > > >> > > > > >> > > > > >>
> > > > >> > > > > >> > > > > >> A quick update. I put cxf logging on and
> for a
> > > > >> typical
> > > > >> > > > > message
> > > > >> > > > > >> > > > exchange
> > > > >> > > > > >> > > > > >> for
> > > > >> > > > > >> > > > > >> a JAX-WS service backed by an EJB.At the
> same
> > > > time I
> > > > >> > ran
> > > > >> > > a
> > > > >> > > > > >> > wireshark
> > > > >> > > > > >> > > > on
> > > > >> > > > > >> > > > > >> the
> > > > >> > > > > >> > > > > >> server to see the network traffic. This is
> > for a
> > > > >> single
> > > > >> > > > call
> > > > >> > > > > >> under
> > > > >> > > > > >> > > no
> > > > >> > > > > >> > > > > >> concurrency so you can easily verify
> yourself
> > > with
> > > > >> any
> > > > >> > > SOAP
> > > > >> > > > > >> > service
> > > > >> > > > > >> > > in
> > > > >> > > > > >> > > > > >> TomEE:
> > > > >> > > > > >> > > > > >>
> > > > >> > > > > >> > > > > >> 1438 00:09:05.510294    10.0.1.57 ->
> 10.0.1.57
> > > > >> > > HTTP/XML
> > > > >> > > > > 1223
> > > > >> > > > > >> > POST
> > > > >> > > > > >> > > > > >> /IM/IdentityManager HTTP/1.1
> > > > >> > > > > >> > > > > >> 1439 00:09:05.510436    10.0.1.57 ->
> 10.0.1.57
> > > > >> TCP
> > > > >> > 68
> > > > >> > > > > >> mcreport
> > > > >> > > > > >> > >
> > > > >> > > > > >> > > > > 40929
> > > > >> > > > > >> > > > > >> [ACK] Seq=1721 Ack=7983 Win=323456 Len=0
> > > > >> TSval=70303912
> > > > >> > > > > >> > > TSecr=70303912
> > > > >> > > > > >> > > > > >> 1440 00:09:05.527410    10.0.1.57 ->
> 10.0.1.57
> > > > >> > > HTTP/XML
> > > > >> > > > > 1852
> > > > >> > > > > >> > > > HTTP/1.1
> > > > >> > > > > >> > > > > >> 200
> > > > >> > > > > >> > > > > >> 1441 00:09:05.527453    10.0.1.57 ->
> 10.0.1.57
> > > > >> TCP
> > > > >> > 68
> > > > >> > > > > 40929
> > > > >> > > > > >> >
> > > > >> > > > > >> > > > > mcreport
> > > > >> > > > > >> > > > > >> [ACK] Seq=7983 Ack=3505 Win=178944 Len=0
> > > > >> TSval=70303916
> > > > >> > > > > >> > > TSecr=70303916
> > > > >> > > > > >> > > > > >>
> > > > >> > > > > >> > > > > >> So at 00:09:05.510 the server got the
> request.
> > > > Here
> > > > >> are
> > > > >> > > the
> > > > >> > > > > >> server
> > > > >> > > > > >> > > > logs
> > > > >> > > > > >> > > > > >> verifying this:
> > > > >> > > > > >> > > > > >>
> > > > >> > > > > >> > > > > >> 2017/04/29 00:09:05.510 FINE
> > > > >> > > > > >> > > > > >>  [TomEE-Exec-30][224][org.apache.cxf.phase.
> > > > >> > > > > >> > > PhaseInterceptorChain.add]
> > > > >> > > > > >> > > > > >> |Adding interceptor
> > > > >> > > > > >> > > > > >> org.apache.cxf.transport.https.
> > > > >> > > CertConstraintsInterceptor@
> > > > >> > > > > >> > 64623f81
> > > > >> > > > > >> > > to
> > > > >> > > > > >> > > > > >> phase
> > > > >> > > > > >> > > > > >> pre-stream
> > > > >> > > > > >> > > > > >> 2017/04/29 00:09:05.510 FINE
> > > > >> > > > > >> > > > > >>  [TomEE-Exec-30][224][org.apache.cxf.phase.
> > > > >> > > > PhaseInterceptorC
> > > > >> > > > > >> > > > > >> hain.outputChainToLog]
> > > > >> > > > > >> > > > > >> |Chain org.apache.cxf.phase.
> > > > >> > > PhaseInterceptorChain@713d71d3
> > > > >> > > > > was
> > > > >> > > > > >> > > > created.
> > > > >> > > > > >> > > > > >> Current flow:
> > > > >> > > > > >> > > > > >>   receive [PolicyInInterceptor,
> > > > >> SaajInFaultInterceptor,
> > > > >> > > > > >> > > > > >> AttachmentInInterceptor]
> > > > >> > > > > >> > > > > >>   pre-stream [CertConstraintsInterceptor]
> > > > >> > > > > >> > > > > >>   post-stream [StaxInInterceptor]
> > > > >> > > > > >> > > > > >>   read [SAAJPreInInterceptor,
> > > WSDLGetInterceptor,
> > > > >> > > > > >> > > > > ReadHeadersInterceptor,
> > > > >> > > > > >> > > > > >> SoapActionInInterceptor,
> StartBodyInterceptor]
> > > > >> > > > > >> > > > > >>   pre-protocol [SAAJInInterceptor]
> > > > >> > > > > >> > > > > >>   post-protocol [CheckFaultInterceptor,
> > > > >> > > > > >> > > JAXBAttachmentSchemaValidation
> > > > >> > > > > >> > > > > >> Hack]
> > > > >> > > > > >> > > > > >>   unmarshal [DocLiteralInInterceptor,
> > > > >> > > > SoapHeaderInterceptor]
> > > > >> > > > > >> > > > > >>   pre-logical [OneWayProcessorInterceptor]
> > > > >> > > > > >> > > > > >>   post-logical [WrapperClassInInterceptor]
> > > > >> > > > > >> > > > > >>   pre-invoke [SwAInInterceptor,
> > > > HolderInInterceptor]
> > > > >> > > > > >> > > > > >>   invoke [ServiceInvokerInterceptor]
> > > > >> > > > > >> > > > > >>   post-invoke [SaajInInterceptor,
> > > > >> > > OutgoingChainInterceptor]
> > > > >> > > > > >> > > > > >>
> > > > >> > > > > >> > > > > >> 2017/04/29 00:09:05.510 FINE
> > > > >> > > > > >> > > > > >>  [TomEE-Exec-30][224][org.apache.cxf.phase.
> > > > >> > > > PhaseInterceptorC
> > > > >> > > > > >> > > > > >> hain.doIntercept]
> > > > >> > > > > >> > > > > >> |Invoking handleMessage on interceptor
> > > > >> > > > > >> > > > > >> org.apache.cxf.ws.policy.Polic
> > > > >> yInInterceptor@1e78ace6
> > > > >> > > > > >> > > > > >> 2017/04/29 00:09:05.510 FINE
> > > > >> > > > > >> > > > > >>  [TomEE-Exec-30][224][org.apache.cxf.phase.
> > > > >> > > > PhaseInterceptorC
> > > > >> > > > > >> > > > > >> hain.doIntercept]
> > > > >> > > > > >> > > > > >> |Invoking handleMessage on interceptor
> > > > >> > > > > >> > > > > >> org.apache.openejb.server.cxf.
> > > > >> > > > client.SaajInFaultInterceptor@
> > > > >> > > > > >> > > 1338d078
> > > > >> > > > > >> > > > > >> 2017/04/29 00:09:05.510 FINE
> > > > >> > > > > >> > > > > >>  [TomEE-Exec-30][224][org.apache.cxf.phase.
> > > > >> > > > PhaseInterceptorC
> > > > >> > > > > >> > > > > >> hain.doIntercept]
> > > > >> > > > > >> > > > > >> |Invoking handleMessage on interceptor
> > > > >> > > > > >> > > > > >> org.apache.cxf.interceptor.
> > > > AttachmentInInterceptor@
> > > > >> > > > 5dea89fc
> > > > >> > > > > >> > > > > >> 2017/04/29 00:09:05.510 FINE
> > > > >> > > > > >> > > > > >>  [TomEE-Exec-30][224][org.apache.cxf.phase.
> > > > >> > > > PhaseInterceptorC
> > > > >> > > > > >> > > > > >> hain.doIntercept]
> > > > >> > > > > >> > > > > >> |Invoking handleMessage on interceptor
> > > > >> > > > > >> > > > > >> org.apache.cxf.transport.https.
> > > > >> > > CertConstraintsInterceptor@
> > > > >> > > > > >> > 64623f81
> > > > >> > > > > >> > > > > >> 2017/04/29 00:09:05.510 FINE
> > > > >> > > > > >> > > > > >>  [TomEE-Exec-30][224][org.apache.cxf.phase.
> > > > >> > > > PhaseInterceptorC
> > > > >> > > > > >> > > > > >> hain.doIntercept]
> > > > >> > > > > >> > > > > >> |Invoking handleMessage on interceptor
> > > > >> > > > > >> > > > > >> org.apache.cxf.interceptor.Sta
> > > > >> xInInterceptor@647520af
> > > > >> > > > > >> > > > > >> 2017/04/29 00:09:05.511 FINE
> > > > >> > > > > >> > > > > >>  [TomEE-Exec-30][224][org.apache.cxf.phase.
> > > > >> > > > > >> > > PhaseInterceptorChain.add]
> > > > >> > > > > >> > > > > >> |Adding interceptor
> > > > >> > > > > >> > > > > >> org.apache.cxf.interceptor.
> > > > StaxInEndingInterceptor@
> > > > >> > > > 39dd4830
> > > > >> > > > > to
> > > > >> > > > > >> > > phase
> > > > >> > > > > >> > > > > >> pre-invoke
> > > > >> > > > > >> > > > > >> 2017/04/29 00:09:05.511 FINE
> > > > >> > > > > >> > > > > >>  [TomEE-Exec-30][224][org.apache.cxf.phase.
> > > > >> > > > PhaseInterceptorC
> > > > >> > > > > >> > > > > >> hain.outputChainToLog]
> > > > >> > > > > >> > > > > >> |Chain org.apache.cxf.phase.
> > > > >> > > PhaseInterceptorChain@713d71d3
> > > > >> > > > > was
> > > > >> > > > > >> > > > > modified.
> > > > >> > > > > >> > > > > >> Current flow:
> > > > >> > > > > >> > > > > >>   receive [PolicyInInterceptor,
> > > > >> SaajInFaultInterceptor,
> > > > >> > > > > >> > > > > >> AttachmentInInterceptor]
> > > > >> > > > > >> > > > > >>   pre-stream [CertConstraintsInterceptor]
> > > > >> > > > > >> > > > > >>   post-stream [StaxInInterceptor]
> > > > >> > > > > >> > > > > >>   read [SAAJPreInInterceptor,
> > > WSDLGetInterceptor,
> > > > >> > > > > >> > > > > ReadHeadersInterceptor,
> > > > >> > > > > >> > > > > >> SoapActionInInterceptor,
> StartBodyInterceptor]
> > > > >> > > > > >> > > > > >>   pre-protocol [SAAJInInterceptor]
> > > > >> > > > > >> > > > > >>   post-protocol [CheckFaultInterceptor,
> > > > >> > > > > >> > > JAXBAttachmentSchemaValidation
> > > > >> > > > > >> > > > > >> Hack]
> > > > >> > > > > >> > > > > >>   unmarshal [DocLiteralInInterceptor,
> > > > >> > > > SoapHeaderInterceptor]
> > > > >> > > > > >> > > > > >>   pre-logical [OneWayProcessorInterceptor]
> > > > >> > > > > >> > > > > >>   post-logical [WrapperClassInInterceptor]
> > > > >> > > > > >> > > > > >>   pre-invoke [StaxInEndingInterceptor,
> > > > >> > SwAInInterceptor,
> > > > >> > > > > >> > > > > >> HolderInInterceptor]
> > > > >> > > > > >> > > > > >>   invoke [ServiceInvokerInterceptor]
> > > > >> > > > > >> > > > > >>   post-invoke [SaajInInterceptor,
> > > > >> > > OutgoingChainInterceptor]
> > > > >> > > > > >> > > > > >>
> > > > >> > > > > >> > > > > >> 2017/04/29 00:09:05.511 FINE
> > > > >> > > > > >> > > > > >>  [TomEE-Exec-30][224][org.apache.cxf.phase.
> > > > >> > > > PhaseInterceptorC
> > > > >> > > > > >> > > > > >> hain.doIntercept]
> > > > >> > > > > >> > > > > >> |Invoking handleMessage on interceptor
> > > > >> > > > > >> > > > > >> org.apache.cxf.binding.soap.
> > > > saaj.SAAJInInterceptor$
> > > > >> > > > SAAJPreIn
> > > > >> > > > > >> > > > > >> Interceptor@6c33f463
> > > > >> > > > > >> > > > > >> 2017/04/29 00:09:05.511 FINE
> > > > >> > > > > >> > > > > >>  [TomEE-Exec-30][224][org.apache.cxf.phase.
> > > > >> > > > PhaseInterceptorC
> > > > >> > > > > >> > > > > >> hain.doIntercept]
> > > > >> > > > > >> > > > > >> |Invoking handleMessage on interceptor
> > > > >> > > > > >> > > > > >> org.apache.cxf.frontend.
> > > > WSDLGetInterceptor@11c0446f
> > > > >> > > > > >> > > > > >> 2017/04/29 00:09:05.511 FINE
> > > > >> > > > > >> > > > > >>  [TomEE-Exec-30][224][org.apache.cxf.phase.
> > > > >> > > > PhaseInterceptorC
> > > > >> > > > > >> > > > > >> hain.doIntercept]
> > > > >> > > > > >> > > > > >> |Invoking handleMessage on interceptor
> > > > >> > > > > >> > > > > >> org.apache.cxf.binding.soap.interceptor.
> > > > >> > > > > >> > > > ReadHeadersInterceptor@be15cc5
> > > > >> > > > > >> > > > > >> 2017/04/29 00:09:05.511 FINE
> > > > >> > > > > >> > > > > >>  [TomEE-Exec-30][224][org.apache.cxf.phase.
> > > > >> > > > PhaseInterceptorC
> > > > >> > > > > >> > > > > >> hain.doIntercept]
> > > > >> > > > > >> > > > > >> |Invoking handleMessage on interceptor
> > > > >> > > > > >> > > > > >> org.apache.cxf.binding.soap.interceptor.
> > > > >> > > > SoapActionInIntercep
> > > > >> > > > > >> tor@
> > > > >> > > > > >> > > > > 79836009
> > > > >> > > > > >> > > > > >> 2017/04/29 00:09:05.511 FINE
> > > > >> > > > > >> > > > > >>  [TomEE-Exec-30][224][org.apache.cxf.phase.
> > > > >> > > > PhaseInterceptorC
> > > > >> > > > > >> > > > > >> hain.doIntercept]
> > > > >> > > > > >> > > > > >> |Invoking handleMessage on interceptor
> > > > >> > > > > >> > > > > >> org.apache.cxf.binding.soap.interceptor.
> > > > >> > > > > >> > > StartBodyInterceptor@70afa3ac
> > > > >> > > > > >> > > > > >> 2017/04/29 00:09:05.511 FINE
> > > > >> > > > > >> > > > > >>  [TomEE-Exec-30][224][org.apache.cxf.phase.
> > > > >> > > > PhaseInterceptorC
> > > > >> > > > > >> > > > > >> hain.doIntercept]
> > > > >> > > > > >> > > > > >> |Invoking handleMessage on interceptor
> > > > >> > > > > >> > > > > >> org.apache.cxf.binding.soap.
> > > > saaj.SAAJInInterceptor@
> > > > >> > > > 3d12954e
> > > > >> > > > > >> > > > > >> .....
> > > > >> > > > > >> > > > > >>
> > > > >> > > > > >> > > > > >> Now lets look at the server logs around the
> > time
> > > > the
> > > > >> > > > response
> > > > >> > > > > >> goes
> > > > >> > > > > >> > > > back
> > > > >> > > > > >> > > > > >> and
> > > > >> > > > > >> > > > > >> also see where the commit was issued:
> > > > >> > > > > >> > > > > >>
> > > > >> > > > > >> > > > > >> 2017/04/29 00:09:05.523 FINE
> > > > >> > > > > >> > > > > >>  [TomEE-Exec-30][224][org.apache.cxf.phase.
> > > > >> > > > PhaseInterceptorC
> > > > >> > > > > >> > > > > >> hain.doIntercept]
> > > > >> > > > > >> > > > > >> |Invoking handleMessage on interceptor
> > > > >> > > > > >> > > > > >> org.apache.cxf.jaxws.handler.logical.
> > > > >> > > > LogicalHandlerOutInterc
> > > > >> > > > > >> > > > > >> eptor@128bf90f
> > > > >> > > > > >> > > > > >> 2017/04/29 00:09:05.523 FINE
> > > > >> > > > > >> > > > > >>  [TomEE-Exec-30][224][org.apache.cxf.phase.
> > > > >> > > > PhaseInterceptorC
> > > > >> > > > > >> > > > > >> hain.doIntercept]
> > > > >> > > > > >> > > > > >> |Invoking handleMessage on interceptor
> > > > >> > > > > >> > > > > >> org.apache.cxf.wsdl.interceptors.
> > > > >> > > > BareOutInterceptor@62b3ecb1
> > > > >> > > > > >> > > > > >> 2017/04/29 00:09:05.524 FINE
> > > > >> > > > > >> > > > > >>  [TomEE-Exec-30][224][org.apache.cxf.phase.
> > > > >> > > > PhaseInterceptorC
> > > > >> > > > > >> > > > > >> hain.doIntercept]
> > > > >> > > > > >> > > > > >> |Invoking handleMessage on interceptor
> > > > >> > > > > >> > > > > >> org.apache.cxf.jaxws.handler.
> > > > >> > > > soap.SOAPHandlerInterceptor$1@
> > > > >> > > > > >> > 900b115
> > > > >> > > > > >> > > > > >> *2017/04/29 00:09:05.527 FINE
> > > > >> > > > > >> > > > > >>  [TomEE-Exec-30][224][org.apache.cxf.phase.
> > > > >> > > > PhaseInterceptorC
> > > > >> > > > > >> > > > > >> hain.doIntercept]
> > > > >> > > > > >> > > > > >> |Invoking handleMessage on interceptor
> > > > >> > > > > >> > > > > >> org.apache.cxf.binding.soap.interceptor.
> > > > >> > > > SoapOutInterceptor$S
> > > > >> > > > > >> > > > > >> oapOutEndingInterceptor@10aa05f4*
> > > > >> > > > > >> > > > > >> 2017/04/29 00:09:05.527 FINE
> > > > >> > > > > >> > > > > >>  [TomEE-Exec-30][224][org.apache.cxf.phase.
> > > > >> > > > PhaseInterceptorC
> > > > >> > > > > >> > > > > >> hain.doIntercept]
> > > > >> > > > > >> > > > > >> |Invoking handleMessage on interceptor
> > > > >> > > > > >> > > > > >> org.apache.cxf.binding.soap.sa
> > > > >> aj.SAAJOutInterceptor$
> > > > >> > > > SAAJOutE
> > > > >> > > > > >> > > > > >> ndingInterceptor@66cac58b
> > > > >> > > > > >> > > > > >> 2017/04/29 00:09:05.527 FINE
> > > > >> > > > > >> > > > > >>  [TomEE-Exec-30][224][org.apache.cxf.phase.
> > > > >> > > > PhaseInterceptorC
> > > > >> > > > > >> > > > > >> hain.doIntercept]
> > > > >> > > > > >> > > > > >> |Invoking handleMessage on interceptor
> > > > >> > > > > >> > > > > >> org.apache.cxf.interceptor.Sta
> > > > >> xOutEndingInterceptor@
> > > > >> > > > 3304ff7d
> > > > >> > > > > >> > > > > >> 2017/04/29 00:09:05.527 FINE
> > > > >> > > > > >> > > > > >>  [TomEE-Exec-30][224][org.apache.cxf.phase.
> > > > >> > > > PhaseInterceptorC
> > > > >> > > > > >> > > > > >> hain.doIntercept]
> > > > >> > > > > >> > > > > >> |Invoking handleMessage on interceptor
> > > > >> > > > > >> > > > > >> org.apache.cxf.interceptor.Mes
> > > > >> sageSenderInterceptor$
> > > > >> > > > MessageS
> > > > >> > > > > >> > > > > >> enderEndingInterceptor@674adcf8
> > > > >> > > > > >> > > > > >> 2017/04/29 00:09:05.529 FINE
> > > > >> > > > > >> > > > > >>  [TomEE-Exec-30][224][com.
> > > smilecoms.commons.base.
> > > > >> > > > lifecycle.S
> > > > >> > > > > >> > > > > >> mileConnectionLifecycleInterceptor.commit]
> > > > >> > > > > >> > > > > >> |Commit called on [com.mysql.jdbc.
> > > > >> > > JDBC4Connection@314c8b4a
> > > > >> > > > ]
> > > > >> > > > > >> > > > > >> 2017/04/29 00:09:05.529 FINE
> > > > >> > > > > >> > > > > >>  [TomEE-Exec-30][224][com.
> > > smilecoms.commons.base.
> > > > >> > > > lifecycle.S
> > > > >> > > > > >> > > > > >> mileConnectionLifecycleInterceptor.commit]
> > > > >> > > > > >> > > > > >> |Stack:
> > > > >> > > > > >> > > > > >> java.lang.Exception
> > > > >> > > > > >> > > > > >>         at
> > > > >> > > > > >> > > > > >> com.smilecoms.commons.base.lifecycle.
> > > > >> > > > SmileConnectionLifecycl
> > > > >> > > > > >> > > > > >> eInterceptor.commit(
> > > > SmileConnectionLifecycleInterc
> > > > >> > eptor.
> > > > >> > > > > >> java:34)
> > > > >> > > > > >> > > > > >>         at com.mysql.jdbc.ConnectionImpl$
> > > > >> > > > > >> > > > 2.forEach(ConnectionImpl.java:
> > > > >> > > > > >> > > > > >> 1593)
> > > > >> > > > > >> > > > > >>         at com.mysql.jdbc.ConnectionImpl$
> > > > >> > > > > >> > > > 2.forEach(ConnectionImpl.java:
> > > > >> > > > > >> > > > > >> 1592)
> > > > >> > > > > >> > > > > >>         at com.mysql.jdbc.IterateBlock.
> > > > >> > > > > >> > > doForAll(IterateBlock.java:61)
> > > > >> > > > > >> > > > > >>         at com.mysql.jdbc.ConnectionImpl.
> > > > >> > > > > >> > > commit(ConnectionImpl.java:
> > > > >> > > > > >> > > > > 1599)
> > > > >> > > > > >> > > > > >>         at sun.reflect.GeneratedMethodAcc
> > > > >> > > > > >> essor138.invoke(Unknown
> > > > >> > > > > >> > > > > Source)
> > > > >> > > > > >> > > > > >>         at
> > > > >> > > > > >> > > > > >> sun.reflect.DelegatingMethodAccessorImpl.
> > > > >> > > > invoke(DelegatingMe
> > > > >> > > > > >> > > > > >> thodAccessorImpl.java:43)
> > > > >> > > > > >> > > > > >>         at java.lang.reflect.Method.
> > > > >> > > > invoke(Method.java:498)
> > > > >> > > > > >> > > > > >>         at
> > > > >> > > > > >> > > > > >> org.apache.tomcat.jdbc.pool.
> > > > ProxyConnection.invoke(
> > > > >> > > > ProxyConn
> > > > >> > > > > >> > > > > >> ection.java:126)
> > > > >> > > > > >> > > > > >>         at
> > > > >> > > > > >> > > > > >> org.apache.tomcat.jdbc.pool.
> > > > JdbcInterceptor.invoke(
> > > > >> > > > JdbcInter
> > > > >> > > > > >> > > > > >> ceptor.java:108)
> > > > >> > > > > >> > > > > >>         at
> > > > >> > > > > >> > > > > >> org.apache.tomcat.jdbc.pool.
> > > > >> > DisposableConnectionFacade.
> > > > >> > > > invok
> > > > >> > > > > >> > > > > >> e(DisposableConnectionFacade.java:81)
> > > > >> > > > > >> > > > > >>         at com.sun.proxy.$Proxy58.commit(
> > > Unknown
> > > > >> > Source)
> > > > >> > > > > >> > > > > >>         at
> > > > >> > > > > >> > > > > >> org.apache.openejb.resource.
> > jdbc.managed.local.
> > > > >> > > > LocalXAResour
> > > > >> > > > > >> > > > > >> ce.commit(LocalXAResource.java:131)
> > > > >> > > > > >> > > > > >>         at
> > > > >> > > > > >> > > > > >> org.apache.geronimo.transaction.manager.
> > > > >> > > > TransactionImpl.comm
> > > > >> > > > > >> > > > > >> itResource(TransactionImpl.java:627)
> > > > >> > > > > >> > > > > >>         at
> > > > >> > > > > >> > > > > >> org.apache.geronimo.transaction.manager.
> > > > >> > TransactionImpl.
> > > > >> > > > > >> > > > > >> commit(TransactionImpl.java:305)
> > > > >> > > > > >> > > > > >>         at
> > > > >> > > > > >> > > > > >> org.apache.geronimo.transaction.manager.
> > > > >> > > > TransactionManagerIm
> > > > >> > > > > >> > > > > >> pl.commit(TransactionManagerImpl.java:252)
> > > > >> > > > > >> > > > > >>         at
> > > > >> > > > > >> > > > > >> org.apache.openejb.core.transaction.
> > > > >> > > > JtaTransactionPolicy.com
> > > > >> > > > > >> > > > > >> pleteTransaction(
> > JtaTransactionPolicy.java:331)
> > > > >> > > > > >> > > > > >>         at
> > > > >> > > > > >> > > > > >> org.apache.openejb.core.transa
> > > > >> ction.TxRequired.commit(
> > > > >> > > > > >> > > > > TxRequired.java:76)
> > > > >> > > > > >> > > > > >>         at
> > > > >> > > > > >> > > > > >> org.apache.openejb.core.transaction.
> > > > >> > > > EjbTransactionUtil.after
> > > > >> > > > > >> > > > > >> Invoke(EjbTransactionUtil.java:77)
> > > > >> > > > > >> > > > > >>         at
> > > > >> > > > > >> > > > > >> org.apache.openejb.core.statel
> > > > >> ess.StatelessContainer._
> > > > >> > > > invoke
> > > > >> > > > > >> > > > > >> (StatelessContainer.java:271)
> > > > >> > > > > >> > > > > >>         at
> > > > >> > > > > >> > > > > >> org.apache.openejb.core.statel
> > > > >> ess.StatelessContainer.
> > > > >> > > > invoke(
> > > > >> > > > > >> > > > > >> StatelessContainer.java:212)
> > > > >> > > > > >> > > > > >>         at
> > > > >> > > > > >> > > > > >> org.apache.openejb.server.cxf.
> > > > >> > > > ejb.EjbMethodInvoker.preEjbInv
> > > > >> > > > > >> > > > > >> oke(EjbMethodInvoker.java:125)
> > > > >> > > > > >> > > > > >>         at
> > > > >> > > > > >> > > > > >> org.apache.openejb.server.cxf.
> > > > >> > > > ejb.EjbMethodInvoker.invoke(Ej
> > > > >> > > > > >> > > > > >> bMethodInvoker.java:82)
> > > > >> > > > > >> > > > > >>         at
> > > > >> > > > > >> > > > > >> org.apache.cxf.service.invoker
> > > > >> .AbstractInvoker.invoke(
> > > > >> > > > > >> > > > > >> AbstractInvoker.java:74)
> > > > >> > > > > >> > > > > >>         at
> > > > >> > > > > >> > > > > >> org.apache.cxf.interceptor.
> > > > >> > ServiceInvokerInterceptor$1.
> > > > >> > > > run(
> > > > >> > > > > >> > > > > >> ServiceInvokerInterceptor.java:59)
> > > > >> > > > > >> > > > > >>         at
> > > > >> > > > > >> > > > > >> java.util.concurrent.
> > Executors$RunnableAdapter.
> > > > >> > > > > >> > > > call(Executors.java:511)
> > > > >> > > > > >> > > > > >>         at java.util.concurrent.
> > > > >> > > FutureTask.run(FutureTask.
> > > > >> > > > > >> > java:266)
> > > > >> > > > > >> > > > > >>         at
> > > > >> > > > > >> > > > > >> org.apache.cxf.interceptor.
> > > > >> > ServiceInvokerInterceptor$2.
> > > > >> > > > run(
> > > > >> > > > > >> > > > > >> ServiceInvokerInterceptor.java:126)
> > > > >> > > > > >> > > > > >>         at
> > > > >> > > > > >> > > > > >> org.apache.cxf.workqueue.Synch
> > > > >> ronousExecutor.execute(
> > > > >> > > > Synchro
> > > > >> > > > > >> > > > > >> nousExecutor.java:37)
> > > > >> > > > > >> > > > > >>         at
> > > > >> > > > > >> > > > > >> org.apache.cxf.interceptor.Ser
> > > > >> viceInvokerInterceptor.
> > > > >> > > > handleM
> > > > >> > > > > >> > > > > >> essage(ServiceInvokerInterceptor.java:131)
> > > > >> > > > > >> > > > > >>         at
> > > > >> > > > > >> > > > > >> org.apache.cxf.phase.PhaseInterceptorChain.
> > > > >> > > > doIntercept(Phase
> > > > >> > > > > >> > > > > >> InterceptorChain.java:308)
> > > > >> > > > > >> > > > > >>         at
> > > > >> > > > > >> > > > > >> org.apache.cxf.transport.
> > > ChainInitiationObserver.
> > > > >> > > > onMessage(C
> > > > >> > > > > >> > > > > >> hainInitiationObserver.java:121)
> > > > >> > > > > >> > > > > >>         at
> > > > >> > > > > >> > > > > >> org.apache.cxf.transport.http.
> > > > >> > > > AbstractHTTPDestination.invoke
> > > > >> > > > > >> > > > > >> (AbstractHTTPDestination.java:262)
> > > > >> > > > > >> > > > > >>         at
> > > > >> > > > > >> > > > > >> org.apache.openejb.server.cxf.
> > > > >> > > > CxfWsContainer.onMessage(CxfWs
> > > > >> > > > > >> > > > > >> Container.java:85)
> > > > >> > > > > >> > > > > >>         at
> > > > >> > > > > >> > > > > >> org.apache.openejb.server.
> > > > >> > webservices.WsServlet.service(
> > > > >> > > > WsSe
> > > > >> > > > > >> > > > > >> rvlet.java:98)
> > > > >> > > > > >> > > > > >>         at
> > > > >> > > > > >> > > > > >> org.apache.catalina.core.
> > > ApplicationFilterChain.
> > > > >> > > > internalDoFi
> > > > >> > > > > >> > > > > >> lter(ApplicationFilterChain.java:230)
> > > > >> > > > > >> > > > > >>         at
> > > > >> > > > > >> > > > > >> org.apache.catalina.core.
> > > ApplicationFilterChain.
> > > > >> > > > doFilter(App
> > > > >> > > > > >> > > > > >> licationFilterChain.java:165)
> > > > >> > > > > >> > > > > >>         at
> > > > >> > > > > >> > > > > >> org.apache.catalina.core.Stand
> > > > >> ardWrapperValve.invoke(
> > > > >> > > > Standar
> > > > >> > > > > >> > > > > >> dWrapperValve.java:198)
> > > > >> > > > > >> > > > > >>         at
> > > > >> > > > > >> > > > > >> org.apache.catalina.core.Stand
> > > > >> ardContextValve.invoke(
> > > > >> > > > Standar
> > > > >> > > > > >> > > > > >> dContextValve.java:96)
> > > > >> > > > > >> > > > > >>         at
> > > > >> > > > > >> > > > > >> org.apache.catalina.core.
> > > > StandardHostValve.invoke(
> > > > >> > > > StandardHo
> > > > >> > > > > >> > > > > >> stValve.java:140)
> > > > >> > > > > >> > > > > >>         at
> > > > >> > > > > >> > > > > >> org.apache.catalina.valves.
> > > > ErrorReportValve.invoke(
> > > > >> > > > ErrorRepo
> > > > >> > > > > >> > > > > >> rtValve.java:79)
> > > > >> > > > > >> > > > > >>         at
> > > > >> > > > > >> > > > > >> org.apache.tomee.catalina.
> > > > OpenEJBSecurityListener$
> > > > >> > > > RequestCap
> > > > >> > > > > >> > > > > >> turer.invoke(OpenEJBSecurityListener.java:
> 97)
> > > > >> > > > > >> > > > > >>         at
> > > > >> > > > > >> > > > > >> org.apache.catalina.core.Stand
> > > > >> ardEngineValve.invoke(
> > > > >> > > > Standard
> > > > >> > > > > >> > > > > >> EngineValve.java:87)
> > > > >> > > > > >> > > > > >>         at
> > > > >> > > > > >> > > > > >> org.apache.catalina.connector.
> > > > >> > > > CoyoteAdapter.service(CoyoteAd
> > > > >> > > > > >> > > > > >> apter.java:349)
> > > > >> > > > > >> > > > > >>         at
> > > > >> > > > > >> > > > > >> org.apache.coyote.http11.
> > > Http11Processor.service(
> > > > >> > > > Http11Proce
> > > > >> > > > > >> > > > > >> ssor.java:783)
> > > > >> > > > > >> > > > > >>         at
> > > > >> > > > > >> > > > > >> org.apache.coyote.AbstractProcessorLight.
> > > > >> > > > process(AbstractPro
> > > > >> > > > > >> > > > > >> cessorLight.java:66)
> > > > >> > > > > >> > > > > >>         at
> > > > >> > > > > >> > > > > >> org.apache.coyote.AbstractProt
> > > > >> ocol$ConnectionHandler.
> > > > >> > > > > >> > > > > >> process(AbstractProtocol.java:798)
> > > > >> > > > > >> > > > > >>         at
> > > > >> > > > > >> > > > > >> org.apache.tomcat.util.net.
> > > > >> > NioEndpoint$SocketProcessor.
> > > > >> > > > doRun
> > > > >> > > > > >> > > > > >> (NioEndpoint.java:1434)
> > > > >> > > > > >> > > > > >>         at
> > > > >> > > > > >> > > > > >> org.apache.tomcat.util.net.
> > > > SocketProcessorBase.run(
> > > > >> > > > SocketPro
> > > > >> > > > > >> > > > > >> cessorBase.java:49)
> > > > >> > > > > >> > > > > >>         at
> > > > >> > > > > >> > > > > >> java.util.concurrent.
> > > > ThreadPoolExecutor.runWorker(
> > > > >> > > > ThreadPool
> > > > >> > > > > >> > > > > >> Executor.java:1142)
> > > > >> > > > > >> > > > > >>         at
> > > > >> > > > > >> > > > > >> java.util.concurrent.
> > > > ThreadPoolExecutor$Worker.run(
> > > > >> > > > ThreadPoo
> > > > >> > > > > >> > > > > >> lExecutor.java:617)
> > > > >> > > > > >> > > > > >>         at
> > > > >> > > > > >> > > > > >> org.apache.tomcat.util.threads.TaskThread$
> > > > >> > > > WrappingRunnable.
> > > > >> > > > > >> > > > > >> run(TaskThread.java:61)
> > > > >> > > > > >> > > > > >>         at java.lang.Thread.run(Thread.
> > > java:745)
> > > > >> > > > > >> > > > > >>
> > > > >> > > > > >> > > > > >> 2017/04/29 00:09:05.529 FINE
> > > > >> > > > > >> > > > > >>  [TomEE-Exec-30][224][org.apache.cxf.phase.
> > > > >> > > > PhaseInterceptorC
> > > > >> > > > > >> > > > > >> hain.doIntercept]
> > > > >> > > > > >> > > > > >> |Invoking handleMessage on interceptor
> > > > >> > > > > >> > > > > >> org.apache.openejb.server.cxf.
> > > > >> > > > client.SaajInInterceptor@41aa4
> > > > >> > > > > >> e75
> > > > >> > > > > >> > > > > >> 2017/04/29 00:09:05.530 FINE
> > > > >> > > > > >> > > > > >>  [TomEE-Exec-30][224][org.apache.cxf.phase.
> > > > >> > > > PhaseInterceptorC
> > > > >> > > > > >> > > > > >> hain.doIntercept]
> > > > >> > > > > >> > > > > >> |Invoking handleMessage on interceptor
> > > > >> > > > > >> > > > > >> org.apache.cxf.interceptor.Out
> > > > >> goingChainInterceptor@
> > > > >> > > > 564ef482
> > > > >> > > > > >> > > > > >>
> > > > >> > > > > >> > > > > >>
> > > > >> > > > > >> > > > > >> From what I can gather from the source, the
> > SOAP
> > > > >> > document
> > > > >> > > > is
> > > > >> > > > > >> > flushed
> > > > >> > > > > >> > > > on
> > > > >> > > > > >> > > > > >> the
> > > > >> > > > > >> > > > > >> socket in SoapOutEndingInterceptor which I
> > have
> > > > put
> > > > >> in
> > > > >> > > > bold.
> > > > >> > > > > >> This
> > > > >> > > > > >> > > also
> > > > >> > > > > >> > > > > >> corresponds with the wireshark timing
> > > > >> > > > > >> > > > > >>
> > > > >> > > > > >> > > > > >> The class looks like this:
> > > > >> > > > > >> > > > > >>
> > > > >> > > > > >> > > > > >> public class SoapOutEndingInterceptor
> extends
> > > > >> > > > > >> > > AbstractSoapInterceptor
> > > > >> > > > > >> > > > {
> > > > >> > > > > >> > > > > >>   269           public
> > > SoapOutEndingInterceptor()
> > > > {
> > > > >> > > > > >> > > > > >>   270               super(
> > > > SoapOutEndingInterceptor.
> > > > >> > > > > >> > class.getName(),
> > > > >> > > > > >> > > > > >> Phase.WRITE_ENDING);  271           }
> > > > >> > > > > >> > > > > >>   272
> > > > >> > > > > >> > > > > >>   273           public void
> > > > >> handleMessage(SoapMessage
> > > > >> > > > > message)
> > > > >> > > > > >> > > throws
> > > > >> > > > > >> > > > > >> Fault {
> > > > >> > > > > >> > > > > >>   274               SoapVersion soapVersion
> =
> > > > >> > > > > >> > message.getVersion();
> > > > >> > > > > >> > > > > >>   275               try {
> > > > >> > > > > >> > > > > >>   276                   XMLStreamWriter xtw
> =
> > > > >> > > > > >> > > > > >> message.getContent(XMLStreamWriter.class);
> > > > >> > > > > >> > > > > >>   277                   if (xtw != null) {
> > > > >> > > > > >> > > > > >>   278
> > >  xtw.writeEndElement();
> > > > >> > > > > >> > > > > >>   279                       // Write
> Envelope
> > > end
> > > > >> > element
> > > > >> > > > > >> > > > > >>   280
> > >  xtw.writeEndElement();
> > > > >> 281
> > > > >> > > > > >> > > > > >>        xtw.writeEndDocument();
> > > > >> > > > > >> > > > > >>   282
> > > > >> > > > > >> > > > > >>   283                       xtw.flush();
> > > > >> > > > > >> > > > > >>   284                   }
> > > > >> > > > > >> > > > > >>   285               } catch
> > (XMLStreamException
> > > > e) {
> > > > >> > > > > >> > > > > >>   286                   throw new
> > SoapFault(new
> > > > >> > > > > >> > > > > >> org.apache.cxf.common.i18n.
> > > > Message("XML_WRITE_EXC",
> > > > >> > > > BUNDLE),
> > > > >> > > > > >> e,
> > > > >> > > > > >> > > > > >>   287
> > > > >> > > > > >> > >  soapVersion.getSender());
> > > > >> > > > > >> > > > > >>   288               }
> > > > >> > > > > >> > > > > >>   289           }
> > > > >> > > > > >> > > > > >>   290       }
> > > > >> > > > > >> > > > > >>
> > > > >> > > > > >> > > > > >>
> > > > >> > > > > >> > > > > >> The commit is only called via
> > > > >> MessageSenderInterceptor
> > > > >> > > but
> > > > >> > > > > from
> > > > >> > > > > >> > the
> > > > >> > > > > >> > > > > stack
> > > > >> > > > > >> > > > > >> trace I can't quite work out how
> > > > >> > > ServiceInvokerInterceptor
> > > > >> > > > is
> > > > >> > > > > >> > called
> > > > >> > > > > >> > > > > from
> > > > >> > > > > >> > > > > >> MessageSenderInterceptor so I can't explain
> > the
> > > > >> stack
> > > > >> > > trace
> > > > >> > > > > of
> > > > >> > > > > >> the
> > > > >> > > > > >> > > > > commit
> > > > >> > > > > >> > > > > >> call unless it's some fancy context
> switching
> > > and
> > > > >> use
> > > > >> > of
> > > > >> > > > > >> > completable
> > > > >> > > > > >> > > > > >> futures
> > > > >> > > > > >> > > > > >>
> > > > >> > > > > >> > > > > >> Any ideas what's going on?
> > > > >> > > > > >> > > > > >>
> > > > >> > > > > >> > > > > >>
> > > > >> > > > > >> > > > > >> Paul
> > > > >> > > > > >> > > > > >>
> > > > >> > > > > >> > > > > >> On 27 April 2017 at 10:39, Paul
> Carter-Brown <
> > > > >> > > > > >> > > > > >> paul.carter-brown@smilecoms.com> wrote:
> > > > >> > > > > >> > > > > >>
> > > > >> > > > > >> > > > > >> > For sure. I will start by pulling openejb
> > > source
> > > > >> and
> > > > >> > > > > digging
> > > > >> > > > > >> in
> > > > >> > > > > >> > > for
> > > > >> > > > > >> > > > > >> > possible causes. A few log lines here and
> > > there
> > > > >> and
> > > > >> > im
> > > > >> > > > > sure i
> > > > >> > > > > >> > can
> > > > >> > > > > >> > > > find
> > > > >> > > > > >> > > > > >> it
> > > > >> > > > > >> > > > > >> >
> > > > >> > > > > >> > > > > >> > Paul
> > > > >> > > > > >> > > > > >> >
> > > > >> > > > > >> > > > > >> > Sent from my phone. Message may be brief
> and
> > > > >> contain
> > > > >> > > > typos.
> > > > >> > > > > >> > > > > >> >
> > > > >> > > > > >> > > > > >> >
> > > > >> > > > > >> > > > > >> > On 27 Apr 2017 10:25 a.m., "Romain
> > > Manni-Bucau"
> > > > <
> > > > >> > > > > >> > > > > rmannibucau@gmail.com>
> > > > >> > > > > >> > > > > >> > wrote:
> > > > >> > > > > >> > > > > >> >
> > > > >> > > > > >> > > > > >> > ant / gradle are other options but
> something
> > > not
> > > > >> IDE
> > > > >> > > > > related
> > > > >> > > > > >> > > please
> > > > >> > > > > >> > > > > (or
> > > > >> > > > > >> > > > > >> you
> > > > >> > > > > >> > > > > >> > take the risk noone will be able to run it
> > ;))
> > > > >> > > > > >> > > > > >> >
> > > > >> > > > > >> > > > > >> >
> > > > >> > > > > >> > > > > >> > Romain Manni-Bucau
> > > > >> > > > > >> > > > > >> > @rmannibucau <https://twitter.com/
> > rmannibucau
> > > >
> > > > |
> > > > >> > Blog
> > > > >> > > > > >> > > > > >> > <https://blog-rmannibucau.rhcloud.com> |
> > Old
> > > > Blog
> > > > >> > > > > >> > > > > >> > <http://rmannibucau.wordpress.com> |
> > Github <
> > > > >> > > > > >> > > > > >> https://github.com/rmannibuca
> > > > >> > > > > >> > > > > >> > u> |
> > > > >> > > > > >> > > > > >> > LinkedIn <https://www.linkedin.com/in/
> > > > rmannibucau>
> > > > >> |
> > > > >> > > > > JavaEE
> > > > >> > > > > >> > > Factory
> > > > >> > > > > >> > > > > >> > <https://javaeefactory-
> > > rmannibucau.rhcloud.com>
> > > > >> > > > > >> > > > > >> >
> > > > >> > > > > >> > > > > >> > 2017-04-27 9:48 GMT+02:00 Paul
> Carter-Brown
> > > > >> > > > > >> > > > > >> <paul.carter-brown@smilecoms.c
> > > > >> > > > > >> > > > > >> > om
> > > > >> > > > > >> > > > > >> > >:
> > > > >> > > > > >> > > > > >> >
> > > > >> > > > > >> > > > > >> > > Will see what I can do to reproduce for
> > you.
> > > > >> Maven
> > > > >> > > and
> > > > >> > > > I
> > > > >> > > > > do
> > > > >> > > > > >> > not
> > > > >> > > > > >> > > > get
> > > > >> > > > > >> > > > > >> one
> > > > >> > > > > >> > > > > >> > > well :-(
> > > > >> > > > > >> > > > > >> > >
> > > > >> > > > > >> > > > > >> > >
> > > > >> > > > > >> > > > > >> > >
> > > > >> > > > > >> > > > > >> > > On 27 April 2017 at 09:30, Romain
> > > Manni-Bucau
> > > > <
> > > > >> > > > > >> > > > > rmannibucau@gmail.com>
> > > > >> > > > > >> > > > > >> > > wrote:
> > > > >> > > > > >> > > > > >> > >
> > > > >> > > > > >> > > > > >> > > > Ok, at that point maybe try to
> reproduce
> > > it
> > > > >> on a
> > > > >> > > > small
> > > > >> > > > > >> > sample
> > > > >> > > > > >> > > on
> > > > >> > > > > >> > > > > >> > github -
> > > > >> > > > > >> > > > > >> > > > goal is to share with us your setup
> more
> > > or
> > > > >> less
> > > > >> > > but
> > > > >> > > > > not
> > > > >> > > > > >> > > > > >> confidential
> > > > >> > > > > >> > > > > >> > > data.
> > > > >> > > > > >> > > > > >> > > >
> > > > >> > > > > >> > > > > >> > > > You can use:
> > > > >> > > > > >> > > > > >> > > >
> > > > >> > > > > >> > > > > >> > > > <dependency>
> > > > >> > > > > >> > > > > >> > > >   <groupId>com.wix</groupId>
> > > > >> > > > > >> > > > > >> > > >   <artifactId>wix-embedded-
> > > > mysql</artifactId>
> > > > >> > > > > >> > > > > >> > > >   <version>2.1.4</version>
> > > > >> > > > > >> > > > > >> > > > </dependency>
> > > > >> > > > > >> > > > > >> > > >
> > > > >> > > > > >> > > > > >> > > > And in java:
> > > > >> > > > > >> > > > > >> > > >
> > > > >> > > > > >> > > > > >> > > >
> > > > >> > > > > >> > > > > >> > > > EmbeddedMysql.anEmbeddedMysql(
> > > MysqldConfig
> > > > >> > > > > >> > > > > >> > > >         .aMysqldConfig(Version.v5_7_
> 17)
> > > > >> > > > > >> > > > > >> > > >         .withPort(Integer.parseInt(
> > port))
> > > > >> > > > > >> > > > > >> > > >         .withUser("user", "pass")
> > > > >> > > > > >> > > > > >> > > >         .build());
> > > > >> > > > > >> > > > > >> > > > final EmbeddedMysql mysql =
> > > builder.start()
> > > > >> > > > > >> > > > > >> > > >         .addSchema(SchemaConfig.
> > > > >> > > > > >> > > aSchemaConfig("test").build());
> > > > >> > > > > >> > > > > >> > > >
> > > > >> > > > > >> > > > > >> > > >
> > > > >> > > > > >> > > > > >> > > > To write a test with a running MySQL
> > > (first
> > > > >> time
> > > > >> > > you
> > > > >> > > > > >> launch
> > > > >> > > > > >> > it
> > > > >> > > > > >> > > > > >> > downloads
> > > > >> > > > > >> > > > > >> > > > mysql so it can be a bit long but then
> > it
> > > is
> > > > >> > > cached.
> > > > >> > > > > >> > > > > >> > > >
> > > > >> > > > > >> > > > > >> > > > This way we could grab it locally and
> > > > >> > investigate a
> > > > >> > > > bit
> > > > >> > > > > >> > more.
> > > > >> > > > > >> > > > > >> > > >
> > > > >> > > > > >> > > > > >> > > > Romain Manni-Bucau
> > > > >> > > > > >> > > > > >> > > > @rmannibucau <https://twitter.com/
> > > > rmannibucau>
> > > > >> |
> > > > >> > > > Blog
> > > > >> > > > > >> > > > > >> > > > <https://blog-rmannibucau.rhcloud.com
> >
> > |
> > > > Old
> > > > >> > Blog
> > > > >> > > > > >> > > > > >> > > > <http://rmannibucau.wordpress.com> |
> > > > Github <
> > > > >> > > > > >> > > > > >> > > https://github.com/rmannibuca
> > > > >> > > > > >> > > > > >> > > > u> |
> > > > >> > > > > >> > > > > >> > > > LinkedIn <
> https://www.linkedin.com/in/
> > > > >> > rmannibucau>
> > > > >> > > |
> > > > >> > > > > >> JavaEE
> > > > >> > > > > >> > > > > Factory
> > > > >> > > > > >> > > > > >> > > > <https://javaeefactory-rmannib
> > > > >> ucau.rhcloud.com>
> > > > >> > > > > >> > > > > >> > > >
> > > > >> > > > > >> > > > > >> > > > 2017-04-27 6:06 GMT+02:00 Paul
> > > Carter-Brown
> > > > >> > > > > >> > > > > >> > > <paul.carter-brown@smilecoms.c
> > > > >> > > > > >> > > > > >> > > > om
> > > > >> > > > > >> > > > > >> > > > >:
> > > > >> > > > > >> > > > > >> > > >
> > > > >> > > > > >> > > > > >> > > > > No. Autocommit is off
> > > > >> > > > > >> > > > > >> > > > >
> > > > >> > > > > >> > > > > >> > > > > Paul
> > > > >> > > > > >> > > > > >> > > > >
> > > > >> > > > > >> > > > > >> > > > > Sent from my phone. Message may be
> > brief
> > > > and
> > > > >> > > > contain
> > > > >> > > > > >> > typos.
> > > > >> > > > > >> > > > > >> > > > >
> > > > >> > > > > >> > > > > >> > > > >
> > > > >> > > > > >> > > > > >> > > > > On 27 Apr 2017 12:47 a.m., "Romain
> > > > >> > Manni-Bucau" <
> > > > >> > > > > >> > > > > >> > rmannibucau@gmail.com
> > > > >> > > > > >> > > > > >> > > >
> > > > >> > > > > >> > > > > >> > > > > wrote:
> > > > >> > > > > >> > > > > >> > > > >
> > > > >> > > > > >> > > > > >> > > > > > Are you in autocommit mode?
> > > > >> > > > > >> > > > > >> > > > > >
> > > > >> > > > > >> > > > > >> > > > > > Le 26 avr. 2017 22:37, "Paul
> > > > Carter-Brown"
> > > > >> > > > > >> > > > > >> > > > <paul.carter-brown@smilecoms.
> > > > >> > > > > >> > > > > >> > > > > > com>
> > > > >> > > > > >> > > > > >> > > > > > a écrit :
> > > > >> > > > > >> > > > > >> > > > > >
> > > > >> > > > > >> > > > > >> > > > > > > Hi,
> > > > >> > > > > >> > > > > >> > > > > > >
> > > > >> > > > > >> > > > > >> > > > > > > Unfortunately, the same result
> > with
> > > > >> dbcp2.
> > > > >> > I
> > > > >> > > > also
> > > > >> > > > > >> > turned
> > > > >> > > > > >> > > > on
> > > > >> > > > > >> > > > > >> mysql
> > > > >> > > > > >> > > > > >> > > > > general
> > > > >> > > > > >> > > > > >> > > > > > > query log and can see the commit
> > > come
> > > > >> > through
> > > > >> > > > > after
> > > > >> > > > > >> > the
> > > > >> > > > > >> > > > > select
> > > > >> > > > > >> > > > > >> > > comes
> > > > >> > > > > >> > > > > >> > > > in
> > > > >> > > > > >> > > > > >> > > > > > on
> > > > >> > > > > >> > > > > >> > > > > > > another connection:
> > > > >> > > > > >> > > > > >> > > > > > >
> > > > >> > > > > >> > > > > >> > > > > > >
> > > > >> > > > > >> > > > > >> > > > > > > 2017-04-26T19:46:22.243742Z
> 20038
> > > > Query
> > > > >> > > INSERT
> > > > >> > > > > INTO
> > > > >> > > > > >> > > > > >> > > > > > > SmileDB.customer_profile ...
> > > <removed>
> > > > >> > > > > >> > > > > >> > > > > > > 2017-04-26T19:46:22.245984Z
> 20038
> > > > Query
> > > > >> > > SELECT
> > > > >> > > > > >> > > > > >> LAST_INSERT_ID()
> > > > >> > > > > >> > > > > >> > > > > > > 2017-04-26T19:46:22.291193Z
> 20038
> > > > Query
> > > > >> > > select
> > > > >> > > > > >> > > > > >> > > @@session.tx_read_only
> > > > >> > > > > >> > > > > >> > > > > > > 2017-04-26T19:46:22.317914Z
> > > 20031
> > > > >> > Query
> > > > >> > > > > >>  SET
> > > > >> > > > > >> > > > > >> autocommit=0
> > > > >> > > > > >> > > > > >> > > > > > > 2017-04-26T19:46:22.318088Z
> > > 20031
> > > > >> > Query
> > > > >> > > > > >> >  SELECT
> > > > >> > > > > >> > > *
> > > > >> > > > > >> > > > > FROM
> > > > >> > > > > >> > > > > >> > > > > > > SmileDB.customer_profile WHERE
> > > > >> > > > > >> > > CUSTOMER_PROFILE_ID=1267253
> > > > >> > > > > >> > > > > AND
> > > > >> > > > > >> > > > > >> > > > > > STATUS='AC'
> > > > >> > > > > >> > > > > >> > > > > > > 2017-04-26T19:46:22.372481Z
> 20038
> > > > Query
> > > > >> > > commit
> > > > >> > > > > >> > > > > >> > > > > > >
> > > > >> > > > > >> > > > > >> > > > > > >
> > > > >> > > > > >> > > > > >> > > > > > > And here is the log of the
> > lifecycle
> > > > >> > listener
> > > > >> > > > > >> getting
> > > > >> > > > > >> > > > commit
> > > > >> > > > > >> > > > > >> > > called:
> > > > >> > > > > >> > > > > >> > > > > > >
> > > > >> > > > > >> > > > > >> > > > > > > 2017/04/26 21:46:22.293 FINE
> > > > >> > > > > >> > > [TomEE-Exec-31][301][com.
> > > > >> > > > > >> > > > > >> > > > > > > smilecoms.commons.base.
> lifecycle.
> > > > >> > > > > >> > > > > SmileConnectionLifecycleInt
> > > > >> > > > > >> > > > > >> erc
> > > > >> > > > > >> > > > > >> > > > > > > eptor.commit]
> > > > >> > > > > >> > > > > >> > > > > > > |Commit called
> > > > >> > > > > >> > > > > >> > > > > > >
> > > > >> > > > > >> > > > > >> > > > > > >
> > > > >> > > > > >> > > > > >> > > > > > >
> > > > >> > > > > >> > > > > >> > > > > > >
> > > > >> > > > > >> > > > > >> > > > > > > On 26 April 2017 at 17:12,
> Romain
> > > > >> > > Manni-Bucau <
> > > > >> > > > > >> > > > > >> > > rmannibucau@gmail.com
> > > > >> > > > > >> > > > > >> > > > >
> > > > >> > > > > >> > > > > >> > > > > > > wrote:
> > > > >> > > > > >> > > > > >> > > > > > >
> > > > >> > > > > >> > > > > >> > > > > > > > maybe switch to dbcp pool to
> see
> > > if
> > > > it
> > > > >> > > > behaves
> > > > >> > > > > >> the
> > > > >> > > > > >> > > same,
> > > > >> > > > > >> > > > > if
> > > > >> > > > > >> > > > > >> not
> > > > >> > > > > >> > > > > >> > > can
> > > > >> > > > > >> > > > > >> > > > > be
> > > > >> > > > > >> > > > > >> > > > > > an
> > > > >> > > > > >> > > > > >> > > > > > > > equals/hashcode issue
> > > > >> > > > > >> > > > > >> > > > > > > >
> > > > >> > > > > >> > > > > >> > > > > > > >
> > > > >> > > > > >> > > > > >> > > > > > > > Romain Manni-Bucau
> > > > >> > > > > >> > > > > >> > > > > > > > @rmannibucau <
> > > https://twitter.com/
> > > > >> > > > rmannibucau>
> > > > >> > > > > |
> > > > >> > > > > >> > > Blog
> > > > >> > > > > >> > > > > >> > > > > > > > <https://blog-rmannibucau.
> > > > rhcloud.com>
> > > > >> |
> > > > >> > > Old
> > > > >> > > > > >> Blog
> > > > >> > > > > >> > > > > >> > > > > > > > <http://rmannibucau.wordpress
> .
> > com
> > > >
> > > > |
> > > > >> > > Github
> > > > >> > > > <
> > > > >> > > > > >> > > > > >> > > > > > > https://github.com/rmannibuca
> > > > >> > > > > >> > > > > >> > > > > > > > u> |
> > > > >> > > > > >> > > > > >> > > > > > > > LinkedIn <
> > > > >> https://www.linkedin.com/in/r
> > > > >> > > > > >> mannibucau>
> > > > >> > > > > >> > |
> > > > >> > > > > >> > > > > JavaEE
> > > > >> > > > > >> > > > > >> > > > Factory
> > > > >> > > > > >> > > > > >> > > > > > > > <https://javaeefactory-
> > > > >> > > > rmannibucau.rhcloud.com
> > > > >> > > > > >
> > > > >> > > > > >> > > > > >> > > > > > > >
> > > > >> > > > > >> > > > > >> > > > > > > > 2017-04-26 16:45 GMT+02:00
> Paul
> > > > >> > > Carter-Brown
> > > > >> > > > <
> > > > >> > > > > >> > > > > >> > > > > > > > paul.carter-brown@smilecoms.
> com
> > >:
> > > > >> > > > > >> > > > > >> > > > > > > >
> > > > >> > > > > >> > > > > >> > > > > > > > > Hi Romain,
> > > > >> > > > > >> > > > > >> > > > > > > > >
> > > > >> > > > > >> > > > > >> > > > > > > > > In order to better
> understand
> > > the
> > > > >> > commit
> > > > >> > > > > >> timing, I
> > > > >> > > > > >> > > > have
> > > > >> > > > > >> > > > > >> put
> > > > >> > > > > >> > > > > >> > > some
> > > > >> > > > > >> > > > > >> > > > > > > logging
> > > > >> > > > > >> > > > > >> > > > > > > > in
> > > > >> > > > > >> > > > > >> > > > > > > > > a custom MySQL
> > > > >> > > > ConnectionLifecycleInterceptor
> > > > >> > > > > >> so
> > > > >> > > > > >> > > that
> > > > >> > > > > >> > > > I
> > > > >> > > > > >> > > > > >> can
> > > > >> > > > > >> > > > > >> > do
> > > > >> > > > > >> > > > > >> > > a
> > > > >> > > > > >> > > > > >> > > > > > stack
> > > > >> > > > > >> > > > > >> > > > > > > > > trace when commit is called
> > and
> > > > see
> > > > >> > where
> > > > >> > > > > it's
> > > > >> > > > > >> > > called
> > > > >> > > > > >> > > > > >> > relative
> > > > >> > > > > >> > > > > >> > > to
> > > > >> > > > > >> > > > > >> > > > > the
> > > > >> > > > > >> > > > > >> > > > > > > > SOAP
> > > > >> > > > > >> > > > > >> > > > > > > > > service invocation. I also
> > put a
> > > > >> > > > > >> > Thread.sleep(1000)
> > > > >> > > > > >> > > in
> > > > >> > > > > >> > > > > the
> > > > >> > > > > >> > > > > >> > > commit
> > > > >> > > > > >> > > > > >> > > > > > > method
> > > > >> > > > > >> > > > > >> > > > > > > > of
> > > > >> > > > > >> > > > > >> > > > > > > > > my
> > > ConnectionLifecycleInterceptor
> > > > to
> > > > >> > see
> > > > >> > > > how
> > > > >> > > > > it
> > > > >> > > > > >> > > > > influenced
> > > > >> > > > > >> > > > > >> > the
> > > > >> > > > > >> > > > > >> > > > > > response
> > > > >> > > > > >> > > > > >> > > > > > > > > going back to the client.
> > Whats
> > > > very
> > > > >> > > > strange
> > > > >> > > > > is
> > > > >> > > > > >> > that
> > > > >> > > > > >> > > > the
> > > > >> > > > > >> > > > > >> > 1000ms
> > > > >> > > > > >> > > > > >> > > > > sleep
> > > > >> > > > > >> > > > > >> > > > > > > > does
> > > > >> > > > > >> > > > > >> > > > > > > > > result in the response
> taking
> > > > almost
> > > > >> > > 1000ms
> > > > >> > > > > >> > longer.
> > > > >> > > > > >> > > I
> > > > >> > > > > >> > > > > say
> > > > >> > > > > >> > > > > >> > > almost,
> > > > >> > > > > >> > > > > >> > > > > > > because
> > > > >> > > > > >> > > > > >> > > > > > > > > again when running with
> > multiple
> > > > >> > > threads, I
> > > > >> > > > > can
> > > > >> > > > > >> > get
> > > > >> > > > > >> > > a
> > > > >> > > > > >> > > > > >> > situation
> > > > >> > > > > >> > > > > >> > > > > where
> > > > >> > > > > >> > > > > >> > > > > > > the
> > > > >> > > > > >> > > > > >> > > > > > > > > response beats the
> completion
> > of
> > > > the
> > > > >> > > > commit.
> > > > >> > > > > I
> > > > >> > > > > >> > > cannot
> > > > >> > > > > >> > > > > >> create
> > > > >> > > > > >> > > > > >> > > this
> > > > >> > > > > >> > > > > >> > > > > > when
> > > > >> > > > > >> > > > > >> > > > > > > > the
> > > > >> > > > > >> > > > > >> > > > > > > > > client has only one thread.
> > Here
> > > > is
> > > > >> a
> > > > >> > log
> > > > >> > > > > >> snippet
> > > > >> > > > > >> > > > > showing
> > > > >> > > > > >> > > > > >> the
> > > > >> > > > > >> > > > > >> > > > > > scenario:
> > > > >> > > > > >> > > > > >> > > > > > > > >
> > > > >> > > > > >> > > > > >> > > > > > > > > 1) Here is our
> > > > >> > > > ConnectionLifecycleInterceptor
> > > > >> > > > > >> > > getting
> > > > >> > > > > >> > > > > the
> > > > >> > > > > >> > > > > >> > > commit
> > > > >> > > > > >> > > > > >> > > > > call
> > > > >> > > > > >> > > > > >> > > > > > > and
> > > > >> > > > > >> > > > > >> > > > > > > > > logging the stack before
> > > sleeping
> > > > >> for
> > > > >> > > > 1000ms.
> > > > >> > > > > >> Its
> > > > >> > > > > >> > > > > >> committing
> > > > >> > > > > >> > > > > >> > a
> > > > >> > > > > >> > > > > >> > > > new
> > > > >> > > > > >> > > > > >> > > > > > row
> > > > >> > > > > >> > > > > >> > > > > > > > with
> > > > >> > > > > >> > > > > >> > > > > > > > > ID 615867
> > > > >> > > > > >> > > > > >> > > > > > > > > 2017/04/26 16:22:50.592 FINE
> > > > >> > > > > >> > > > > >> > > > > > > > >
> > [TomEE-Exec-15][207][com.smile
> > > > >> > > > > >> > > > > >> coms.commons.base.lifecycle.
> > > > >> > > > > >> > > > > >> > > > > > > > >
> SmileConnectionLifecycleInterc
> > > > >> > > > eptor.commit]
> > > > >> > > > > >> > > > > >> > > > > > > > > |Commit called
> > > > >> > > > > >> > > > > >> > > > > > > > > 2017/04/26 16:22:50.593 FINE
> > > > >> > > > > >> > > > > >> > > > > > > > >
> > [TomEE-Exec-15][207][com.smile
> > > > >> > > > > >> > > > > >> coms.commons.base.lifecycle.
> > > > >> > > > > >> > > > > >> > > > > > > > >
> SmileConnectionLifecycleInterc
> > > > >> > > > eptor.commit]
> > > > >> > > > > >> > > > > >> > > > > > > > > |Stack in commit. Sleeping
> > now:
> > > > >> > > > > >> > > > > >> > > > > > > > > java.lang.Exception
> > > > >> > > > > >> > > > > >> > > > > > > > >         at
> > > > >> > > > > >> > > > > >> > > > > > > > >
> com.smilecoms.commons.base.lif
> > > > >> ecycle.
> > > > >> > > > > >> > > > > >> > > > > SmileConnectionLifecycleInterc
> > > > >> > > > > >> > > > > >> > > > > > > > > eptor.commit(
> > > > >> > > > SmileConnectionLifecycleInterc
> > > > >> > > > > >> > > > > eptor.java:32)
> > > > >> > > > > >> > > > > >> > > > > > > > >         at
> > > > >> > com.mysql.jdbc.ConnectionImpl$
> > > > >> > > > > >> > > > > >> > > > > > > 2.forEach(ConnectionImpl.java:
> > > > >> > > > > >> > > > > >> > > > > > > > > 1593)
> > > > >> > > > > >> > > > > >> > > > > > > > >         at
> > > > >> > com.mysql.jdbc.ConnectionImpl$
> > > > >> > > > > >> > > > > >> > > > > > > 2.forEach(ConnectionImpl.java:
> > > > >> > > > > >> > > > > >> > > > > > > > > 1592)
> > > > >> > > > > >> > > > > >> > > > > > > > >         at
> > > > >> com.mysql.jdbc.IterateBlock.
> > > > >> > > > > >> > > > > >> > > > > > doForAll(IterateBlock.java:61)
> > > > >> > > > > >> > > > > >> > > > > > > > >         at
> > > > >> > com.mysql.jdbc.ConnectionImpl.
> > > > >> > > > > >> > > > > >> > > > > > > commit(ConnectionImpl.java:159
> > > > >> > > > > >> > > > > >> > > > > > > > 9)
> > > > >> > > > > >> > > > > >> > > > > > > > >         at sun.reflect.
> > > > >> > > > > >> > GeneratedMethodAccessor137.
> > > > >> > > > > >> > > > > >> > > invoke(Unknown
> > > > >> > > > > >> > > > > >> > > > > > > Source)
> > > > >> > > > > >> > > > > >> > > > > > > > >         at
> > > > >> > > > > >> > > > > >> > > > > > > > >
> sun.reflect.DelegatingMethodAc
> > > > >> > > > > >> cessorImpl.invoke(
> > > > >> > > > > >> > > > > >> > > > > > > > >
> DelegatingMethodAccessorImpl.j
> > > > >> ava:43)
> > > > >> > > > > >> > > > > >> > > > > > > > >         at
> > > > >> > java.lang.reflect.Method.invok
> > > > >> > > > > >> > > > > >> e(Method.java:498)
> > > > >> > > > > >> > > > > >> > > > > > > > >         at
> > > > >> > > > > >> > > > > >> > > > > > > > > org.apache.tomcat.jdbc.pool.
> > > > >> > > > > >> > ProxyConnection.invoke(
> > > > >> > > > > >> > > > > >> > > > > > > > > ProxyConnection.java:126)
> > > > >> > > > > >> > > > > >> > > > > > > > >         at
> > > > >> > > > > >> > > > > >> > > > > > > > > org.apache.tomcat.jdbc.pool.
> > > > >> > > > > >> > JdbcInterceptor.invoke(
> > > > >> > > > > >> > > > > >> > > > > > > > > JdbcInterceptor.java:108)
> > > > >> > > > > >> > > > > >> > > > > > > > >         at
> > > > >> > > > > >> > > > > >> > > > > > > > >
> org.apache.tomcat.jdbc.pool.Di
> > > > >> > > > > >> > > > > >> sposableConnectionFacade.invok
> > > > >> > > > > >> > > > > >> > e(
> > > > >> > > > > >> > > > > >> > > > > > > > > DisposableConnectionFacade.
> > > > java:81)
> > > > >> > > > > >> > > > > >> > > > > > > > >         at
> > > > >> > com.sun.proxy.$Proxy58.commit(
> > > > >> > > > > >> Unknown
> > > > >> > > > > >> > > > > Source)
> > > > >> > > > > >> > > > > >> > > > > > > > >         at
> > > > >> > > > > >> > > > > >> > > > > > > > >
> org.apache.openejb.resource.jd
> > > > >> > > > > >> bc.managed.local.
> > > > >> > > > > >> > > > > >> > > > > > LocalXAResource.commit(
> > > > >> > > > > >> > > > > >> > > > > > > > > LocalXAResource.java:131)
> > > > >> > > > > >> > > > > >> > > > > > > > >         at
> > > > >> > > > > >> > > > > >> > > > > > > > > org.apache.geronimo.
> > > > >> > transaction.manager.
> > > > >> > > > > >> > > > > TransactionImpl.
> > > > >> > > > > >> > > > > >> > > > > > > commitResource(
> > > > >> > > > > >> > > > > >> > > > > > > > > TransactionImpl.java:627)
> > > > >> > > > > >> > > > > >> > > > > > > > >         at
> > > > >> > > > > >> > > > > >> > > > > > > > > org.apache.geronimo.
> > > > >> > transaction.manager.
> > > > >> > > > > >> > > > > >> > > TransactionImpl.commit(
> > > > >> > > > > >> > > > > >> > > > > > > > > TransactionImpl.java:305)
> > > > >> > > > > >> > > > > >> > > > > > > > >         at
> > > > >> > > > > >> > > > > >> > > > > > > > > org.apache.geronimo.
> > > > >> > transaction.manager.
> > > > >> > > > > >> > > > > >> > > > > > TransactionManagerImpl.commit(
> > > > >> > > > > >> > > > > >> > > > > > > > > TransactionManagerImpl.java:
> > > 252)
> > > > >> > > > > >> > > > > >> > > > > > > > >         at
> > > > >> > > > > >> > > > > >> > > > > > > > >
> org.apache.openejb.core.transa
> > > > >> ction.
> > > > >> > > > > >> > > > > JtaTransactionPolicy.
> > > > >> > > > > >> > > > > >> > > > > > > > > completeTransaction(
> > > > >> > > > > >> > JtaTransactionPolicy.java:331)
> > > > >> > > > > >> > > > > >> > > > > > > > >         at
> > > > >> > > > > >> > > > > >> > > > > > > > >
> org.apache.openejb.core.transa
> > > > >> > > > > >> > > > > >> ction.TxRequired.commit(TxRequ
> > > > >> > > > > >> > > > > >> > > > > > > > ired.java:76)
> > > > >> > > > > >> > > > > >> > > > > > > > >         at
> > > > >> > > > > >> > > > > >> > > > > > > > >
> org.apache.openejb.core.transa
> > > > >> ction.
> > > > >> > > > > >> > > > EjbTransactionUtil.
> > > > >> > > > > >> > > > > >> > > > > afterInvoke(
> > > > >> > > > > >> > > > > >> > > > > > > > > EjbTransactionUtil.java:77)
> > > > >> > > > > >> > > > > >> > > > > > > > >         at
> > > > >> > > > > >> > > > > >> > > > > > > > > org.apache.openejb.core.
> > > > >> > > > > >> > > > stateless.StatelessContainer._
> > > > >> > > > > >> > > > > >> > > > > > > > > invoke(StatelessContainer.
> > > > java:271)
> > > > >> > > > > >> > > > > >> > > > > > > > >         at
> > > > >> > > > > >> > > > > >> > > > > > > > > org.apache.openejb.core.
> > > > >> > > > > >> > > stateless.StatelessContainer.
> > > > >> > > > > >> > > > > >> > > > > > > > > invoke(StatelessContainer.
> > > > java:212)
> > > > >> > > > > >> > > > > >> > > > > > > > >         at
> > > > >> > > > > >> > > > > >> > > > > > > > >
> org.apache.openejb.server.cxf.
> > > > >> > > > > >> > ejb.EjbMethodInvoker.
> > > > >> > > > > >> > > > > >> > > > > > > > >
> preEjbInvoke(EjbMethodInvoker.
> > > > >> > java:125)
> > > > >> > > > > >> > > > > >> > > > > > > > >         at
> > > > >> > > > > >> > > > > >> > > > > > > > >
> org.apache.openejb.server.cxf.
> > > > >> > > > > >> > > > > >> ejb.EjbMethodInvoker.invoke(
> > > > >> > > > > >> > > > > >> > > > > > > > > EjbMethodInvoker.java:82)
> > > > >> > > > > >> > > > > >> > > > > > > > >         at
> > > > >> > > > > >> > > > > >> > > > > > > > >
> org.apache.cxf.service.invoker
> > > > >> > > > > >> .AbstractInvoker.
> > > > >> > > > > >> > > > > >> > > > > > > > > invoke(AbstractInvoker.java:
> > 74)
> > > > >> > > > > >> > > > > >> > > > > > > > >         at
> > > > >> > > > > >> > > > > >> > > > > > > > > org.apache.cxf.interceptor.
> > > > >> > > > > >> > > > ServiceInvokerInterceptor$1.
> > > > >> > > > > >> > > > > >> > > > > > > > >
> run(ServiceInvokerInterceptor.
> > > > >> java:59)
> > > > >> > > > > >> > > > > >> > > > > > > > >         at
> > > > >> > > > > >> > > > > >> > > > > > > > >
> java.util.concurrent.Executors
> > > > >> > > > > >> $RunnableAdapter.
> > > > >> > > > > >> > > > > >> > > > > > > call(Executors.java:511)
> > > > >> > > > > >> > > > > >> > > > > > > > >         at
> > > > >> > java.util.concurrent.FutureTas
> > > > >> > > > > >> > > > > >> k.run(FutureTask.
> > > > >> > > > > >> > > > > >> > > > > java:266)
> > > > >> > > > > >> > > > > >> > > > > > > > >         at
> > > > >> > > > > >> > > > > >> > > > > > > > > org.apache.cxf.interceptor.
> > > > >> > > > > >> > > > ServiceInvokerInterceptor$2.
> > > > >> > > > > >> > > > > >> > > > > > > > >
> run(ServiceInvokerInterceptor.
> > > > >> > java:126)
> > > > >> > > > > >> > > > > >> > > > > > > > >         at
> > > > >> > > > > >> > > > > >> > > > > > > > > org.apache.cxf.workqueue.
> > > > >> > > > > >> > > SynchronousExecutor.execute(
> > > > >> > > > > >> > > > > >> > > > > > > > > SynchronousExecutor.java:37)
> > > > >> > > > > >> > > > > >> > > > > > > > >         at
> > > > >> > > > > >> > > > > >> > > > > > > > > org.apache.cxf.interceptor.
> > > > >> > > > > >> > > ServiceInvokerInterceptor.
> > > > >> > > > > >> > > > > >> > > > > handleMessage(
> > > > >> > > > > >> > > > > >> > > > > > > > > ServiceInvokerInterceptor.
> > > > java:131)
> > > > >> > > > > >> > > > > >> > > > > > > > >         at
> > > > >> > > > > >> > > > > >> > > > > > > > > org.apache.cxf.phase.
> > > > >> > > > PhaseInterceptorChain.
> > > > >> > > > > >> > > > doIntercept(
> > > > >> > > > > >> > > > > >> > > > > > > > > PhaseInterceptorChain.java:
> > 308)
> > > > >> > > > > >> > > > > >> > > > > > > > >         at
> > > > >> > > > > >> > > > > >> > > > > > > > >
> org.apache.cxf.transport.Chain
> > > > >> > > > > >> > > > > >> InitiationObserver.onMessage(
> > > > >> > > > > >> > > > > >> > > > > > > > >
> ChainInitiationObserver.java:
> > > 121)
> > > > >> > > > > >> > > > > >> > > > > > > > >         at
> > > > >> > > > > >> > > > > >> > > > > > > > >
> org.apache.cxf.transport.http.
> > > > >> > > > > >> > > > > >> AbstractHTTPDestination.invoke
> > > > >> > > > > >> > > > > >> > (
> > > > >> > > > > >> > > > > >> > > > > > > > >
> AbstractHTTPDestination.java:
> > > 262)
> > > > >> > > > > >> > > > > >> > > > > > > > >         at
> > > > >> > > > > >> > > > > >> > > > > > > > >
> org.apache.openejb.server.cxf.
> > > > >> > > > > >> > > > CxfWsContainer.onMessage(
> > > > >> > > > > >> > > > > >> > > > > > > > > CxfWsContainer.java:85)
> > > > >> > > > > >> > > > > >> > > > > > > > >         at
> > > > >> > > > > >> > > > > >> > > > > > > > >
> org.apache.openejb.server.webs
> > > > >> > > > > >> > > > > >> ervices.WsServlet.service(WsSe
> > > > >> > > > > >> > > > > >> > > > > > > > rvlet.java:98)
> > > > >> > > > > >> > > > > >> > > > > > > > >         at
> > > > >> > > > > >> > > > > >> > > > > > > > >
> org.apache.catalina.core.Appli
> > > > >> > > > > >> > > > > >> cationFilterChain.internalDoFi
> > > > >> > > > > >> > > > > >> > > > lter(
> > > > >> > > > > >> > > > > >> > > > > > > > > ApplicationFilterChain.java:
> > > 230)
> > > > >> > > > > >> > > > > >> > > > > > > > >         at
> > > > >> > > > > >> > > > > >> > > > > > > > >
> org.apache.catalina.core.Appli
> > > > >> > > > > >> cationFilterChain.
> > > > >> > > > > >> > > > > doFilter(
> > > > >> > > > > >> > > > > >> > > > > > > > > ApplicationFilterChain.java:
> > > 165)
> > > > >> > > > > >> > > > > >> > > > > > > > >         at
> > > > >> > > > > >> > > > > >> > > > > > > > > org.apache.catalina.core.
> > > > >> > > > > >> > > StandardWrapperValve.invoke(
> > > > >> > > > > >> > > > > >> > > > > > > > >
> StandardWrapperValve.java:198)
> > > > >> > > > > >> > > > > >> > > > > > > > >         at
> > > > >> > > > > >> > > > > >> > > > > > > > > org.apache.catalina.core.
> > > > >> > > > > >> > > StandardContextValve.invoke(
> > > > >> > > > > >> > > > > >> > > > > > > > >
> StandardContextValve.java:96)
> > > > >> > > > > >> > > > > >> > > > > > > > >         at
> > > > >> > > > > >> > > > > >> > > > > > > > > org.apache.catalina.core.
> > > > >> > > > > >> > StandardHostValve.invoke(
> > > > >> > > > > >> > > > > >> > > > > > > > > StandardHostValve.java:140)
> > > > >> > > > > >> > > > > >> > > > > > > > >         at
> > > > >> > > > > >> > > > > >> > > > > > > > > org.apache.catalina.valves.
> > > > >> > > > > >> > ErrorReportValve.invoke(
> > > > >> > > > > >> > > > > >> > > > > > > > > ErrorReportValve.java:79)
> > > > >> > > > > >> > > > > >> > > > > > > > >         at
> > > > >> > > > > >> > > > > >> > > > > > > > >
> org.apache.tomee.catalina.Open
> > > > >> > > > > >> > > > > >> EJBSecurityListener$RequestCap
> > > > >> > > > > >> > > > > >> > > > > > > > turer.invoke(
> > > > >> > > > > >> > > > > >> > > > > > > > >
> OpenEJBSecurityListener.java:
> > > 97)
> > > > >> > > > > >> > > > > >> > > > > > > > >         at
> > > > >> > > > > >> > > > > >> > > > > > > > > org.apache.catalina.core.
> > > > >> > > > > >> > > StandardEngineValve.invoke(
> > > > >> > > > > >> > > > > >> > > > > > > > > StandardEngineValve.java:87)
> > > > >> > > > > >> > > > > >> > > > > > > > >         at
> > > > >> > > > > >> > > > > >> > > > > > > > >
> org.apache.catalina.connector.
> > > > >> > > > > >> > > CoyoteAdapter.service(
> > > > >> > > > > >> > > > > >> > > > > > > > > CoyoteAdapter.java:349)
> > > > >> > > > > >> > > > > >> > > > > > > > >         at
> > > > >> > > > > >> > > > > >> > > > > > > > >
> org.apache.coyote.http11.Http1
> > > > >> > > > > >> > > > > >> 1Processor.service(Http11Proce
> > > > >> > > > > >> > > > > >> > > > > > > > ssor.java:783)
> > > > >> > > > > >> > > > > >> > > > > > > > >         at
> > > > >> > > > > >> > > > > >> > > > > > > > >
> org.apache.coyote.AbstractProc
> > > > >> > > > > >> essorLight.process(
> > > > >> > > > > >> > > > > >> > > > > > > > > AbstractProcessorLight.java:
> > 66)
> > > > >> > > > > >> > > > > >> > > > > > > > >         at
> > > > >> > > > > >> > > > > >> > > > > > > > > org.apache.coyote.
> > > > AbstractProtocol$
> > > > >> > > > > >> > > ConnectionHandler.
> > > > >> > > > > >> > > > > >> > process(
> > > > >> > > > > >> > > > > >> > > > > > > > > AbstractProtocol.java:798)
> > > > >> > > > > >> > > > > >> > > > > > > > >         at
> > > > >> > > > > >> > > > > >> > > > > > > > > org.apache.tomcat.util.net.
> > > > >> > > > > >> > > > NioEndpoint$SocketProcessor.
> > > > >> > > > > >> > > > > >> > > > > > > > > doRun(NioEndpoint.java:1434)
> > > > >> > > > > >> > > > > >> > > > > > > > >         at
> > > > >> > > > > >> > > > > >> > > > > > > > > org.apache.tomcat.util.net.
> > > > >> > > > > >> > SocketProcessorBase.run(
> > > > >> > > > > >> > > > > >> > > > > > > > > SocketProcessorBase.java:49)
> > > > >> > > > > >> > > > > >> > > > > > > > >         at
> > > > >> > > > > >> > > > > >> > > > > > > > > java.util.concurrent.
> > > > >> > > > > >> > ThreadPoolExecutor.runWorker(
> > > > >> > > > > >> > > > > >> > > > > > > > >
> ThreadPoolExecutor.java:1142)
> > > > >> > > > > >> > > > > >> > > > > > > > >         at
> > > > >> > > > > >> > > > > >> > > > > > > > > java.util.concurrent.
> > > > >> > > > > >> > ThreadPoolExecutor$Worker.run(
> > > > >> > > > > >> > > > > >> > > > > > > > > ThreadPoolExecutor.java:617)
> > > > >> > > > > >> > > > > >> > > > > > > > >         at
> > > > >> > > > > >> > > > > >> > > > > > > > > org.apache.tomcat.util.
> > > > >> > > threads.TaskThread$
> > > > >> > > > > >> > > > > >> > > WrappingRunnable.run(
> > > > >> > > > > >> > > > > >> > > > > > > > > TaskThread.java:61)
> > > > >> > > > > >> > > > > >> > > > > > > > >         at
> > > > >> > java.lang.Thread.run(Thread.ja
> > > > >> > > > > >> va:745)
> > > > >> > > > > >> > > > > >> > > > > > > > >
> > > > >> > > > > >> > > > > >> > > > > > > > > 2) Now here is the clients
> > > request
> > > > >> > being
> > > > >> > > > > >> processed
> > > > >> > > > > >> > > in
> > > > >> > > > > >> > > > > our
> > > > >> > > > > >> > > > > >> EJB
> > > > >> > > > > >> > > > > >> > > > > looking
> > > > >> > > > > >> > > > > >> > > > > > > for
> > > > >> > > > > >> > > > > >> > > > > > > > > the row that was created
> above
> > > but
> > > > >> is
> > > > >> > not
> > > > >> > > > > >> finished
> > > > >> > > > > >> > > > > >> committing
> > > > >> > > > > >> > > > > >> > > > yet.
> > > > >> > > > > >> > > > > >> > > > > > The
> > > > >> > > > > >> > > > > >> > > > > > > > row
> > > > >> > > > > >> > > > > >> > > > > > > > > with ID 615867 is not found.
> > > > >> > > > > >> > > > > >> > > > > > > > > 2017/04/26 16:22:51.588 FINE
> > > > >> > > > > >> > > > > >> > > > > > > > >  [TomEE-Exec-10][202][com.
> > > > >> > > > > >> > > > smilecoms.im.IdentityManager.
> > > > >> > > > > >> > > > > >> > > > > getCustomers]
> > > > >> > > > > >> > > > > >> > > > > > > > > |Looking up a single
> customer
> > > with
> > > > >> ID
> > > > >> > > > > [615867]
> > > > >> > > > > >> > > > > >> > > > > > > > > 3) Here is the sleep having
> > > > >> finished.
> > > > >> > > > > >> > > > > >> > > > > > > > > 2017/04/26 16:22:51.594 FINE
> > > > >> > > > > >> > > > > >> > > > > > > > >
> > [TomEE-Exec-15][207][com.smile
> > > > >> > > > > >> > > > > >> coms.commons.base.lifecycle.
> > > > >> > > > > >> > > > > >> > > > > > > > >
> SmileConnectionLifecycleInterc
> > > > >> > > > eptor.commit]
> > > > >> > > > > >> > > > > >> > > > > > > > > |Commit sleep finished
> > > > >> > > > > >> > > > > >> > > > > > > > >
> > > > >> > > > > >> > > > > >> > > > > > > > > I would expect that only
> after
> > > > >> > 2017/04/26
> > > > >> > > > > >> > > 16:22:51.594
> > > > >> > > > > >> > > > > >> would
> > > > >> > > > > >> > > > > >> > > the
> > > > >> > > > > >> > > > > >> > > > > > client
> > > > >> > > > > >> > > > > >> > > > > > > > > receive the SOAP response to
> > the
> > > > >> insert
> > > > >> > > but
> > > > >> > > > > >> > clearly
> > > > >> > > > > >> > > > that
> > > > >> > > > > >> > > > > >> is
> > > > >> > > > > >> > > > > >> > not
> > > > >> > > > > >> > > > > >> > > > the
> > > > >> > > > > >> > > > > >> > > > > > > case.
> > > > >> > > > > >> > > > > >> > > > > > > > > It is slowed down by the
> sleep
> > > but
> > > > >> > there
> > > > >> > > > > still
> > > > >> > > > > >> > seems
> > > > >> > > > > >> > > > to
> > > > >> > > > > >> > > > > be
> > > > >> > > > > >> > > > > >> > some
> > > > >> > > > > >> > > > > >> > > > > race
> > > > >> > > > > >> > > > > >> > > > > > > > > condition where it somehow
> can
> > > > still
> > > > >> > beat
> > > > >> > > > the
> > > > >> > > > > >> > commit
> > > > >> > > > > >> > > > > >> > returning.
> > > > >> > > > > >> > > > > >> > > > If
> > > > >> > > > > >> > > > > >> > > > > > the
> > > > >> > > > > >> > > > > >> > > > > > > > > commit were called after
> > sending
> > > > the
> > > > >> > > > response
> > > > >> > > > > >> or
> > > > >> > > > > >> > in
> > > > >> > > > > >> > > > > >> parallel
> > > > >> > > > > >> > > > > >> > to
> > > > >> > > > > >> > > > > >> > > > > doing
> > > > >> > > > > >> > > > > >> > > > > > > so
> > > > >> > > > > >> > > > > >> > > > > > > > > then I would have expected
> the
> > > > >> 1000ms
> > > > >> > > sleep
> > > > >> > > > > to
> > > > >> > > > > >> not
> > > > >> > > > > >> > > > > impact
> > > > >> > > > > >> > > > > >> the
> > > > >> > > > > >> > > > > >> > > > > > response
> > > > >> > > > > >> > > > > >> > > > > > > > time
> > > > >> > > > > >> > > > > >> > > > > > > > > of the service. Very very
> > > > >> strange....
> > > > >> > > > > >> > > > > >> > > > > > > > >
> > > > >> > > > > >> > > > > >> > > > > > > > > Here is the code snippet of
> my
> > > > >> > > > > >> > > > > >> SmileConnectionLifecycleInterc
> > > > >> > > > > >> > > > > >> > > > > eptor:
> > > > >> > > > > >> > > > > >> > > > > > > > >
> > > > >> > > > > >> > > > > >> > > > > > > > > public class
> > > > >> > > SmileConnectionLifecycleInterc
> > > > >> > > > > >> eptor
> > > > >> > > > > >> > > > > >> implements
> > > > >> > > > > >> > > > > >> > > > > > > > >
> > ConnectionLifecycleInterceptor {
> > > > >> > > > > >> > > > > >> > > > > > > > >
> > > > >> > > > > >> > > > > >> > > > > > > > >     private static final
> > Logger
> > > > log
> > > > >> =
> > > > >> > > > > >> > > > > >> > > > > > > > > LoggerFactory.getLogger(
> > > > >> > > > > >> > > > SmileConnectionLifecycleInterc
> > > > >> > > > > >> > > > > >> > > > > eptor.class);
> > > > >> > > > > >> > > > > >> > > > > > > > >
> > > > >> > > > > >> > > > > >> > > > > > > > >
> > > > >> > > > > >> > > > > >> > > > > > > > >     @Override
> > > > >> > > > > >> > > > > >> > > > > > > > >     public boolean commit()
> > > throws
> > > > >> > > > > >> SQLException {
> > > > >> > > > > >> > > > > >> > > > > > > > >         log.debug("Commit
> > > > called");
> > > > >> > > > > >> > > > > >> > > > > > > > >         log.debug("Stack in
> > > > commit.
> > > > >> > > > Sleeping
> > > > >> > > > > >> now:
> > > > >> > > > > >> > ",
> > > > >> > > > > >> > > > new
> > > > >> > > > > >> > > > > >> > > > > > Exception());
> > > > >> > > > > >> > > > > >> > > > > > > > >         try {
> > > > >> > > > > >> > > > > >> > > > > > > > >
> >  Thread.sleep(1000);
> > > > >> > > > > >> > > > > >> > > > > > > > >         } catch (Exception
> e)
> > {
> > > > >> > > > > >> > > > > >> > > > > > > > >
> > > > >> > > > > >> > > > > >> > > > > > > > >         }
> > > > >> > > > > >> > > > > >> > > > > > > > >         log.debug("Commit
> > sleep
> > > > >> > > finished");
> > > > >> > > > > >> > > > > >> > > > > > > > >         return true;
> > > > >> > > > > >> > > > > >> > > > > > > > >     }
> > > > >> > > > > >> > > > > >> > > > > > > > > ...
> > > > >> > > > > >> > > > > >> > > > > > > > >
> > > > >> > > > > >> > > > > >> > > > > > > > >
> > > > >> > > > > >> > > > > >> > > > > > > > > Any thoughts?
> > > > >> > > > > >> > > > > >> > > > > > > > >
> > > > >> > > > > >> > > > > >> > > > > > > > > Paul
> > > > >> > > > > >> > > > > >> > > > > > > > >
> > > > >> > > > > >> > > > > >> > > > > > > > > On 26 April 2017 at 13:50,
> > Paul
> > > > >> > > > Carter-Brown
> > > > >> > > > > <
> > > > >> > > > > >> > > > > >> > > > > > > > > paul.carter-brown@smilecoms.
> > com
> > > >
> > > > >> > wrote:
> > > > >> > > > > >> > > > > >> > > > > > > > >
> > > > >> > > > > >> > > > > >> > > > > > > > > > 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.M
> > > > >> > > > > >> essagePartInfo,
> > > > >> > > > > >> > 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/rmannibuc
> > > > >> > > > > >> au>
> > > > >> > > > > >> > |
> > > > >> > > > > >> > > > > 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-rmannib
> > > > >> > > > > >> ucau.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>
> > > > >> > > > > >> > > > > >> > > > > > > > > >> >
> > > > >> > > > > >> > > > > >> > > > > > > > > >> >
> > > > >> > > > > >> > > > > >> > > > > > > > > >>
> > > > >> > > > > >> > > > > >> > > > > > > > > >
> > > > >> > > > > >> > > > > >> > > > > > > > >
> > > > >> > > > > >> > > > > >> > > > > > > > >
> > > > >> > > > > >> > > > > >> > > > > > > > > --
> > > > >> > > > > >> > > > > >> > > > > > > > >
> > > > >> > > > > >> > > > > >> > > > > > > > > *Paul Carter-Brown*
> > > > >> > > > > >> > > > > >> > > > > > > > >
> > > > >> > > > > >> > > > > >> > > > > > > > > *Group Chief Information
> > > Officer*
> > > > >> > > > > >> > > > > >> > > > > > > > >
> > > > >> > > > > >> > > > > >> > > > > > > > > *Smile Communications Pty
> > (Ltd)
> > > > >>    *
> > > > >> > > > > >> > > > > >> > > > > > > > > Smile +234 (0) 702 000 1234
> > > > >> > > > > >> > > > > >> > > > > > > > > Mobile +27 (0) 83 4427 179
> > > > >> > > > > >> > > > > >> > > > > > > > > Skype PaulC-B
> > > > >> > > > > >> > > > > >> > > > > > > > > paul.carter-brown@smilecoms.
> > com
> > > > >> > > > > >> > > > > >> > > > > > > > > www.smilecoms.com
> > > > >> > > > > >> > > > > >> > > > > > > > >
> > > > >> > > > > >> > > > > >> > > > > > > > > --
> > > > >> > > > > >> > > > > >> > > > > > > > >
> > > > >> > > > > >> > > > > >> > > > > > > > >
> > > > >> > > > > >> > > > > >> > > > > > > > > This email is subject to the
> > > > >> disclaimer
> > > > >> > > of
> > > > >> > > > > >> Smile
> > > > >> > > > > >> > > > > >> > Communications
> > > > >> > > > > >> > > > > >> > > > at
> > > > >> > > > > >> > > > > >> > > > > > > > >
> > http://www.smilecoms.com/home/
> > > > >> > > > > >> email-disclaimer/ <
> > > > >> > > > > >> > > > > >> > > > > > > > http://www.smilecoms.com/
> > > > >> > > > > >> > > > > >> > > > > > > > > disclaimer>
> > > > >> > > > > >> > > > > >> > > > > > > > >
> > > > >> > > > > >> > > > > >> > > > > > > > >
> > > > >> > > > > >> > > > > >> > > > > > > >
> > > > >> > > > > >> > > > > >> > > > > > >
> > > > >> > > > > >> > > > > >> > > > > > >
> > > > >> > > > > >> > > > > >> > > > > > >
> > > > >> > > > > >> > > > > >> > > > > > > --
> > > > >> > > > > >> > > > > >> > > > > > >
> > > > >> > > > > >> > > > > >> > > > > > > *Paul Carter-Brown*
> > > > >> > > > > >> > > > > >> > > > > > >
> > > > >> > > > > >> > > > > >> > > > > > > *Group Chief Information
> Officer*
> > > > >> > > > > >> > > > > >> > > > > > >
> > > > >> > > > > >> > > > > >> > > > > > > *Smile Communications Pty (Ltd)
> > > >  *
> > > > >> > > > > >> > > > > >> > > > > > > Smile +234 (0) 702 000 1234
> > > > >> > > > > >> <+234%20702%20000%201234>
> > > > >> > > > > >> > > > > >> > > > > > > Mobile +27 (0) 83 4427 179
> > > > >> > > > > >> > > > > >> > > > > > > Skype PaulC-B
> > > > >> > > > > >> > > > > >> > > > > > > paul.carter-brown@smilecoms.com
> > > > >> > > > > >> > > > > >> > > > > > > www.smilecoms.com
> > > > >> > > > > >> > > > > >> > > > > > >
> > > > >> > > > > >> > > > > >> > > > > > > --
> > > > >> > > > > >> > > > > >> > > > > > >
> > > > >> > > > > >> > > > > >> > > > > > >
> > > > >> > > > > >> > > > > >> > > > > > > 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>
> > > > >> > > > > >> > > > > >> > > > >
> > > > >> > > > > >> > > > > >> > > > >
> > > > >> > > > > >> > > > > >> > > >
> > > > >> > > > > >> > > > > >> > >
> > > > >> > > > > >> > > > > >> > >
> > > > >> > > > > >> > > > > >> > >
> > > > >> > > > > >> > > > > >> > > --
> > > > >> > > > > >> > > > > >> > >
> > > > >> > > > > >> > > > > >> > > *Paul Carter-Brown*
> > > > >> > > > > >> > > > > >> > >
> > > > >> > > > > >> > > > > >> > > *Group Chief Information Officer*
> > > > >> > > > > >> > > > > >> > >
> > > > >> > > > > >> > > > > >> > > *Smile Communications Pty (Ltd)       *
> > > > >> > > > > >> > > > > >> > > Smile +234 (0) 702 000 1234
> > > > >> > <+234%20702%20000%201234>
> > > > >> > > > > >> > > > > >> > > Mobile +27 (0) 83 4427 179
> > > > >> > > > > >> > > > > >> > > Skype PaulC-B
> > > > >> > > > > >> > > > > >> > > paul.carter-brown@smilecoms.com
> > > > >> > > > > >> > > > > >> > > www.smilecoms.com
> > > > >> > > > > >> > > > > >> > >
> > > > >> > > > > >> > > > > >> > > --
> > > > >> > > > > >> > > > > >> > >
> > > > >> > > > > >> > > > > >> > >
> > > > >> > > > > >> > > > > >> > > This email is subject to the disclaimer
> of
> > > > Smile
> > > > >> > > > > >> > Communications
> > > > >> > > > > >> > > at
> > > > >> > > > > >> > > > > >> > > http://www.smilecoms.com/home/
> > > > email-disclaimer/
> > > > >> <
> > > > >> > > > > >> > > > > >> > http://www.smilecoms.com/
> > > > >> > > > > >> > > > > >> > > disclaimer>
> > > > >> > > > > >> > > > > >> > >
> > > > >> > > > > >> > > > > >> > >
> > > > >> > > > > >> > > > > >> >
> > > > >> > > > > >> > > > > >> >
> > > > >> > > > > >> > > > > >> >
> > > > >> > > > > >> > > > > >>
> > > > >> > > > > >> > > > > >>
> > > > >> > > > > >> > > > > >> --
> > > > >> > > > > >> > > > > >>
> > > > >> > > > > >> > > > > >> *Paul Carter-Brown*
> > > > >> > > > > >> > > > > >>
> > > > >> > > > > >> > > > > >> *Group Chief Information Officer*
> > > > >> > > > > >> > > > > >>
> > > > >> > > > > >> > > > > >> *Smile Communications Pty (Ltd)       *
> > > > >> > > > > >> > > > > >> Smile +234 (0) 702 000 1234
> > > > >> > > > > >> > > > > >> Mobile +27 (0) 83 4427 179
> > > > >> > > > > >> > > > > >> Skype PaulC-B
> > > > >> > > > > >> > > > > >> paul.carter-brown@smilecoms.com
> > > > >> > > > > >> > > > > >> www.smilecoms.com
> > > > >> > > > > >> > > > > >>
> > > > >> > > > > >> > > > > >> --
> > > > >> > > > > >> > > > > >>
> > > > >> > > > > >> > > > > >>
> > > > >> > > > > >> > > > > >> This email is subject to the disclaimer of
> > Smile
> > > > >> > > > > >> Communications at
> > > > >> > > > > >> > > > > >> http://www.smilecoms.com/home/
> > email-disclaimer/
> > > <
> > > > >> > > > > >> > > > > >> http://www.smilecoms.com/disclaimer>
> > > > >> > > > > >> > > > > >>
> > > > >> > > > > >> > > > > >>
> > > > >> > > > > >> > > > >
> > > > >> > > > > >> > > >
> > > > >> > > > > >> > > >
> > > > >> > > > > >> > > >
> > > > >> > > > > >> > > > --
> > > > >> > > > > >> > > >
> > > > >> > > > > >> > > > *Paul Carter-Brown*
> > > > >> > > > > >> > > >
> > > > >> > > > > >> > > > *Group Chief Information Officer*
> > > > >> > > > > >> > > >
> > > > >> > > > > >> > > > *Smile Communications Pty (Ltd)       *
> > > > >> > > > > >> > > > Smile +234 (0) 702 000 1234
> > > > >> > > > > >> > > > Mobile +27 (0) 83 4427 179
> > > > >> > > > > >> > > > Skype PaulC-B
> > > > >> > > > > >> > > > paul.carter-brown@smilecoms.com
> > > > >> > > > > >> > > > www.smilecoms.com
> > > > >> > > > > >> > > >
> > > > >> > > > > >> > > > --
> > > > >> > > > > >> > > >
> > > > >> > > > > >> > > >
> > > > >> > > > > >> > > > This email is subject to the disclaimer of Smile
> > > > >> > > Communications
> > > > >> > > > at
> > > > >> > > > > >> > > > http://www.smilecoms.com/home/email-disclaimer/
> <
> > > > >> > > > > >> > > http://www.smilecoms.com/
> > > > >> > > > > >> > > > disclaimer>
> > > > >> > > > > >> > > >
> > > > >> > > > > >> > > >
> > > > >> > > > > >> > >
> > > > >> > > > > >> >
> > > > >> > > > > >> >
> > > > >> > > > > >> >
> > > > >> > > > > >> > --
> > > > >> > > > > >> >
> > > > >> > > > > >> > *Paul Carter-Brown*
> > > > >> > > > > >> >
> > > > >> > > > > >> > *Group Chief Information Officer*
> > > > >> > > > > >> >
> > > > >> > > > > >> > *Smile Communications Pty (Ltd)       *
> > > > >> > > > > >> > Smile +234 (0) 702 000 1234
> > > > >> > > > > >> > Mobile +27 (0) 83 4427 179
> > > > >> > > > > >> > Skype PaulC-B
> > > > >> > > > > >> > paul.carter-brown@smilecoms.com
> > > > >> > > > > >> > www.smilecoms.com
> > > > >> > > > > >> >
> > > > >> > > > > >> > --
> > > > >> > > > > >> >
> > > > >> > > > > >> >
> > > > >> > > > > >> > This email is subject to the disclaimer of Smile
> > > > >> Communications
> > > > >> > at
> > > > >> > > > > >> > http://www.smilecoms.com/home/email-disclaimer/ <
> > > > >> > > > > >> http://www.smilecoms.com/
> > > > >> > > > > >> > disclaimer>
> > > > >> > > > > >> >
> > > > >> > > > > >> >
> > > > >> > > > > >>
> > > > >> > > > > >
> > > > >> > > > > >
> > > > >> > > > > >
> > > > >> > > > > > --
> > > > >> > > > > >
> > > > >> > > > > > *Paul Carter-Brown*
> > > > >> > > > > >
> > > > >> > > > > > *Group Chief Information Officer*
> > > > >> > > > > >
> > > > >> > > > > > *Smile Communications Pty (Ltd)       *
> > > > >> > > > > > Smile +234 (0) 702 000 1234
> > > > >> > > > > > Mobile +27 (0) 83 4427 179
> > > > >> > > > > > Skype PaulC-B
> > > > >> > > > > > paul.carter-brown@smilecoms.com
> > > > >> > > > > > www.smilecoms.com
> > > > >> > > > > >
> > > > >> > > > > > 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>
> > > > >> > > >
> > > > >> > > >
> > > > >> > >
> > > > >> >
> > > > >> > --
> > > > >> >
> > > > >> >
> > > > >> > This email is subject to the disclaimer of Smile Communications
> at
> > > > >> > http://www.smilecoms.com/home/email-disclaimer/ <
> > > > >> http://www.smilecoms.com/
> > > > >> > disclaimer>
> > > > >> >
> > > > >> >
> > > > >>
> > > > >
> > > > >
> > > > >
> > > > > --
> > > > >
> > > > > *Paul Carter-Brown*
> > > > >
> > > > > *Group Chief Information Officer*
> > > > >
> > > > > *Smile Communications Pty (Ltd)       *
> > > > > Smile +234 (0) 702 000 1234
> > > > > Mobile +27 (0) 83 4427 179
> > > > > Skype PaulC-B
> > > > > paul.carter-brown@smilecoms.com
> > > > > www.smilecoms.com
> > > > >
> > > > > This email is subject to the disclaimer of Smile Communications at
> > > > http://www.smilecoms.com/home/email-disclaimer/ <
> > > http://www.smilecoms.com/
> > > > disclaimer>
> > > > >
> > > > >
> > > >
> > >
> > >
> > >
> > > --
> > >
> > > *Paul Carter-Brown*
> > >
> > > *Group Chief Information Officer*
> > >
> > > *Smile Communications Pty (Ltd)       *
> > > Smile +234 (0) 702 000 1234
> > > Mobile +27 (0) 83 4427 179
> > > Skype PaulC-B
> > > paul.carter-brown@smilecoms.com
> > > www.smilecoms.com
> > >
> > > --
> > >
> > >
> > > This email is subject to the disclaimer of Smile Communications at
> > > http://www.smilecoms.com/home/email-disclaimer/ <
> > http://www.smilecoms.com/
> > > disclaimer>
> > >
> > >
> >
>
>
>
> --
>
> *Paul Carter-Brown*
>
> *Group Chief Information Officer*
>
> *Smile Communications Pty (Ltd)       *
> Smile +234 (0) 702 000 1234
> Mobile +27 (0) 83 4427 179
> Skype PaulC-B
> paul.carter-brown@smilecoms.com
> www.smilecoms.com
>
> --
>
>
> 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