Hi Ruwan,
 
With regards to my initial post, I have realised that our client was not
including setUseSeparateListener(true) as one of its Options properly.
This has now been included and, the client now truly uses separate
channel for request/response.
 
Having fixed that, we still have problems within the ESB. i.e:
 
The client sends request to ESB and receives back a 202 accepted
response. But, we also get a 'TransportUtils - Did not find
RequestResponseTransport cannot set response written' debug message (?).
 
The ESB receives the request from the client and forwards it to the
service. But, after a minute exactly, the ESB gets a 'ERROR_CODE =
00000, ERROR_MESSAGE = Connection timeout' log message.

So, when the service actually sends the response back to the ESB, the
ESB logs a message 'ERROR AxisEngine The endpoint reference (EPR) for
the Operation not found is http:...'

Below is the synapse.xml used:
 
<definitions xmlns="http://ws.apache.org/ns/synapse";>

        <log level="full"/>

        <sequence name="alt_endpoint">
                <send>
                        <endpoint>
                                <address
uri="http://localhost:8081/ws-wp82/services/WP82Service";
optimize="mtom">
                                        <enableAddressing
separateListener="true"/>
                                </address>
                        </endpoint>
                </send>
        </sequence>

        <in>
                <!-- establish which web service we are calling -->
                <switch source="get-property('To')">
                        <case regex=".*WP82Service.*">
                                <!-- add a SOAP header to preserve the
SOAP request's original 'To' -->
                                <header name="esb:orig-to"
value="http://192.168.16:8081/ws-wp82/services/WP82Service";
xmlns:prime="http://esb.qinetiq.com"/>

                                <sequence key="alt_endpoint"/>
                        </case>
                </switch>
                <drop/>
        </in>

        <out>
                <property name="enableMTOM" value="true" scope="axis2"/>
                <send/>
        </out>
</definitions >

Thanx for any pointers on this.

Regards,

Diego.

 
Assuming that you are using the asynchronous communication over http
using WS-Addressing in between client and ESB as well as ESB and web
service there should not be any timeouts, because the back channel of
the http request will be after the request being sent and the client/ESB
waits for the response over a different channel.

Is there any possibility of attaching the synapse configuration that you
are using? In which case I can have a look at the synapse.xml and find
any issues in the configuration.

You do not need to increase the socket.timeout if you are using separate
channel to receive the response.

Thanks,
Ruwan

 

        Hi Asanka,
        
        Thanks for the quick reply.
        
        I should have given more details on our client settings but, it
is
        currently configured to receive responses on a separate
transport
        channel (asynchronous) and it has WS-addressing enabled
(WS-addressing
        is enabled in our client, synapse ESB and web service). The
transports
        used from client to ESB to web service and back are all regular
http (no
        https). Also, there are no firewalls or anything like that along
the way
        as we are testing on a test-rig!)
        
        The reason we are looking for a configuration problem within the
ESB is
        simply because when the client calls the web service directly,
no
        HttpClient connection loss occurs after 60 secs (no matter how
long the
        response takes).
        
        Regards,
        
        Diego.
        

        > We are using a Synapse ESB (1.2) to mediate web service calls
to a web
        
        > service. In testing, we have an Axis2 client whose requests
are sent
        > to our Synapse ESB which, then forwards the request to the web
        > service. The web service itself can take a long time (10mins+)
to send
        
        > a response back. The problem we have is that the client's http
        > connection to the ESB is closed after 60 seconds and re-tries
to send
        > the request up to four times before giving up.
        >
        This is the default behavior of the Axis2 client side, which
uses
        HttpClient
        > If our client sends the request to the web service directly,
the
        > client happily waits 10mins+ for a response to come back.
        >
        Irrespective of the fact that this works or not, I would very
strongly
        suggest that waiting on a open socket for a synchronous reply
for 10
        minutes+ does not look like a good approach.. what you should
ideally
        use is WS-Addressing, and receive the reply on a new channel.
With
        http/s and real life situations, an http/s connection does not
live this
        long, and many intermediate nodes may disconnect the connection
during
        such a long period of inactvity

The information contained in this E-Mail and any subsequent 
correspondence is private and is intended solely for the intended 
recipient(s).  The information in this communication may be 
confidential and/or legally privileged.  Nothing in this e-mail is 
intended to conclude a contract on behalf of QinetiQ or make QinetiQ 
subject to any other legally binding commitments, unless the e-mail 
contains an express statement to the contrary or incorporates a formal Purchase 
Order.

For those other than the recipient any disclosure, copying, 
distribution, or any action taken or omitted to be taken in reliance 
on such information is prohibited and may be unlawful.

Emails and other electronic communication with QinetiQ may be 
monitored and recorded for business purposes including security, audit 
and archival purposes.  Any response to this email indicates consent 
to this.

Telephone calls to QinetiQ may be monitored or recorded for quality 
control, security and other business purposes.

QinetiQ Limited
Registered in England & Wales: Company Number:3796233
Registered office: 85 Buckingham Gate, London SW1E 6PD, United Kingdom
Trading address: Cody Technology Park, Cody Building, Ively Road, Farnborough, 
Hampshire, GU14 0LX, United Kingdom 
http://www.qinetiq.com/home/notices/legal.html

Reply via email to