Robert Cemper · Aug 17, 2017 go to post

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.

Robert Cemper · Aug 17, 2017 go to post

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.

Robert Cemper · Aug 15, 2017 go to post

Tom.

In a similar situation I changed only one of the Serial classes to %RegisteredObject.
Compilation was fine:
Next I changed it back to %SerialObject.
Complation was fine again. And remained fine.

Robert Cemper · Aug 14, 2017 go to post

Pls. don't forget to mark your question as "answered" on Developer Community,
please click the checkmark alongside the answer you (as author of the question) accept

Robert Cemper · Aug 14, 2017 go to post

Pls. don't forget to mark your question as "answered" on Developer Community,
please click the checkmark alongside the answer you (as author of the question) accept

Robert Cemper · Aug 14, 2017 go to post

Pls. don't forget to mark your question as "answered" on Developer Community,
please click the checkmark alongside the answer you (as author of the question) accept

Robert Cemper · Aug 14, 2017 go to post

Pls. don't forget to mark your question as "answered" on Developer Community,
please click the checkmark alongside the answer you (as author of the question) accept

Robert Cemper · Aug 14, 2017 go to post

Pls. don't forget to mark your question as "answered" on Developer Community,
please click the checkmark alongside the answer you (as author of the question) accept

Robert Cemper · Aug 14, 2017 go to post

Pls. don't forget to mark your question as "answered" on Developer Community,
please click the checkmark alongside the answer you (as author of the question) accept

Robert Cemper · Aug 14, 2017 go to post

Pls. don't forget to mark your question as "answered" on Developer Community,
please click the checkmark alongside the answer you (as author of the question) accept

Robert Cemper · Aug 14, 2017 go to post

Pls. don't forget to mark your question as "answered" on Developer Community,
please click the checkmark alongside the answer you (as author of the question) accept

Robert Cemper · Aug 14, 2017 go to post

Pls. don't forget to mark your question as "answered" on Developer Community,
please click the checkmark alongside the answer you (as author of the question) accept

Robert Cemper · Aug 14, 2017 go to post

Pls. don't forget to mark your question as "answered" on Developer Community,
please click the checkmark alongside the answer you (as author of the question) accept

Robert Cemper · Aug 14, 2017 go to post

Pls. don't forget to mark your question as "answered" on Developer Community,
please click the checkmark alongside the answer you (as author of the question) accept

Robert Cemper · Aug 14, 2017 go to post

Pls. don't forget to mark your question as "answered" on Developer Community,
please click the checkmark alongside the answer you (as author of the question) accept

Robert Cemper · Aug 14, 2017 go to post

Pls. don't forget to mark your question as "answered" on Developer Community,
please click the checkmark alongside the answer you (as author of the question) accept

Robert Cemper · Aug 14, 2017 go to post

Pls. don't forget to mark your question as "answered" on Developer Community,
please click the checkmark alongside the answer you (as author of the question) accept

Robert Cemper · Aug 14, 2017 go to post

Pls. don't forget to mark your question as "answered" on Developer Community,
please click the checkmark alongside the answer you (as author of the question) accept

Robert Cemper · Aug 14, 2017 go to post

Pls. don't forget to mark your question as "answered" on Developer Community,
please click the checkmark alongside the answer you (as author of the question) accept

Robert Cemper · Aug 14, 2017 go to post

Pls. don't forget to mark your question as "answered" on Developer Community,
please click the checkmark alongside the answer you (as author of the question) accept

Robert Cemper · Aug 14, 2017 go to post

Pls. don't forget to mark your question as "answered" on Developer Community,
please click the checkmark alongside the answer you (as author of the question) accept

Robert Cemper · Aug 14, 2017 go to post

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
Robert Cemper · Aug 12, 2017 go to post

To mark your question as "answered" on Developer Community,
please click the checkmark alongside the answer you (as author of the question) accept.

Robert Cemper · Aug 12, 2017 go to post

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…