How to make SoapHttpClientProtocol instance send each request on different TCP connection?

M

Morgan Cheng

There are multiple clients to invoke a web service deployed in a
cluster of server. Each client is using SoapHttpClientProtocol
instance. I found that if the invocation is continuous,
SoapHttpClientProtocol doesn't close TCP connection. It just reuse one
single TCP connection to call target web service.

Now, there are BigIP added between client and server to do load
balancing. If the TCP connection doesn't close, LB is meaningless. So,
how to make SoapHttpClientProtocol init a new TCP connection for each
service request?

Thanks,
 
J

John Saunders [MVP]

Morgan Cheng said:
There are multiple clients to invoke a web service deployed in a
cluster of server. Each client is using SoapHttpClientProtocol
instance. I found that if the invocation is continuous,
SoapHttpClientProtocol doesn't close TCP connection. It just reuse one
single TCP connection to call target web service.

Now, there are BigIP added between client and server to do load
balancing. If the TCP connection doesn't close, LB is meaningless.


Is load balancing truly meaningless in this case, or does it simply mean
something a little different from what you expect? Does the BigIP not
distribute connections across the nodes? That is, if you had five servers
and five clients, wouldn't it tend to distribute them one per server?
Wouldn't the next five clients also be distributed?

I haven't used that particular device, so I don't know.
 
M

Morgan Cheng

Is load balancing truly meaningless in this case, or does it simply mean
something a little different from what you expect? Does the BigIP not
distribute connections across the nodes? That is, if you had five servers
and five clients, wouldn't it tend to distribute them one per server?
Wouldn't the next five clients also be distributed?

In our config, BigIP will distribute connection evenly, but only
distribute at the time TCP connection is generated.
Since the requests are continuous, SoapHttpClientProtocol will keep
connection alive and reuse single TCP connection to backend web
service. As a result, one TCP connection is created and doesn't
release. So, BigIP distribution works only once for each client.
That's not what I expect.
I want SoapHttpClientProtocol create one TCP connection, send Soap on
HTTP message in that TCP connection, and then close it. For the next
request, just repeat the three steps.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,982
Messages
2,570,185
Members
46,736
Latest member
AdolphBig6

Latest Threads

Top