project BLF > class TDaemonUtility > method GetDaemonProcessInfo
Description
Method to be used to get information on the daemon processes for a certain named daemon, or all daemons.
Parameters
| icDaemonName | input | character | Name of the daemon. This is mandatory. |
| ocMessage | output | character | |
| ocProcessInfo | output | character | String which contains all process ids, with the status indication. |
| oiReturnStatus | output | integer | Return status of the method. |
Internal usage
BLF
program code (program1/tdaemonutility.p)
assign oiReturnStatus = -98.
<Q-1 run DaemonInfo (all) (Read) (NoCache)
(input ?, (DaemonId)
input icDaemonName, (DaemonName)
input ?, (DaemonStatus)
input ?, (DaemonStatusDiffersFrom)
output dataset tqDaemonInfo) in BBaseDaemon >
<M-13 run GetAppserverConnection
(input icDaemonName (icDaemonName),
input '' (icDaemonAppserverURL),
output vhAppserver (ohDaemonAppserver),
output vcMessage (ocMessage),
output viFcReturnSuper (oiReturnStatus)) in TDaemonUtility>
if viFcReturnSuper < 0
then do:
assign oiReturnStatus = viFcReturnSuper
ocMessage = vcMessage.
return.
end.
if valid-handle(vhAppserver) and vhAppserver:connected()
then do:
/* ================================================================= */
/* run daemon on appserver */
/* ================================================================= */
run program/tdaemonutility.p persistent set vhFcComponent on vhAppserver (input viSessionID).
end.
for each tqDaemonInfo :
do viProcessCount = 1 to num-entries(tqDaemonInfo.tcDaemonProcessIDs):
viProcessID = 0.
if num-entries (entry(viProcessCount,tqDaemonInfo.tcDaemonProcessIDs),":") = 2
then assign vcProcessHostname = entry (1,entry(viProcessCount,tqDaemonInfo.tcDaemonProcessIDs),":")
viProcessID = integer(entry(2,entry(viProcessCount,tqDaemonInfo.tcDaemonProcessIDs),":")) no-error.
else assign viProcessID = integer(entry(viProcessCount,tqDaemonInfo.tcDaemonProcessIDs)) no-error.
if valid-handle(vhAppserver) and vhAppserver:connected()
then do:
run ProcessIsValidInternal in vhFcComponent
(input vcProcessHostname,
input viProcessID,
output vlValid,
output viFcReturnSuper).
end.
else do:
<M-16 run ProcessIsValidInternal
(input vcProcessHostname (icProcessHostname),
input viProcessID (iiProcessNR),
output vlValid (olValid),
output viFcReturnSuper (oiReturnStatus)) in TDaemonUtility>
end.
if viFcReturnSuper < 0
then do :
assign ocMessage = vcMessage
oiReturnStatus = viFcReturnSuper.
return.
end.
assign ocProcessInfo = ocProcessInfo
+ (if viProcessCount > 1 then ", " else "")
+ string(viProcessId) + ": "
+ (if vlValid = yes
then #T-8'OK':255(5156)T-8#
else if vlValid = no
then #T-9'Not OK':255(5157)T-9#
else #T-51'Unknown':20(425)T-51#).
end.
end.
if valid-handle(vhAppserver) and vhAppserver:connected()
then do:
run gipr_DeleteProcedure in vhFcComponent.
delete procedure vhFcComponent.
vhAppserver:disconnect().
delete object vhAppserver.
end.
if oiReturnStatus = -98
then assign oiReturnStatus = 0.