Skip to main content
Announcements
Introducing a new Enhanced File Management feature in Qlik Cloud! GET THE DETAILS!
cancel
Showing results for 
Search instead for 
Did you mean: 
lucasperez1
Contributor
Contributor

tESBConsumer gives an error when request message size is to big

Hi Community,
Perhaps one of you can help us out with this. 
I observed the following behaviour on talend job on TalendESB open studio 5.5.1r118616. 
We have a Talend job we published as webservice on the TalendESB runtime, here the simplified schema:
tESBProviderRequest   ---> tXMLMap  ---> tESBConsumer  ---> tXMLMap  ----> tESBProviderResponse
the first TXMLMAp produces a request message that is enriched with some db lookups and that we send to another webservice (tESBConsumer). 
The output of this TXMLMap has one element of type Document (payload), so the tESBConsumer has no message format defined (builtin).
When the produced request message has a size of more than about 4000 characters, the tESBConsumer component fails with the following trace:
Exception in component tESBConsumer_2
org.apache.cxf.interceptor.Fault: Connection reset
at org.apache.cxf.interceptor.LoggingInInterceptor.logInputStream(LoggingInInterceptor.java:216)
at org.apache.cxf.interceptor.LoggingInInterceptor.logging(LoggingInInterceptor.java:150)
at org.apache.cxf.interceptor.LoggingInInterceptor.handleMessage(LoggingInInterceptor.java:79)
at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:272)
at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:845)
at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponseInternal(HTTPConduit.java:1624)
at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:1513)
at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1318)
at org.apache.cxf.io.CacheAndWriteOutputStream.postClose(CacheAndWriteOutputStream.java:56)
at org.apache.cxf.io.CachedOutputStream.close(CachedOutputStream.java:223)
at org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:56)
....

When the  request message has less than 4000 characters, everything works fine. We think that the tESBConsumer has this limitation. Is there a way to configure the maximum size of the request message? 

If we take the produced request message produced by talend (logged message) and send it directly to the webservice (with soapui for example), the ws response correctly. There is no such size limitation on the target webservice.
Any idea or hint would be helpful as i am looking around for a "clean" solution for some time now.
Labels (5)
3 Replies
Anonymous
Not applicable

Hi,
Did you set "Connection Time out" and "Receive Time out" in Advanced Settings of tESBConsumer?
Best regards
Sabrina
lucasperez1
Contributor
Contributor
Author

Hi,
thank you for responding. I actually found out were the problem was.
TesbCosumer uses chunking of the request mesage when the message is bigger than 4000 chars. Our server did not support chunked message.
Adding the following configuration to the runtime corrected the issue:
add this line to the cfg files:
client.AllowChunking = false
in ...Runtime_ESBSE\container\etc
org.apache.cxf.http.conduits-common.cfg
Et
org.apache.cxf.http.conduits-abacus.cfg
In the TOS we could not find a way to make it work, as it is not possible to set client.AllowChunking = false in a esbconsumer.
there is a related issue in your bugtracker:

Thanks anyway
lucasperez1
Contributor
Contributor
Author

here the bugtracker link:
TESB-14169