You must have ACLSPECIAL
access rights (LIBNAME option ACLSPECIAL=YES) to run privileged OPER
commands. With privileged OPER commands, you must first set yourself
as the proxy operator by submitting the following command:
SET MODE OPER;
The SET MODE OPER command
sets you as the operator of the user proxy that you are currently
set to. There can be only one operator for a user proxy at any time.
If you submit the SET MODE OPER command when someone is already established
as operator of the user proxy, you get the following message:
ERROR: Operator mode owned by another connection.
Cannot grant this request.
After you have successfully
set yourself as the operator, the following commands can be submitted:
The OPER CANCEL command
cancels and exits the user proxy. If the /DUMP option is specified
for a non-locking user proxy, the proxy exits with an abort() call,
which produces a core file. If you are the operator of a locking user
proxy, the /DUMP option is ignored. The OPER CANCEL command initiates
a hard exit of the user proxy. Hard exits might leave tables opened
for UPDATE access, which is an inconsistent and unusable state. In
this case, you can submit the PROC DATASETS REPAIR command to restore
the tables to a usable state.
The OPER DISCONNECT
command drops the control socket from the user proxy to the client.
This action causes the user proxy to terminate the next time it tries
to communicate with the client. This termination initiates a hard
exit of the user proxy. Hard exits might leave tables opened for UPDATE
access, which is an inconsistent and unusable state. In this case,
you can submit the PROC DATASETS REPAIR command to restore the tables
to a usable state.
The OPER DISCONNECT
command differs from the OPER CANCEL command. When the OPER DISCONNECT
command is submitted, the user proxy continues until it detects that
the control socket connection has been dropped. As a result, the OPER
DISCONNECT command has the potential to complete. However, when the
control socket disconnect is detected by the user proxy varies, with
different results.
The OPER INTERRUPT
command sets a soft interrupt flag in any open tables that belong
to the user proxy. During certain long-running operations, such as
large table sorts, table scans with a WHERE clause, or index creations,
the user proxy periodically checks for an interrupt flag in all of
the open tables that are involved in the operation. If an interrupt
flag is detected, the user proxy terminates the operation and any
previously opened tables are closed.
Unlike the OPER CANCEL
command or the OPER DISCONNECT command, the OPER INTERRUPT command
initiates a soft exit of the user proxy. The user receives a message
in the SAS log that states that the job has been interrupted. If the
job did not finish, then the results might be incomplete. However,
the user LIBNAME will be intact, and the user proxy will still be
viable. Whether a job will be interrupted cannot be determined; it
depends on the job that is currently running. To determine if a job
can be interrupted, submit a SHOWLIBNAME libref / DATA=_ALL_ command
before you submit the OPER INTERRUPT command to see all of the open
tables. You can also submit the SHOWLIBNAME libref/ DATA=_ALL_ command
after you submit the OPER INTERRUPT command, to see whether all of
the open tables were closed. If the tables are still open after the
OPER INTERRUPT command has been submitted, you can wait and check
again later. If the tables need to be closed immediately, you can
use the OPER CANCEL command to cancel the user proxy.