You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@camel.apache.org by Smith-John <mi...@gmail.com> on 2013/04/10 00:58:26 UTC

cxf producer needs a break?

Hi,

I have a strange (at least for me) issue with my route respectively the cxf
component in it.

The route looks like
from("cxf:XXX?wsdlURL=YYY&...")....to(...)...to("cxf:${header[ReplyTo]}?wsdlURL=YYY&..."); 
I get a one way SOAP message, do some work with it and send a response back
to the callback address specified.

In principle this works perfect. 
But sending requests with a short interval, I would say less than 5 seconds
between the requests, the messaging fails.
Sending requests every > 5 seconds: no problem.
Sending requests with time between them < 5 seconds: all except the first
one fail.

I'm using camel 2.10.4 and for sending the requests SoapUI.

Unfortunately the console shows no errors. The only difference between a
working and a not working try is the last DEBUG notification that is
[default-workqueue-1] DEBUG o.a.c.c.cxf.CxfClientCallback -
default-workqueue-1 calling handleResponse 
for a working one and
[default-workqueue-2] DEBUG o.a.c.c.cxf.CxfClientCallback -
default-workqueue-2 calling handleException
for a failing one.

Is this a bug or normal behaviour? Is there something to prevent this?

Best regards.



--
View this message in context: http://camel.465427.n5.nabble.com/cxf-producer-needs-a-break-tp5730612.html
Sent from the Camel - Users mailing list archive at Nabble.com.

Re: cxf producer needs a break?

Posted by Smith-John <mi...@gmail.com>.
Hi,

I'm using 1.6.34. 
Maybe better try a newer one than an older one?

Regards.



--
View this message in context: http://camel.465427.n5.nabble.com/cxf-producer-needs-a-break-tp5730612p5730726.html
Sent from the Camel - Users mailing list archive at Nabble.com.

Re: cxf producer needs a break?

Posted by Daniel Kulp <dk...@apache.org>.
What version of the JDK are you using?    Can you back up a few versions?   There is a bug introduced in 1.6 update 38 that can cause some of the keep-alive handling in the JDK to mis-behave.  This might be a symptom of this.

Dan



On Apr 9, 2013, at 6:58 PM, Smith-John <mi...@gmail.com> wrote:

> Hi,
> 
> I have a strange (at least for me) issue with my route respectively the cxf
> component in it.
> 
> The route looks like
> from("cxf:XXX?wsdlURL=YYY&...")....to(...)...to("cxf:${header[ReplyTo]}?wsdlURL=YYY&..."); 
> I get a one way SOAP message, do some work with it and send a response back
> to the callback address specified.
> 
> In principle this works perfect. 
> But sending requests with a short interval, I would say less than 5 seconds
> between the requests, the messaging fails.
> Sending requests every > 5 seconds: no problem.
> Sending requests with time between them < 5 seconds: all except the first
> one fail.
> 
> I'm using camel 2.10.4 and for sending the requests SoapUI.
> 
> Unfortunately the console shows no errors. The only difference between a
> working and a not working try is the last DEBUG notification that is
> [default-workqueue-1] DEBUG o.a.c.c.cxf.CxfClientCallback -
> default-workqueue-1 calling handleResponse 
> for a working one and
> [default-workqueue-2] DEBUG o.a.c.c.cxf.CxfClientCallback -
> default-workqueue-2 calling handleException
> for a failing one.
> 
> Is this a bug or normal behaviour? Is there something to prevent this?
> 
> Best regards.
> 
> 
> 
> --
> View this message in context: http://camel.465427.n5.nabble.com/cxf-producer-needs-a-break-tp5730612.html
> Sent from the Camel - Users mailing list archive at Nabble.com.

-- 
Daniel Kulp
dkulp@apache.org - http://dankulp.com/blog
Talend Community Coder - http://coders.talend.com


Re: cxf producer needs a break?

Posted by Smith-John <mi...@gmail.com>.
Hi,

added the issue to the JIRA[1].

Regards.

[1]https://issues.apache.org/jira/browse/CAMEL-6295



--
View this message in context: http://camel.465427.n5.nabble.com/cxf-producer-needs-a-break-tp5730612p5731036.html
Sent from the Camel - Users mailing list archive at Nabble.com.

Re: cxf producer needs a break?

Posted by Smith-John <mi...@gmail.com>.
Yeah I know. But this doesn't fix the problem.



--
View this message in context: http://camel.465427.n5.nabble.com/cxf-producer-needs-a-break-tp5730612p5731067.html
Sent from the Camel - Users mailing list archive at Nabble.com.

Re: cxf producer needs a break?

Posted by Smith-John <mi...@gmail.com>.
@Willem:

Hi, 
I changed the route like you said. But this doesn't change anything
concerning the problem.

I created a Issue [1] and added everything needed to check the problem: the
Java class + wsdl to start the camel route & a SoapUI project for testing
it. 

[1] https://issues.apache.org/jira/browse/CAMEL-6295


@Paul:

There is no external service. I "call" the route respectively the web
service of the route via SoapUI and get the response back to SoapUI.





--
View this message in context: http://camel.465427.n5.nabble.com/cxf-producer-needs-a-break-tp5730612p5731368.html
Sent from the Camel - Users mailing list archive at Nabble.com.

Re: cxf producer needs a break?

Posted by Willem jiang <wi...@gmail.com>.
Hi , you need use that option on consumer and producer at the same time just like this  
from("cxf:XXX?wsdlURL=YYY&…&synchronous=true")....to(...)...to("cxf:${header[ReplyTo]}?wsdlURL=YYY&…&synchronous=true");

BTW, it could be great if you can submit a simple test case to the JIRA, then we can keep on digging the issue.  

--  
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 Monday, April 22, 2013 at 8:36 PM, Smith-John wrote:

> Just to check if I understand you right:
>  
> Do you mean, my route should look like
> from("cxf:XXX?wsdlURL=YYY&...")....to(...)...to("cxf:${header[ReplyTo]}?wsdlURL=YYY&...&synchronous=true");
> instead of
> from("cxf:XXX?wsdlURL=YYY&...")....to(...)...to("cxf:${header[ReplyTo]}?wsdlURL=YYY&...");  
> ?  
>  
> I tried this, but cxf producer nevertheless isn't capable to send a message
> every 2 seconds for example.
>  
> Regards.
>  
>  
>  
> --
> View this message in context: http://camel.465427.n5.nabble.com/cxf-producer-needs-a-break-tp5730612p5731249.html
> Sent from the Camel - Users mailing list archive at Nabble.com (http://Nabble.com).




Re: cxf producer needs a break?

Posted by Raul Kripalani <ra...@evosent.com>.
Are you sure the problem is on Camel's end? I've never seen such a
behaviour.

How long does the external service take to respond? Perhaps it cannot
handle concurrent requests? Or it responds badly?

What's the exception seen by Camel?

To aid investigation, I suggest you monitor de HTTP traffic using
Wireshark, tcpdump or a proxy.

Regards,
Raúl.
On 22 Apr 2013 13:37, "Smith-John" <mi...@gmail.com> wrote:

> Just to check if I understand you right:
>
> Do you mean, my route should look like
>
> from("cxf:XXX?wsdlURL=YYY&...")....to(...)...to("cxf:${header[ReplyTo]}?wsdlURL=YYY&...&synchronous=true");
> instead of
>
> from("cxf:XXX?wsdlURL=YYY&...")....to(...)...to("cxf:${header[ReplyTo]}?wsdlURL=YYY&...");
> ?
>
> I tried this, but cxf producer nevertheless isn't capable to send a message
> every 2 seconds for example.
>
> Regards.
>
>
>
> --
> View this message in context:
> http://camel.465427.n5.nabble.com/cxf-producer-needs-a-break-tp5730612p5731249.html
> Sent from the Camel - Users mailing list archive at Nabble.com.
>

Re: cxf producer needs a break?

Posted by Smith-John <mi...@gmail.com>.
Just to check if I understand you right:

Do you mean, my route should look like
from("cxf:XXX?wsdlURL=YYY&...")....to(...)...to("cxf:${header[ReplyTo]}?wsdlURL=YYY&...&synchronous=true");
instead of
from("cxf:XXX?wsdlURL=YYY&...")....to(...)...to("cxf:${header[ReplyTo]}?wsdlURL=YYY&..."); 
? 

I tried this, but cxf producer nevertheless isn't capable to send a message
every 2 seconds for example.

Regards.



--
View this message in context: http://camel.465427.n5.nabble.com/cxf-producer-needs-a-break-tp5730612p5731249.html
Sent from the Camel - Users mailing list archive at Nabble.com.

Re: cxf producer needs a break?

Posted by "Willem.Jiang" <wi...@gmail.com>.
camel-cxf is using the asyn invocation by default, if you add the
synchronous=true , it will use the synchronous invocation instead.

Willem




--
View this message in context: http://camel.465427.n5.nabble.com/cxf-producer-needs-a-break-tp5730612p5731050.html
Sent from the Camel - Users mailing list archive at Nabble.com.

Re: cxf producer needs a break?

Posted by Smith-John <mi...@gmail.com>.
I'm not sure if synchronous=false or true makes any difference in this route?
At any rate it doesn't fix my problem ;)

But I had an other idea: I'm not a http expert, but is it possible that
after sending a message via http to a certain port, this port is occupied
and needs to be released from http first before it is possible to send
another message to it?  

Regards.



--
View this message in context: http://camel.465427.n5.nabble.com/cxf-producer-needs-a-break-tp5730612p5730721.html
Sent from the Camel - Users mailing list archive at Nabble.com.

Re: cxf producer needs a break?

Posted by Willem jiang <wi...@gmail.com>.
It looks like a bug of camel-cxf component.
Can you submit a simple test case to the JIRA[1] so we can keep digging the issue.

BTW, you can disable the async invocation by setting the option "synchronous=false"

[1]http://issues.apache.org/jira/browse/CAMEL  

--  
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 Wednesday, April 10, 2013 at 6:58 AM, Smith-John wrote:

> Hi,
>  
> I have a strange (at least for me) issue with my route respectively the cxf
> component in it.
>  
> The route looks like
> from("cxf:XXX?wsdlURL=YYY&...")....to(...)...to("cxf:${header[ReplyTo]}?wsdlURL=YYY&...");  
> I get a one way SOAP message, do some work with it and send a response back
> to the callback address specified.
>  
> In principle this works perfect.  
> But sending requests with a short interval, I would say less than 5 seconds
> between the requests, the messaging fails.
> Sending requests every > 5 seconds: no problem.
> Sending requests with time between them < 5 seconds: all except the first
> one fail.
>  
> I'm using camel 2.10.4 and for sending the requests SoapUI.
>  
> Unfortunately the console shows no errors. The only difference between a
> working and a not working try is the last DEBUG notification that is
> [default-workqueue-1] DEBUG o.a.c.c.cxf.CxfClientCallback -
> default-workqueue-1 calling handleResponse  
> for a working one and
> [default-workqueue-2] DEBUG o.a.c.c.cxf.CxfClientCallback -
> default-workqueue-2 calling handleException
> for a failing one.
>  
> Is this a bug or normal behaviour? Is there something to prevent this?
>  
> Best regards.
>  
>  
>  
> --
> View this message in context: http://camel.465427.n5.nabble.com/cxf-producer-needs-a-break-tp5730612.html
> Sent from the Camel - Users mailing list archive at Nabble.com (http://Nabble.com).