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?
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');
answered 06 Mar '12, 10:04
-zoc dbsrv12 option seems to be the answer, doesn't it?
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: "..."
Why is the full XML message not logged here?