Hello,
Let's say, we have a web client procedure which makes SOAP request. I mean procedures which are created with such statement:

CREATE PROCEDURE x() URL ... TYPE 'SOAP:DOC' ...
Is there any way to get (or log) the full SOAP message (Envelope XML element) which is generated by SQL Anywhere 11 or 12?

asked 06 Mar '12, 04:51

Arthoor's gravatar image

Arthoor
1.2k284662
accept rate: 0%

edited 06 Mar '12, 04:52


Under normal conditions, the WebClientLogging facility (-zoc) captures both the HTTP and SOAP protocols. This means that you would see the HTTP request and response headers as well as the content, in this case, the SOAP request envelope and the SOAP response envelope respectively. The WebClientLog is essentially a filter shimmed into the socket stream, such that data sent to the socket is also captured by the logging facility. It appears that the server has closed its socket receive-side (the client send-side) such that the client is unable to send its data. The logging facility has recorded that the client procedure has closed the socket, followed by the server (send-side) socket close. You should use an external proxy to debug this kind of problem. Note, that the client should be directing its request to a valid SOAP endpoint. As a side-note, rather than starting the server with -zoc it is possible to dynamically initiate WebClientLogging using a server option from dbisql, eg:

call sa_server_option('WebClientLogFile', 'c:\tmp\clientlog.txt');
permanent link

answered 06 Mar '12, 10:04

Viktor's gravatar image

Viktor
17113
accept rate: 66%

Connections were closed because we've been using wrong (expired) certificate. The problem has gone after we downloaded valid certificate from the server.

(13 Mar '12, 07:20) Arthoor
Replies hidden

Out of curiosity:

Has the logging been helpful in this circumstance, i.e. has it anyhow given a hint to the expiry date or the like?

(13 Mar '12, 07:55) Volker Barth

-zoc dbsrv12 option seems to be the answer, doesn't it?
But it does not write the full XML into log when this error occurs:

HTTP request failed. Status code '<NONE>'
SQLCODE=-983, ODBC 3 State="HY000"

The log only contains:

...
Connection: close
Content-Type: text/xml; charset=UTF-8
Content-Length: 2277
SOAPAction: "..."

[connid = 13, Error: socket closed] [connid = 13, socket closed] [connid = 13, Error: socket closed by peer]

Why is the full XML message not logged here?

permanent link

answered 06 Mar '12, 06:34

Arthoor's gravatar image

Arthoor
1.2k284662
accept rate: 0%

edited 06 Mar '12, 06:51

Probably because the connection was closed by the client, maybe even before a SOAP message was transferred to SQLA.

(06 Mar '12, 07:01) Martin
Your answer
toggle preview

Follow this question

By Email:

Once you sign in you will be able to subscribe for any updates here

By RSS:

Answers

Answers and Comments

Markdown Basics

  • *italic* or _italic_
  • **bold** or __bold__
  • link:[text](http://url.com/ "title")
  • image?![alt text](/path/img.jpg "title")
  • numbered list: 1. Foo 2. Bar
  • to add a line break simply add two spaces to where you would like the new line to be.
  • basic HTML tags are also supported

Question tags:

×415
×36
×18

question asked: 06 Mar '12, 04:51

question was seen: 1,583 times

last updated: 13 Mar '12, 07:55