Similar using  Class %System.License. ...  you may reduce the number of allowed connections by USER
This might  be interesting in SaaS situation.

classmethod SetUserLimit(MaxLU As %Integer) as %Integer

$SYSTEM.License.SetUserLimit establishes the maximum number of license units that this Cache instance will consume. This permits a system manager to prevent a Cache instance from consuming all the license units in a MultiServer key shared among multiple Cache instances. The Method returns the former maximum value. In the absence of a call to $SYSTEM.License.SetUserLimit(max) a Cache instance may consume all available license units. 

Requires access to the %Admin Manage resource.

Using  Class %System.License. ...  you may reduce the number of allowed connections by instance

• classmethod SetConnectionLimit(MaxCon As %Integer) as %Integer

$SYSTEM.License.SetConnectionLimit establishes the maximum number of connections permitted per user on this instance. This enables a system administrator to prevent a user from making so many connections to a Cache instance that they consume all available license units. Calling $SYSTEM.License.SetConnectionLimit($SYSTEM.License.MaxConnections()) permits a user to make the maximum connections permitted but prevent transitioning to the license unit per connection state, insuring the user will consume no more than one license unit. A zero argument removes the limit. The failure to obtain a license will be indicated in the normal way. For example, a call to $system.License.Login() will return zero (0) while a failure to log in to a new terminal connection will receive a error. However, these license failures will not be reported in the console log. The method returns the former maximum value. 

The limit applies only to the local instance. If a Cache MultiServer license is shared among several instances it is still possible to exceed $SYSTEM.License.MaxConnections() over all instances. This can be avoided by setting the limit low enough on each instance that the combined connections to all instances will be unlikely to exceed $SYSTEM.License.MaxConnections(). 

$SYSTEM.License.SetConnectionLimit reqires access to the %Admin Manage resource. It is suggested that customers call this API from SYSTEM^%ZSTART.

not a problem of version

A subquery using ORDER requires a TOP clause

Change the query to

SELECT *
FROM
  (SELECT TOP ALL
          sslog.userRowid,
          sslog.CreateDate,
          sslog.CreateTime,
          Sslog.SSUSR,
          sslog.Terminal,
          ssuser.Initials,
          ssuser.USName
   FROM SUser_Log sslog
   LEFT JOIN DHC_SSuser ssuser ON (Sslog.SSUSR = ssuser.userRowid
                                   OR sslog.ssusr = ssuser.Initials
                                   OR sslog.ssusr = ssuser.USName)
   WHERE ssuser.USName ['admin'
   ORDER BY sslog.CreateDate DESC)
WHERE %VID> 5

You have 2 Options for LOCK

1) LOCK lockargument  
either you succeed or you hang until you get success or forever

2) LOCK lockargument:timeout 

timeout releases your attempt after the defined time
and signal by system variable $TEST if you were successful or not

so your code may have this structure

LOCK  +(^a,^b,^c):0
If $TEST  {
    write "successful Locked",! 
}  ELSE  { write "attempt to Lock failed",! }

more on LOCK: http://docs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls?KEY=...

if  failing you may want to identify your competitor using  ^$LOCK

http://docs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls?KEY=...

I'd try to have just 1 query with 3 parameters and switch them on/off as you need

SELECT ID FROM Table WHERE (Field1 %STARTSWITH :par1 
AND ((0=:sw2) OR (
Field2 = :par2)) 
AND ((0=:sw3) OR (
Field3 = :par3))

Now using only par1  means (par1=whatever, sw2=0,sw3=0, par2="",par3="") so the 2nd + 3rd condition is switched off and par2,par3 ignored

2nd case: (par1=whatever,  par2=something, sw2=1,sw3=1, par3="") so only 3rd condition is switched off  par 3 ignored

3rd case: (par1=whatever,  par2=something, par3=other, sw2=1,sw3=1) all conditions active

you see this could be extended easily

before launching your request in your check your %Net.HttpRequest object
property Https is obviously set.

property SSLConfiguration has to be

The name of the activated TLS/SSL configuration to use for https requests.

if the request fails in execution
property SSLError tells you what went wrong

If request uses an SSL connection and a SSL handshake error has occurred, then SSLError contains text describing the SSL error.

more on  %Net.HttpRequest here
http://docs.intersystems.com/latest/csp/documatic/%25CSP.Documatic.cls?P...