|
>> The client program exit handler does a sign out.
>> - What happens if a ACMS task is active. Do I cancel the task first?
The answer to this question depends on whether the task is a blocking
task or a nonblocking task. If you have a nonblocking task it would
not be a bad idea to issue an acmsdi_cancel call before issuing the
acmsdi_sign_out. This is especially true if your client application
is expecting an ACMS exchange step as the next message from the back-
end. If it's a blocking task, there is nothing you can do while the
task is active except to wait until you get some kind of response from
the server. Then, assuming your client application is capable of
issuing an acmsdi_sign_out, you can do so.
>> - What action takes the builtin acmsdi exit handler after a
>> successful/failed sign out?
Actually the ACMSDI client software acts about the same after a
failed sign-out as it does after a successful sign-out. The submitter
structures are deleted and the user is considered no-longer signed in.
One difference is that any error message generated because of a failed
sign-out is returned to the client application. Usually the only
reason a sign-out might fail is because the server already considers
the client to be signed-out (for whatever reason).
>> 2)decnet link breaks
>> -What happens if the network link between desktop client and desktop
>> server breaks?
>> -Does the acmsdi server know that the client is no longer active?
In most cases, yes. However, we have found some cases, depending on
the transport being used and the state of the task, where the server
simply waits and will continue waiting indefinitely. In that case
you may have to issue an ACMS/CANCEL USER to get rid of the user in
both ACMS and the ACMSDI server. Sometimes establishing a new link
via acmsdi_sign_in will cause the broken link to be cleaned up.
>> -Does the acmsdi server submit ACMS CANCEL/USER ?
The ACMSDI server will cause the ACMS user to be canceled when it
discovers a broken link.
>> -What happens with an active ACMS task? Will it be canceled?
The ACMSDI server will cause an active ACMS task to be cancelled
when it discovers a broken link.
>> Is there a timeout parameter?
Only for the Macintosh client which uses a different API.
>> -How can I get rid of open client and server sockets?
If the ACMSDI server does not clean up the connection for you (and
it usually can do this) then ACMS/CANCEL USER can cause this to happen.
If that doesn't work, you may need to use services provided by the
transport (i.e. TCP/IP, DECnet, etc.).
|