cancel
Showing results for 
Search instead for 
Did you mean: 

HTTPS request error after upgrading from SQL Anywhere 12.0.1 to 16.0.0.

0 Kudos
3,728

There is web procedure:

create procedure dba.sp_authentication( 
  RequestXml xml,
  urlSpec long varchar,
  certificatekey long varchar ) 
url '!urlSpec' 
type 'HTTP:POST:application/xml' 
set 'HTTP(VERSION=1.1)' 
certificate '!certificatekey'

The login and password are variables in the URL, for example:

urlSpec='https://........com/eForms_0315/api/setfieldset?web_login=...&cin=...

Certificate:

X.509 Certificate
-----------------
Common Name:             Starfield Root Certificate Authority - G2
Country Code:            US
State/Province:          Arizona
Locality:                Scottsdale
Organization:            Starfield Technologies, Inc.
Issuer:                  Starfield Root Certificate Authority - G2
Serial Number:           0
Issued:                  Sep 1, 2009   3:00:00
Expires:                 Jan 2, 2038   2:59:59
Signature Algorithm:     RSA, SHA256
Key Type:                RSA
Key Size:                2048 bits
Basic Constraints:       Is a certificate authority, path length limit: 0
Key Usage:               Certificate Signing, CRL Signing

remote_idle_timeout = '0'.

If the request is executed in SQLAnywhere/12.0.1.4436, then there is no error.
If the request is executed in SQLAnywhere/16.0.0.2546, then the following error occurs:

The secure connection to the remote host failed: The connection was
closed from the other side
SQLCODE=-990, ODBC 3 State="HY000".

WEb log (-zoc) does not show the error and is completely identical for both builds:

[connid = 1, 01/22 14:30:08.113, RESPONSE]
HTTP/1.1 200 OK
Server: nginx/1.4.6 (Ubuntu)
Date: Mon, 22 Jan 2018 11:31:42 GMT
Content-Type: application/xml;charset=UTF-8
Content-Length: 0
Connection: close
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Set-Cookie: JSESSIONID=FC191F23F99DA29160C6F0CB39464029; Path=/eForms_0315; HttpOnly

[connid = 1, socket closed]

Any suggestions?

Accepted Solutions (1)

Accepted Solutions (1)

I assume that the error was due to the fact that the web-service returns an empty Body in the response.
Probably, this behavior is acceptable for SQLAnywhere/12.0.1.4436 and is unacceptable for SQLAnywhere/16.0.0.2546, that is, it triggers the exception (i.e. SQLCODE=-990).
ps I processed only the Status:

select * ... with(attribute long varchar,value long varchar) ...
select value ... where lower(attribute) = 'status'

and did not pay attention to the Body in the response.

Answers (0)