ode-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Alex Boisvert" <boisv...@intalio.com>
Subject Re: Changing the mysql db schema
Date Wed, 04 Jun 2008 14:37:02 GMT
Hi Håkon,

I'm speculating because we don't have all the details, but here's a likely
scenario.

1) client sends request to process
2) process executes and calls many services which takes a good amount of
time
3) client times out because it hasn't received a response in X seconds  (X
being in the range of 60-180 seconds)
4) process tries to send back response but gets an exception because the
network socket has been closed.

Generally speaking, the solutions to this problem are to either:

1) shorten the execution time of the process during the request-response
message exchange (change the process design or optimize)
2) break the message exchange into two asynchronous messages exchanges
(one-way's);  this increases complexity because you'll need correlation and
a client that supports asynchronous exchanges
3) use a connectionless transport (e.g. JMS) that doesn't timeout or has
longer timeout
4) increase the network timeout of the client

Hope this helps,
alex


On Wed, Jun 4, 2008 at 2:28 AM, Håkon Sagehaug <hsagehaug@gmail.com> wrote:

> Hi
>
> Any hints on how ot solve this issue, I still can't figure it out.
>
> cheers, Håkon
>
> 2008/6/2 Håkon Sagehaug <hsagehaug@gmail.com>:
>
> > Hi
> >
> > Here is some more info about my problem. I seems to me that the client
> gets
> > all of the response if I get this message from the tomcat log
> >
> > DEBUG - GeronimoLog.debug(66) | Found a header in incoming message,
> > checking if there are endpoints there.
> > DEBUG - GeronimoLog.debug(66) | Got service response: <?xml version='1.0'
> > encoding='utf-8'?>
> >
> > after <?xml version='1.0' encoding='utf-8'?>  much xml, which is the
> > correct response from the server
> >
> > So the next message that comes is this
> >
> > ERROR - GeronimoLog.error(108) |
> > org.apache.axis2.AxisFault
> >     at org.apache.axis2.AxisFault.makeFault(AxisFault.java:417)
> >     at
> >
> org.apache.axis2.transport.http.SOAPMessageFormatter.writeTo(SOAPMessageFormatter.java:72)
> >     at
> >
> org.apache.axis2.transport.http.CommonsHTTPTransportSender.sendUsingOutputStream(CommonsHTTPTransportSender.java:294)
> >     at
> >
> org.apache.axis2.transport.http.CommonsHTTPTransportSender.invoke(CommonsHTTPTransportSender.java:211)
> >     at org.apache.axis2.engine.AxisEngine.send(AxisEngine.java:396)
> >     at
> >
> org.apache.ode.axis2.hooks.ODEMessageReceiver.invokeBusinessLogic(ODEMessageReceiver.java:58)
> >     at
> >
> org.apache.axis2.receivers.AbstractMessageReceiver.receive(AbstractMessageReceiver.java:96)
> >     at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:145)
> >     at
> >
> org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostRequest(HTTPTransportUtils.java:275)
> >     at
> > org.apache.axis2.transport.http.AxisServlet.doPost(AxisServlet.java:120)
> >     at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
> >     at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
> >     at
> >
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
> >     at
> >
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
> >     at
> >
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
> >     at
> >
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
> >     at
> >
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
> >     at
> >
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
> >     at
> >
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
> >     at
> >
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
> >     at
> >
> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:874)
> >     at
> >
> org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
> >     at
> >
> org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
> >     at
> >
> org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
> >     at
> >
> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
> >     at java.lang.Thread.run(Thread.java:619)
> > Caused by: com.ctc.wstx.exc.WstxIOException: null
> >     at
> >
> com.ctc.wstx.sw.BaseNsStreamWriter.doWriteEndTag(BaseNsStreamWriter.java:671)
> >     at
> >
> com.ctc.wstx.sw.BaseNsStreamWriter.writeEndElement(BaseNsStreamWriter.java:282)
> >     at
> >
> org.apache.axiom.om.impl.MTOMXMLStreamWriter.writeEndElement(MTOMXMLStreamWriter.java:106)
> >     at
> >
> org.apache.axiom.om.impl.util.OMSerializerUtil.serializeEndpart(OMSerializerUtil.java:49)
> >     at
> >
> org.apache.axiom.om.impl.llom.OMElementImpl.internalSerialize(OMElementImpl.java:793)
> >     at
> >
> org.apache.axiom.om.impl.llom.OMElementImpl.internalSerializeAndConsume(OMElementImpl.java:814)
> >     at
> >
> org.apache.axiom.om.impl.llom.OMElementImpl.internalSerialize(OMElementImpl.java:785)
> >     at
> >
> org.apache.axiom.om.impl.llom.OMElementImpl.internalSerializeAndConsume(OMElementImpl.java:814)
> >     at
> >
> org.apache.axiom.om.impl.llom.OMElementImpl.internalSerialize(OMElementImpl.java:785)
> >     at
> >
> org.apache.axiom.om.impl.llom.OMElementImpl.internalSerializeAndConsume(OMElementImpl.java:814)
> >     at
> >
> org.apache.axiom.om.impl.llom.OMElementImpl.internalSerialize(OMElementImpl.java:785)
> >     at
> >
> org.apache.axiom.om.impl.llom.OMElementImpl.internalSerializeAndConsume(OMElementImpl.java:814)
> >     at
> >
> org.apache.axiom.om.impl.llom.OMElementImpl.internalSerialize(OMElementImpl.java:785)
> >     at
> >
> org.apache.axiom.om.impl.llom.OMElementImpl.internalSerializeAndConsume(OMElementImpl.java:814)
> >     at
> >
> org.apache.axiom.soap.impl.llom.SOAPEnvelopeImpl.serializeInternally(SOAPEnvelopeImpl.java:237)
> >     at
> >
> org.apache.axiom.soap.impl.llom.SOAPEnvelopeImpl.internalSerialize(SOAPEnvelopeImpl.java:225)
> >     at
> >
> org.apache.axiom.om.impl.llom.OMElementImpl.internalSerializeAndConsume(OMElementImpl.java:814)
> >     at
> >
> org.apache.axiom.om.impl.llom.OMNodeImpl.serializeAndConsume(OMNodeImpl.java:421)
> >     at
> >
> org.apache.axis2.transport.http.SOAPMessageFormatter.writeTo(SOAPMessageFormatter.java:68)
> >     ... 24 more
> > Caused by: ClientAbortException:  java.net.SocketException: Broken pipe
> >     at
> >
> org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:366)
> >     at
> org.apache.tomcat.util.buf.ByteChunk.flushBuffer(ByteChunk.java:432)
> >     at org.apache.tomcat.util.buf.ByteChunk.append(ByteChunk.java:347)
> >     at
> >
> org.apache.catalina.connector.OutputBuffer.writeBytes(OutputBuffer.java:392)
> >     at
> > org.apache.catalina.connector.OutputBuffer.write(OutputBuffer.java:381)
> >     at
> >
> org.apache.catalina.connector.CoyoteOutputStream.write(CoyoteOutputStream.java:89)
> >     at
> > java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:65)
> >     at java.io.BufferedOutputStream.write(BufferedOutputStream.java:109)
> >     at com.ctc.wstx.io.UTF8Writer.write(UTF8Writer.java:139)
> >     at
> >
> com.ctc.wstx.sw.BufferingXmlWriter.flushBuffer(BufferingXmlWriter.java:1103)
> >     at
> >
> com.ctc.wstx.sw.BufferingXmlWriter.fastWriteRaw(BufferingXmlWriter.java:1126)
> >     at
> >
> com.ctc.wstx.sw.BufferingXmlWriter.writeEndTag(BufferingXmlWriter.java:770)
> >     at
> >
> com.ctc.wstx.sw.BufferingXmlWriter.writeEndTag(BufferingXmlWriter.java:789)
> >     at
> >
> com.ctc.wstx.sw.BaseNsStreamWriter.doWriteEndTag(BaseNsStreamWriter.java:669)
> >     ... 42 more
> > Caused by: java.net.SocketException: Broken pipe
> >     at java.net.SocketOutputStream.socketWrite0(Native Method)
> >     at
> java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:92)
> >     at java.net.SocketOutputStream.write(SocketOutputStream.java:136)
> >     at
> >
> org.apache.coyote.http11.InternalOutputBuffer.realWriteBytes(InternalOutputBuffer.java:747)
> >     at
> org.apache.tomcat.util.buf.ByteChunk.flushBuffer(ByteChunk.java:432)
> >     at org.apache.tomcat.util.buf.ByteChunk.append(ByteChunk.java:347)
> >     at
> >
> org.apache.coyote.http11.InternalOutputBuffer$OutputStreamOutputBuffer.doWrite(InternalOutputBuffer.java:770)
> >     at
> >
> org.apache.coyote.http11.filters.ChunkedOutputFilter.doWrite(ChunkedOutputFilter.java:126)
> >     at
> >
> org.apache.coyote.http11.InternalOutputBuffer.doWrite(InternalOutputBuffer.java:580)
> >     at org.apache.coyote.Response.doWrite(Response.java:560)
> >     at
> >
> org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:361)
> >     ... 55 more
> >
> >
> > I'm not sure where the error is thrown from. I can call the server
> through
> > axis2 generated client and through servicemix using apache cxf. I there
> some
> > way of setting the client to not time out?
> >
> > Any hints
> >
> > cheers, Håkon
> >
> > 2008/5/30 Alex Boisvert <boisvert@intalio.com>:
> >
> > Actually, this exception is not related to the database but more on the
> >> HTTP
> >> connection side.  Maybe the client timed out already?   This stacktrace
> >> fragment doesn't tell me when the exception happened (within the
> >> process/activity)
> >>
> >> If you have large messages, the response time is often affected because
> of
> >> the additional latency involved in shipping and persisting the data to
> the
> >> persistence layer.
> >>
> >> alex
> >>
> >>
> >> On Fri, May 30, 2008 at 12:18 AM, Håkon Sagehaug <hsagehaug@gmail.com>
> >> wrote:
> >>
> >> > Hi
> >> >
> >> > I got rid of the exception regarding the datatype, but got another
> this
> >> one
> >> >
> >> > Caused by: java.net.SocketException: Broken Pipe
> >> >    at java.net.SocketOutputStream.socketWrite0(Native Method)
> >> >    at
> >> java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:92)
> >> >    at java.net.SocketOutputStream.write(SocketOutputStream.java:136)
> >> >    at
> >> >
> >> >
> >>
> org.apache.coyote.http11.InternalOutputBuffer.realWriteBytes(InternalOutputBuffer.java:747)
> >> >    at
> >> org.apache.tomcat.util.buf.ByteChunk.flushBuffer(ByteChunk.java:432)
> >> >    at org.apache.tomcat.util.buf.ByteChunk.append(ByteChunk.java:347)
> >> >    at
> >> >
> >> >
> >>
> org.apache.coyote.http11.InternalOutputBuffer$OutputStreamOutputBuffer.doWrite(InternalOutputBuffer.java:770)
> >> >    at
> >> >
> >> >
> >>
> org.apache.coyote.http11.filters.ChunkedOutputFilter.doWrite(ChunkedOutputFilter.java:126)
> >> >    at
> >> >
> >> >
> >>
> org.apache.coyote.http11.InternalOutputBuffer.doWrite(InternalOutputBuffer.java:580)
> >> >    at org.apache.coyote.Response.doWrite(Response.java:560)
> >> >    at
> >> >
> >> >
> >>
> org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:361)
> >> >
> >> > What I can see this has something to do with mysql, not sure though.
> Do
> >> you
> >> > know how to sove this, is there something to set in the server.xml
> file
> >> or
> >> > something to be set on the mysql server?
> >> >
> >> > cheers, Håkon
> >> >
> >> > 2008/5/29 Alex Boisvert <boisvert@intalio.com>:
> >> >
> >> > > Yes, increasing the size of the text datatype should work.   The
> code
> >> > makes
> >> > > no assumption on the exact size (within reasonable limits, of
> course)
> >> > >
> >> > > alex
> >> > >
> >> > >
> >> > > On Thu, May 29, 2008 at 6:58 AM, Håkon Sagehaug <
> hsagehaug@gmail.com>
> >> > > wrote:
> >> > >
> >> > > > Hi
> >> > > >
> >> > > > I'm developing a bpel process to call a bioinformatics web
> service,
> >> > that
> >> > > > returns a large message which I get this error when I run the
> >> process
> >> > in
> >> > > > ode
> >> > > >
> >> > > >  org.apache.openjpa.persistence.PersistenceException: Data
> >> truncation:
> >> > > Data
> >> > > > too long for column 'DATA' at row 1 {prepstmnt 19062963 INSERT
> INTO
> >> > > > ODE_MESSAGE (MESSAGE_ID, DATA, TYPE, MESSAGE_EXCHANGE_ID) VALUES
> (?,
> >> ?,
> >> > > ?,
> >> > > > ?)
> >> > > >
> >> > > > Can I change the datatype in the schema from text to medium text
> or
> >> > large
> >> > > > text without it having any effect on other processes and table?
Or
> >> is
> >> > it
> >> > > > some other way of solving this issue. I can call the service
fine
> >> but
> >> > > when
> >> > > > the message is inserted into the db the exception is thrown
> >> > > >
> >> > > > cheers, Håkon
> >> > > >
> >> > > > --
> >> > > > Håkon Sagehaug, Software Developer
> >> > > > Parallab, Bergen Center for Computational Science (BCCS)
> >> > > > UNIFOB AS (University of Bergen Research Company)
> >> > > >
> >> > >
> >> >
> >> >
> >> >
> >> > --
> >> > Håkon Sagehaug, Software Developer
> >> > Parallab, Bergen Center for Computational Science (BCCS)
> >> > UNIFOB AS (University of Bergen Research Company)
> >> >
> >>
> >
> >
> >
> > --
> > Håkon Sagehaug, Software Developer
> > Parallab, Bergen Center for Computational Science (BCCS)
> > UNIFOB AS (University of Bergen Research Company)
> >
>
>
>
> --
> Håkon Sagehaug, Software Developer
> Parallab, Bergen Center for Computational Science (BCCS)
> UNIFOB AS (University of Bergen Research Company)
>

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