Kbase P62088: How to list or kill all the running persitent procedures tha
Autor |
  Progress Software Corporation - Progress |
Acesso |
  Público |
Publicação |
  1/12/2004 |
|
Status: Unverified
GOAL:
How to list all the running persitent procedures that refer to a database?
GOAL:
How to kill / delete all the running persitent procedures that refer to a database?
FIX:
The following example kills all the running persistent procedures that refer to a given database:
RUN ListConnectProc.p ("dynsports").
MESSAGE RETURN-VALUE
VIEW-AS ALERT-BOX INFO BUTTONS OK.
/* ListConnectProc.p */
DEFINE INPUT PARAMETER ipcDbname AS CHARACTER NO-UNDO.
DEFINE VARIABLE hp AS HANDLE NO-UNDO. /* Procedure handle */
DEFINE VARIABLE cList AS CHARACTER NO-UNDO. /* List of Proc handle, beware 32k limit */
DEFINE VARIABLE hToDelete AS HANDLE NO-UNDO.
hp = SESSION:FIRST-PROCEDURE.
DO WHILE VALID-HANDLE(hp):
IF CAN-DO(hp:DB-REFERENCES,ipcDbname) THEN DO:
hToDelete = hp.
cList = cList + "," + hp:FILE-NAME.
END.
hp = hp:NEXT-SIBLING.
IF VALID-HANDLE(hToDelete) THEN DELETE PROCEDURE hToDelete.
END.
cList = SUBSTR(cList,2) NO-ERROR. /* remove first comma, NO-ERROR if list is empty */
RETURN cList. /* if you want to see the list */