(Migrated) Using SOAP outgoing connections with WSDL

(This message has been automatically imported from the retired mailing list)

Hi all,

I’m having issues getting Zato to recognize my SOAP outgoing connection and
I’m not sure how to fix it.

I configured an outgoing connection through the admin UI as described @
https://zato.io/docs/web-admin/outgoing/soap.html and
https://zato.io/docs/progguide/examples/soap.html. I am using Suds
serialization.

However, looking at the Zato logs, I just get this message over and over:

ConnectionQueue:22 - 0/20 Suds SOAP clients obtained to http://www.webservicex.net/CurrencyConvertor.asmx (CurrencyConverter)
after 0:00:19.558396 (cap: 30.0s)

This is output over and over again, more than several times per second, and
I can’t find it’s meaning anywhere, nor can I stop it. Deleting the SOAP
connection has not made these messages stop. If I try to run the service
using this connection, I get this error:

2015-03-25 11:09:51,982 - ERROR - 26450:Dummy-124092 -
zato.server.connection.queue:22 - No free connections to CurrencyConverter

2015-03-25 11:09:51,985 - WARNING - 26450:Dummy-124092 -
zato.server.service:22 - Traceback (most recent call last):

File “/opt/zato/2.0.1/zato-server/src/zato/server/service/init.py”,
line 405, in update_handle

self._invoke(service, channel)

File “/opt/zato/2.0.1/zato-server/src/zato/server/service/init.py”,
line 349, in _invoke

service.handle()

File
"/opt/zato/env/server2/work/hot-deploy/current/gg_satori_service.py", line
25, in handle

with self.outgoing.soap.get('CurrencyConverter').conn.client() as

client:

File “/opt/zato/2.0.1/zato-server/src/zato/server/connection/queue.py”,
line 43, in enter

raise Exception(msg)

Exception: No free connections to CurrencyConverter

Can anyone explain what I’m doing wrong?

Dariusz,

Thanks for the quick reply, unfortunately that did not help. I tried
several other services (on different hosts) with a Pool Size of 2, and got
the same message, repeating ‘0/2 Suds SOAP clients obtained’. Using SoapUI
from the same network hits these fine. This is what my outgoing connection
settings look like:

Name: CurrencyConverter
Active: yes
Host: http://www.webservicex.net/CurrencyConvertor.asmx
URL: /
Data format: XML
SOAP action:
SOAP version: 1.1
Ping method: HEAD
Pool size: 2
Timeout: 10
Serialization type: Suds
Security Definition: No security definition

Setting host to www.webservicex.net and URL path to /CurrencyConvertor.asmx
did not change anything.

On Wed, Mar 25, 2015 at 11:36 AM, Dariusz Suchojad dsuch@zato.io wrote:

On 25/03/15 16:10, Rostislav Tsiomenko wrote:

ConnectionQueue:22 - 0/20 Suds SOAP clients obtained to
http://www.webservicex.net/CurrencyConvertor.asmx
http://www.webservicex.net/CurrencyConvertor.asmx`
(CurrencyConverter) after 0:00:19.558396 (cap: 30.0s)

Can you change to pool size from 20 to 2 and try again?

My bet is that http://www.webservicex.net/ is rate-limiting your
requests because you attempt to connect 20 clients from each server.


Dariusz Suchojad

https://zato.io
ESB, SOA, REST, APIs and Cloud Integrations in Python

Dariusz,

Changing the host/URL params to that fixed my problem. I thought I tried
doing it that way, but apparently I didn’t. Thanks!

On Wed, Mar 25, 2015 at 11:56 AM, Dariusz Suchojad dsuch@zato.io wrote:

On 25/03/15 16:50, Rostislav Tsiomenko wrote:

Host: http://www.webservicex.net/CurrencyConvertor.asmx
URL: /

These two need to be a bit different:

Host: http://www.webservicex.net
URL path: /CurrencyConvertor.asmx?WSDL

However, please note that 20 clients * 2 servers = 40 simultaneous
requests to www.webservicex.net and I really wouldn’t be surprised if it
were capped to 2-3 requests per source IP.

1 Like

On 25/03/15 16:10, Rostislav Tsiomenko wrote:

ConnectionQueue:22 - 0/20 Suds SOAP clients obtained to
http://www.webservicex.net/CurrencyConvertor.asmx
http://www.webservicex.net/CurrencyConvertor.asmx`
(CurrencyConverter) after 0:00:19.558396 (cap: 30.0s)

Can you change to pool size from 20 to 2 and try again?

My bet is that http://www.webservicex.net/ is rate-limiting your
requests because you attempt to connect 20 clients from each server.