Acquiring a client specification

Build 1501 on 14/Nov/2017  This topic last edited on: 5/Aug/2014, at 13:56

How does the system know which client specification to use?

Answer: a user has to acquire a clientSpec object to be able to do any of the related operations:  get object to a local file, check-out, check-in, etc.

"Acquire a clientSpec"  means telling the system that a specific client specification is going to be used for all subsequent operations, and associates the clientSpec object with the user and the client computer.

A client specification can be acquired only by one user on one client computer at a time. When a client specification is acquired it is associated with the login that acquired it. When the user logs-out – or when the login expires - the clientSpec is released – i.e. marked as free to be acquired by someone else.

Note that it is possible that a user logs-in multiple times from the same client computer. In this case each login can acquire the same client specification, and the client specification will be released with the last log-out – or when the last login expires. See also Persistent check-out.

When a client specification is acquired by a user, the client computer IP address and associated logins are stored in the clientSpec object attributes: inUseUserRef, inUseIP and inUseLogins. For example:

<clientSpec name="MiMoPC" host="MIMO-PC" >

  . . .

  <inUseUserRef idref="obj1602" />

  <inUseIP>192.168.1.43</inUseIP>

  <inUseLogins>

    <item>1388606d-5655-4e48-889f-0030f9dc1ad4</item>

  </inUseLogins>

</clientSpec>

This is an example of the exported XML of a clientSpec object that has been acquired by the user with id 1602 from a client computer with IP 192.168.1.42 and a single login identified by the long string of hex numbers (that is the GUID of the login).

Note that inUseLogin is a list since there can be more than one login acquiring the same clientSpec .

Attempts to acquire a client specification that has already been acquired by a different user or on a different client computer fail with an error 1207:

The client specification '<NAME>' (id: <ID>) is already in use by <USER> connected from <ADDRESS>.

The currently acquired client specification can be seen using the cmd4 command ‘who’:

> who

Connected to 'http://localhost/GN4/Int/AdminSrv.asmx' as Michele Mottini [id: 1602]. Login

session '1388606d-5655-4e48-889f-0030f9dc1ad4'

Client specification 'MIMO-PC' [id: 2825]

If no client specification has been acquired:

> who

Connected to 'http://localhost/GN4/Int/AdminSrv.asmx' as Michele Mottini [id: 1602]. Login

session 'df81620c-aa3c-4dc8-98dc-269dca8e68e5'

No current client specification