You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@camel.apache.org by krishna <kr...@gmail.com> on 2012/12/18 14:48:34 UTC

Camel - causes socket write error

Hi,

scenario : We have a quartz configured to run every minute which triggers a
GET restful webservice to get records based on a condition, which is parsed
and posted to a POST/PUT restful web service. 

Problem : Socket write error is thrown after sometime. After taht the camel
- Quartz route is hangs.

Please find the log below

Dec 18, 2012 11:37:30 AM org.restlet.engine.http.connector.Connection
writeMessage
WARNING: Exception while writing the message body.
java.net.SocketException: Software caused connection abort: socket write
error
        at java.net.SocketOutputStream.socketWrite0(Native Method)
        at java.net.SocketOutputStream.socketWrite(Unknown Source)
        at java.net.SocketOutputStream.write(Unknown Source)
        at java.io.BufferedOutputStream.flushBuffer(Unknown Source)
        at java.io.BufferedOutputStream.flush(Unknown Source)
        at org.restlet.engine.io.BioUtils.copy(BioUtils.java:76)
        at
org.restlet.representation.CharacterRepresentation.write(CharacterRepresentation.java:71)
        at
org.restlet.engine.http.connector.Connection.writeMessageBody(Connection.java:873)
        at
org.restlet.engine.http.connector.Connection.writeMessage(Connection.java:818)
        at
org.restlet.engine.http.connector.ClientConnection.writeMessage(ClientConnection.java:305)
        at
org.restlet.engine.http.connector.Connection.writeMessages(Connection.java:954)
        at
org.restlet.engine.http.connector.Controller$1.run(Controller.java:81)
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown
Source)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown
Source)
        at java.lang.Thread.run(Unknown Source)
Dec 18, 2012 11:37:30 AM org.restlet.engine.http.connector.ClientConnection
writeMessage
INFO: An exception occured writing the request
java.net.SocketException: Software caused connection abort: socket write
error
        at java.net.SocketOutputStream.socketWrite0(Native Method)
        at java.net.SocketOutputStream.socketWrite(Unknown Source)
        at java.net.SocketOutputStream.write(Unknown Source)
        at java.io.BufferedOutputStream.flushBuffer(Unknown Source)
        at java.io.BufferedOutputStream.flush(Unknown Source)
        at org.restlet.engine.io.BioUtils.copy(BioUtils.java:76)
        at
org.restlet.representation.CharacterRepresentation.write(CharacterRepresentation.java:71)
        at
org.restlet.engine.http.connector.Connection.writeMessageBody(Connection.java:873)
        at
org.restlet.engine.http.connector.Connection.writeMessage(Connection.java:818)
        at
org.restlet.engine.http.connector.ClientConnection.writeMessage(ClientConnection.java:305)
        at
org.restlet.engine.http.connector.Connection.writeMessages(Connection.java:954)
        at
org.restlet.engine.http.connector.Controller$1.run(Controller.java:81)
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown
Source)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown
Source)
        at java.lang.Thread.run(Unknown Source)
Dec 18, 2012 11:37:30 AM org.restlet.engine.http.connector.Connection
writeMessage
WARNING: Exception while writing the message headers.
java.net.SocketException: Software caused connection abort: socket write
error
        at java.net.SocketOutputStream.socketWrite0(Native Method)
        at java.net.SocketOutputStream.socketWrite(Unknown Source)
        at java.net.SocketOutputStream.write(Unknown Source)
        at java.io.BufferedOutputStream.flushBuffer(Unknown Source)
        at java.io.BufferedOutputStream.flush(Unknown Source)
        at
org.restlet.engine.http.connector.Connection.writeMessageHead(Connection.java:907)
        at
org.restlet.engine.http.connector.Connection.writeMessageHead(Connection.java:921)
        at
org.restlet.engine.http.connector.Connection.writeMessage(Connection.java:796)
        at
org.restlet.engine.http.connector.ClientConnection.writeMessage(ClientConnection.java:314)
        at
org.restlet.engine.http.connector.Connection.writeMessages(Connection.java:954)
        at
org.restlet.engine.http.connector.Controller$1.run(Controller.java:81)
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown
Source)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown
Source)
        at java.lang.Thread.run(Unknown Source)
Dec 18, 2012 11:37:30 AM org.restlet.engine.http.connector.ClientConnection
writeMessage
WARNING: Unable to send error request
java.net.SocketException: Software caused connection abort: socket write
error
        at java.net.SocketOutputStream.socketWrite0(Native Method)
        at java.net.SocketOutputStream.socketWrite(Unknown Source)
        at java.net.SocketOutputStream.write(Unknown Source)
        at java.io.BufferedOutputStream.flushBuffer(Unknown Source)
        at java.io.BufferedOutputStream.flush(Unknown Source)
        at
org.restlet.engine.http.connector.Connection.writeMessageHead(Connection.java:907)
        at
org.restlet.engine.http.connector.Connection.writeMessageHead(Connection.java:921)
        at
org.restlet.engine.http.connector.Connection.writeMessage(Connection.java:796)
        at
org.restlet.engine.http.connector.ClientConnection.writeMessage(ClientConnection.java:314)
        at
org.restlet.engine.http.connector.Connection.writeMessages(Connection.java:954)
        at
org.restlet.engine.http.connector.Controller$1.run(Controller.java:81)
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown
Source)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown
Source)
        at java.lang.Thread.run(Unknown Source)

Environment:

Camel - 2.8
JDK - 1.6
Camel-Quartz - 2.8
Jetty Server - 7.4.5

Question : What is causing the socket write error to occur and how to
prevent taht from happening?

Thanks,
Krishnan
 




--
View this message in context: http://camel.465427.n5.nabble.com/Camel-causes-socket-write-error-tp5724284.html
Sent from the Camel - Users mailing list archive at Nabble.com.

Re: Camel - causes socket write error

Posted by krishna <kr...@gmail.com>.
Hi,

The thread which call the restlet is hanging. Is there a way to set timeout
on camel restlet 2.8 version?

Also in camel http component 2.8 , how to form the dynamic uri?

Thanks,
Krishnan



--
View this message in context: http://camel.465427.n5.nabble.com/Camel-causes-socket-write-error-tp5724284p5724459.html
Sent from the Camel - Users mailing list archive at Nabble.com.

Re: Camel - causes socket write error

Posted by Willem jiang <wi...@gmail.com>.
It looks like the Rest Server close the connection before the client wants to send the request again.
Maybe you should check the restful web service connection which you called from camel is still open for the client to use.  


--  
Willem Jiang

Red Hat, Inc.
FuseSource is now part of Red Hat
Web: http://www.fusesource.com | http://www.redhat.com
Blog: http://willemjiang.blogspot.com (http://willemjiang.blogspot.com/) (English)
          http://jnn.iteye.com (http://jnn.javaeye.com/) (Chinese)
Twitter: willemjiang  
Weibo: 姜宁willem





On Tuesday, December 18, 2012 at 9:48 PM, krishna wrote:

> Hi,
>  
> scenario : We have a quartz configured to run every minute which triggers a
> GET restful webservice to get records based on a condition, which is parsed
> and posted to a POST/PUT restful web service.  
>  
> Problem : Socket write error is thrown after sometime. After taht the camel
> - Quartz route is hangs.
>  
> Please find the log below
>  
> Dec 18, 2012 11:37:30 AM org.restlet.engine.http.connector.Connection
> writeMessage
> WARNING: Exception while writing the message body.
> java.net.SocketException: Software caused connection abort: socket write
> error
> at java.net.SocketOutputStream.socketWrite0(Native Method)
> at java.net.SocketOutputStream.socketWrite(Unknown Source)
> at java.net.SocketOutputStream.write(Unknown Source)
> at java.io.BufferedOutputStream.flushBuffer(Unknown Source)
> at java.io.BufferedOutputStream.flush(Unknown Source)
> at org.restlet.engine.io.BioUtils.copy(BioUtils.java:76)
> at
> org.restlet.representation.CharacterRepresentation.write(CharacterRepresentation.java:71)
> at
> org.restlet.engine.http.connector.Connection.writeMessageBody(Connection.java:873)
> at
> org.restlet.engine.http.connector.Connection.writeMessage(Connection.java:818)
> at
> org.restlet.engine.http.connector.ClientConnection.writeMessage(ClientConnection.java:305)
> at
> org.restlet.engine.http.connector.Connection.writeMessages(Connection.java:954)
> at
> org.restlet.engine.http.connector.Controller$1.run(Controller.java:81)
> at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown
> Source)
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown
> Source)
> at java.lang.Thread.run(Unknown Source)
> Dec 18, 2012 11:37:30 AM org.restlet.engine.http.connector.ClientConnection
> writeMessage
> INFO: An exception occured writing the request
> java.net.SocketException: Software caused connection abort: socket write
> error
> at java.net.SocketOutputStream.socketWrite0(Native Method)
> at java.net.SocketOutputStream.socketWrite(Unknown Source)
> at java.net.SocketOutputStream.write(Unknown Source)
> at java.io.BufferedOutputStream.flushBuffer(Unknown Source)
> at java.io.BufferedOutputStream.flush(Unknown Source)
> at org.restlet.engine.io.BioUtils.copy(BioUtils.java:76)
> at
> org.restlet.representation.CharacterRepresentation.write(CharacterRepresentation.java:71)
> at
> org.restlet.engine.http.connector.Connection.writeMessageBody(Connection.java:873)
> at
> org.restlet.engine.http.connector.Connection.writeMessage(Connection.java:818)
> at
> org.restlet.engine.http.connector.ClientConnection.writeMessage(ClientConnection.java:305)
> at
> org.restlet.engine.http.connector.Connection.writeMessages(Connection.java:954)
> at
> org.restlet.engine.http.connector.Controller$1.run(Controller.java:81)
> at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown
> Source)
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown
> Source)
> at java.lang.Thread.run(Unknown Source)
> Dec 18, 2012 11:37:30 AM org.restlet.engine.http.connector.Connection
> writeMessage
> WARNING: Exception while writing the message headers.
> java.net.SocketException: Software caused connection abort: socket write
> error
> at java.net.SocketOutputStream.socketWrite0(Native Method)
> at java.net.SocketOutputStream.socketWrite(Unknown Source)
> at java.net.SocketOutputStream.write(Unknown Source)
> at java.io.BufferedOutputStream.flushBuffer(Unknown Source)
> at java.io.BufferedOutputStream.flush(Unknown Source)
> at
> org.restlet.engine.http.connector.Connection.writeMessageHead(Connection.java:907)
> at
> org.restlet.engine.http.connector.Connection.writeMessageHead(Connection.java:921)
> at
> org.restlet.engine.http.connector.Connection.writeMessage(Connection.java:796)
> at
> org.restlet.engine.http.connector.ClientConnection.writeMessage(ClientConnection.java:314)
> at
> org.restlet.engine.http.connector.Connection.writeMessages(Connection.java:954)
> at
> org.restlet.engine.http.connector.Controller$1.run(Controller.java:81)
> at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown
> Source)
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown
> Source)
> at java.lang.Thread.run(Unknown Source)
> Dec 18, 2012 11:37:30 AM org.restlet.engine.http.connector.ClientConnection
> writeMessage
> WARNING: Unable to send error request
> java.net.SocketException: Software caused connection abort: socket write
> error
> at java.net.SocketOutputStream.socketWrite0(Native Method)
> at java.net.SocketOutputStream.socketWrite(Unknown Source)
> at java.net.SocketOutputStream.write(Unknown Source)
> at java.io.BufferedOutputStream.flushBuffer(Unknown Source)
> at java.io.BufferedOutputStream.flush(Unknown Source)
> at
> org.restlet.engine.http.connector.Connection.writeMessageHead(Connection.java:907)
> at
> org.restlet.engine.http.connector.Connection.writeMessageHead(Connection.java:921)
> at
> org.restlet.engine.http.connector.Connection.writeMessage(Connection.java:796)
> at
> org.restlet.engine.http.connector.ClientConnection.writeMessage(ClientConnection.java:314)
> at
> org.restlet.engine.http.connector.Connection.writeMessages(Connection.java:954)
> at
> org.restlet.engine.http.connector.Controller$1.run(Controller.java:81)
> at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown
> Source)
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown
> Source)
> at java.lang.Thread.run(Unknown Source)
>  
> Environment:
>  
> Camel - 2.8
> JDK - 1.6
> Camel-Quartz - 2.8
> Jetty Server - 7.4.5
>  
> Question : What is causing the socket write error to occur and how to
> prevent taht from happening?
>  
> Thanks,
> Krishnan
>  
>  
>  
>  
>  
> --
> View this message in context: http://camel.465427.n5.nabble.com/Camel-causes-socket-write-error-tp5724284.html
> Sent from the Camel - Users mailing list archive at Nabble.com (http://Nabble.com).




Re: Camel - causes socket write error

Posted by krishna <kr...@gmail.com>.
Hi,

I tried logging the org.restlet package, but I don't get the log printed.

I configured teh below things on my log4j.properties file to print the logs.

log4j.logger.org.restlet=DEBUG,A1
log4j.logger.org.restlet.engine.http.connector=DEBUG,A1

Please help me in getting the restlet logs.

Thanks,
Krishnan



--
View this message in context: http://camel.465427.n5.nabble.com/Camel-causes-socket-write-error-tp5724284p5724365.html
Sent from the Camel - Users mailing list archive at Nabble.com.

Re: Camel - causes socket write error

Posted by Christian Müller <ch...@gmail.com>.
May be the REST service was not responding within the time limit? I think
you have to figure it out by yourself why this exceptions happens. Set the
debug level of "org.restlet.engine.http.connector" to DEBUG or TRACE and
check what happens...
To decouple your quartz triggered exchange from the REST service, you can
put e.g. a seda endpoint in between.

Best,
Christian

On Tue, Dec 18, 2012 at 2:48 PM, krishna <kr...@gmail.com> wrote:

> Hi,
>
> scenario : We have a quartz configured to run every minute which triggers a
> GET restful webservice to get records based on a condition, which is parsed
> and posted to a POST/PUT restful web service.
>
> Problem : Socket write error is thrown after sometime. After taht the camel
> - Quartz route is hangs.
>
> Please find the log below
>
> Dec 18, 2012 11:37:30 AM org.restlet.engine.http.connector.Connection
> writeMessage
> WARNING: Exception while writing the message body.
> java.net.SocketException: Software caused connection abort: socket write
> error
>         at java.net.SocketOutputStream.socketWrite0(Native Method)
>         at java.net.SocketOutputStream.socketWrite(Unknown Source)
>         at java.net.SocketOutputStream.write(Unknown Source)
>         at java.io.BufferedOutputStream.flushBuffer(Unknown Source)
>         at java.io.BufferedOutputStream.flush(Unknown Source)
>         at org.restlet.engine.io.BioUtils.copy(BioUtils.java:76)
>         at
>
> org.restlet.representation.CharacterRepresentation.write(CharacterRepresentation.java:71)
>         at
>
> org.restlet.engine.http.connector.Connection.writeMessageBody(Connection.java:873)
>         at
>
> org.restlet.engine.http.connector.Connection.writeMessage(Connection.java:818)
>         at
>
> org.restlet.engine.http.connector.ClientConnection.writeMessage(ClientConnection.java:305)
>         at
>
> org.restlet.engine.http.connector.Connection.writeMessages(Connection.java:954)
>         at
> org.restlet.engine.http.connector.Controller$1.run(Controller.java:81)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown
> Source)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown
> Source)
>         at java.lang.Thread.run(Unknown Source)
> Dec 18, 2012 11:37:30 AM org.restlet.engine.http.connector.ClientConnection
> writeMessage
> INFO: An exception occured writing the request
> java.net.SocketException: Software caused connection abort: socket write
> error
>         at java.net.SocketOutputStream.socketWrite0(Native Method)
>         at java.net.SocketOutputStream.socketWrite(Unknown Source)
>         at java.net.SocketOutputStream.write(Unknown Source)
>         at java.io.BufferedOutputStream.flushBuffer(Unknown Source)
>         at java.io.BufferedOutputStream.flush(Unknown Source)
>         at org.restlet.engine.io.BioUtils.copy(BioUtils.java:76)
>         at
>
> org.restlet.representation.CharacterRepresentation.write(CharacterRepresentation.java:71)
>         at
>
> org.restlet.engine.http.connector.Connection.writeMessageBody(Connection.java:873)
>         at
>
> org.restlet.engine.http.connector.Connection.writeMessage(Connection.java:818)
>         at
>
> org.restlet.engine.http.connector.ClientConnection.writeMessage(ClientConnection.java:305)
>         at
>
> org.restlet.engine.http.connector.Connection.writeMessages(Connection.java:954)
>         at
> org.restlet.engine.http.connector.Controller$1.run(Controller.java:81)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown
> Source)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown
> Source)
>         at java.lang.Thread.run(Unknown Source)
> Dec 18, 2012 11:37:30 AM org.restlet.engine.http.connector.Connection
> writeMessage
> WARNING: Exception while writing the message headers.
> java.net.SocketException: Software caused connection abort: socket write
> error
>         at java.net.SocketOutputStream.socketWrite0(Native Method)
>         at java.net.SocketOutputStream.socketWrite(Unknown Source)
>         at java.net.SocketOutputStream.write(Unknown Source)
>         at java.io.BufferedOutputStream.flushBuffer(Unknown Source)
>         at java.io.BufferedOutputStream.flush(Unknown Source)
>         at
>
> org.restlet.engine.http.connector.Connection.writeMessageHead(Connection.java:907)
>         at
>
> org.restlet.engine.http.connector.Connection.writeMessageHead(Connection.java:921)
>         at
>
> org.restlet.engine.http.connector.Connection.writeMessage(Connection.java:796)
>         at
>
> org.restlet.engine.http.connector.ClientConnection.writeMessage(ClientConnection.java:314)
>         at
>
> org.restlet.engine.http.connector.Connection.writeMessages(Connection.java:954)
>         at
> org.restlet.engine.http.connector.Controller$1.run(Controller.java:81)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown
> Source)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown
> Source)
>         at java.lang.Thread.run(Unknown Source)
> Dec 18, 2012 11:37:30 AM org.restlet.engine.http.connector.ClientConnection
> writeMessage
> WARNING: Unable to send error request
> java.net.SocketException: Software caused connection abort: socket write
> error
>         at java.net.SocketOutputStream.socketWrite0(Native Method)
>         at java.net.SocketOutputStream.socketWrite(Unknown Source)
>         at java.net.SocketOutputStream.write(Unknown Source)
>         at java.io.BufferedOutputStream.flushBuffer(Unknown Source)
>         at java.io.BufferedOutputStream.flush(Unknown Source)
>         at
>
> org.restlet.engine.http.connector.Connection.writeMessageHead(Connection.java:907)
>         at
>
> org.restlet.engine.http.connector.Connection.writeMessageHead(Connection.java:921)
>         at
>
> org.restlet.engine.http.connector.Connection.writeMessage(Connection.java:796)
>         at
>
> org.restlet.engine.http.connector.ClientConnection.writeMessage(ClientConnection.java:314)
>         at
>
> org.restlet.engine.http.connector.Connection.writeMessages(Connection.java:954)
>         at
> org.restlet.engine.http.connector.Controller$1.run(Controller.java:81)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown
> Source)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown
> Source)
>         at java.lang.Thread.run(Unknown Source)
>
> Environment:
>
> Camel - 2.8
> JDK - 1.6
> Camel-Quartz - 2.8
> Jetty Server - 7.4.5
>
> Question : What is causing the socket write error to occur and how to
> prevent taht from happening?
>
> Thanks,
> Krishnan
>
>
>
>
>
> --
> View this message in context:
> http://camel.465427.n5.nabble.com/Camel-causes-socket-write-error-tp5724284.html
> Sent from the Camel - Users mailing list archive at Nabble.com.
>



--