Recently when setting up a new user for an Account, a user nominated a subroutine as the RESTART Code and Command. The system hung (or to be more precise, recursively called the RESTART Code and Command ad infinitum). This prompted an investigation into the exact sequence of events at logon as an account and as a user. The Logic Flow could be represented by the following Pseudo Code
If Logging in as Account
If LOGON verb is specified in Account Record in System File then
Run LOGON Verb
else
If a Voc entry exists with same name as @ACCOUNT then
Run @ACCOUNT Voc Entry
else
If a Voc entry exists called LOGON then
Run LOGON Voc Entry
end
end
else
If Logging in as User
If LOGON verb is specified in User Record in System File then
Run LOGON Verb
else
If a Voc entry exists with same name as @USERNAME then
Run @USERNAME Voc Entry
else
If a Voc entry exists with same name as @ACCOUNT then
Run @ACCOUNT Voc Entry
else
If a Voc entry exists called LOGON then
Run LOGON Voc Entry
end
end
end
end
If a Restart Code and Command is specified in User/Account record then
Loop
Run Restart Code and Command
Repeat
else
Loop
Begin Case
Case Default System Mode = "M"
If Default System Menu (DSM) then Call DSM else Call Main
Case Default System Mode = "S"
Call Interactive SQL Window
Case 1
Call TCL
End Case
Repeat
end
(Volume 2, Issue 10, Page 5)