Description
Initialize the daemon.
In this method everything is prepared for the proper functioning of the daemon.
Parameters
| oiReturnStatus | output | integer | Return status of the method. |
Internal usage
unused
program code (program/breportdaemonprocessor.p)
<ANCESTOR-CODE>
<Q-1 run ReportDaemonData (all) (Read) (NoCache)
(input 0, (DaemonID)
output dataset tqReportDaemonData) in BReportDaemon >
for each tqReportDaemonData:
if vlOneRecord = no
then assign vcSocketGlobalSessionID = tqReportDaemonData.tcReportDaemonGlobSessionId
vcSocketHost = tqReportDaemonData.tcReportDaemonSocketServer
viSocketPort = tqReportDaemonData.tiReportDaemonSocketPort
vlOneRecord = yes.
else assign vlOneRecord = ?.
end.
if vlOneRecord <> yes
then do:
<M-2 run SetMessage
(input 'Error in daemon configuration.' (icMessage),
input '' (icArguments),
input '' (icFieldName),
input '' (icFieldValue),
input 'D' (icType),
input 3 (iiSeverity),
input '' (icRowid),
input 'BLF-310605':U (icFcMsgNumber),
input '' (icFcExplanation),
input '' (icFcIdentification),
input '' (icFcContext),
output viFcReturnSuper (oiReturnStatus)) in BReportDaemonProcessor>
assign oiReturnStatus = -5
vlReportServiceUnavailable = true.
return.
end.
/* =============================== */
/* Say started to the .NET service */
/* =============================== */
assign vlStartingReportDaemon = yes.
create socket vhtsocket no-error.
if error-status:error or
error-status:num-messages > 0
then do:
assign vcFcMaskList = "".
do viFcCount1 = 1 to error-status:num-messages:
if viFcCount1 > 1
then assign vcFcMaskList = vcFcMaskList + chr(2).
assign vcFcMaskList = vcFcMaskList + error-status:get-message(viFcCount1).
end.
<M-7 run SetMessage
(input trim(#T-7'Failed to create socket object.':255(998716605)T-7#) (icMessage),
input '' (icArguments),
input '' (icFieldName),
input '' (icFieldValue),
input 'D' (icType),
input 3 (iiSeverity),
input '' (icRowid),
input 'BLF-61249':U (icFcMsgNumber),
input '' (icFcExplanation),
input '' (icFcIdentification),
input '' (icFcContext),
output viFcReturnSuper (oiReturnStatus)) in BReportDaemonProcessor>
if vcFcMaskList <> ""
then do viFcCount1 = 1 to num-entries(vcFcMaskList, chr(2)):
<M-8 run SetMessage
(input entry(viFcCount1, vcFcMaskList, chr(2)) (icMessage),
input '' (icArguments),
input '' (icFieldName),
input '' (icFieldValue),
input 'D' (icType),
input 3 (iiSeverity),
input '' (icRowid),
input 'BLF-195428':U (icFcMsgNumber),
input '' (icFcExplanation),
input '' (icFcIdentification),
input '' (icFcContext),
output viFcReturnSuper (oiReturnStatus)) in BReportDaemonProcessor>
end.
assign oiReturnStatus = -3
vlReportServiceUnavailable = true.
return.
end.
assign vlFcOk = vhtsocket:set-read-response-procedure("ReportStartedResponse") no-error.
if not vlFcOk or
error-status:error or
error-status:num-messages > 0
then do:
assign vcFcMaskList = "".
do viFcCount1 = 1 to error-status:num-messages:
if viFcCount1 > 1
then assign vcFcMaskList = vcFcMaskList + chr(2).
assign vcFcMaskList = vcFcMaskList + error-status:get-message(viFcCount1).
end.
<M-9 run SetMessage
(input trim(#T-11'Failed to set read response procedure on socket object.':255(998716606)T-11#) (icMessage),
input '' (icArguments),
input '' (icFieldName),
input '' (icFieldValue),
input 'D' (icType),
input 3 (iiSeverity),
input '' (icRowid),
input 'BLF-765944':U (icFcMsgNumber),
input '' (icFcExplanation),
input '' (icFcIdentification),
input '' (icFcContext),
output viFcReturnSuper (oiReturnStatus)) in BReportDaemonProcessor>
if vcFcMaskList <> ""
then do viFcCount1 = 1 to num-entries(vcFcMaskList, chr(2)):
<M-10 run SetMessage
(input entry(viFcCount1, vcFcMaskList, chr(2)) (icMessage),
input '' (icArguments),
input '' (icFieldName),
input '' (icFieldValue),
input 'D' (icType),
input 3 (iiSeverity),
input '' (icRowid),
input 'BLF-780524':U (icFcMsgNumber),
input '' (icFcExplanation),
input '' (icFcIdentification),
input '' (icFcContext),
output viFcReturnSuper (oiReturnStatus)) in BReportDaemonProcessor>
end.
assign oiReturnStatus = -3
vlReportServiceUnavailable = true.
return.
end.
assign vlFcOk = vhtsocket:connect("-H " + vcSocketHost + " -S " + string(viSocketPort)) no-error.
if not vlFcOk or
error-status:error or
error-status:num-messages > 0
then do:
assign vcFcMaskList = "".
do viFcCount1 = 1 to error-status:num-messages:
if viFcCount1 > 1
then assign vcFcMaskList = vcFcMaskList + chr(2).
assign vcFcMaskList = vcFcMaskList + error-status:get-message(viFcCount1).
end.
<M-3 run SetMessage
(input trim(#T-5'The system failed to connect to report server $1 using port $2.':255(998716607)T-5#) (icMessage),
input vcSocketHost + chr(2) + string(viSocketPort) (icArguments),
input '' (icFieldName),
input '' (icFieldValue),
input 'D' (icType),
input 3 (iiSeverity),
input '' (icRowid),
input 'BLF-935919':U (icFcMsgNumber),
input '' (icFcExplanation),
input '' (icFcIdentification),
input '' (icFcContext),
output viFcReturnSuper (oiReturnStatus)) in BReportDaemonProcessor>
if vcFcMaskList <> ""
then do viFcCount1 = 1 to num-entries(vcFcMaskList, chr(2)):
<M-4 run SetMessage
(input entry(viFcCount1, vcFcMaskList, chr(2)) (icMessage),
input '' (icArguments),
input '' (icFieldName),
input '' (icFieldValue),
input 'S' (icType),
input 3 (iiSeverity),
input '' (icRowid),
input 'BLF-290039':U (icFcMsgNumber),
input '' (icFcExplanation),
input '' (icFcIdentification),
input '' (icFcContext),
output viFcReturnSuper (oiReturnStatus)) in BReportDaemonProcessor>
end.
assign oiReturnStatus = -3
vlReportServiceUnavailable = true.
return.
end.
set-size(vmStarted) = 10.
put-string(vmStarted, 1) = "STARTED".
assign vlFcOk = vhtsocket:write(vmStarted, 1, 10) no-error.
if not vlFcOk or
error-status:error or
error-status:num-messages > 0
then do:
assign vcFcMaskList = "".
do viFcCount1 = 1 to error-status:num-messages:
if viFcCount1 > 1
then assign vcFcMaskList = vcFcMaskList + chr(2).
assign vcFcMaskList = vcFcMaskList + error-status:get-message(viFcCount1).
end.
<M-12 run SetMessage
(input trim(#T-14'The system failed to write to socket object.':255(998716608)T-14#) (icMessage),
input '' (icArguments),
input '' (icFieldName),
input '' (icFieldValue),
input 'D' (icType),
input 3 (iiSeverity),
input '' (icRowid),
input 'BLF-599575':U (icFcMsgNumber),
input '' (icFcExplanation),
input '' (icFcIdentification),
input '' (icFcContext),
output viFcReturnSuper (oiReturnStatus)) in BReportDaemonProcessor>
if vcFcMaskList <> ""
then do viFcCount1 = 1 to num-entries(vcFcMaskList, chr(2)):
<M-13 run SetMessage
(input entry(viFcCount1, vcFcMaskList, chr(2)) (icMessage),
input '' (icArguments),
input '' (icFieldName),
input '' (icFieldValue),
input 'S' (icType),
input 3 (iiSeverity),
input '' (icRowid),
input 'BLF-931479':U (icFcMsgNumber),
input '' (icFcExplanation),
input '' (icFcIdentification),
input '' (icFcContext),
output viFcReturnSuper (oiReturnStatus)) in BReportDaemonProcessor>
end.
assign oiReturnStatus = -3
vlReportServiceUnavailable = true.
return.
end.
wait-for read-response of vhtsocket pause 30. /* Time-out = 30 seconds */
vhtsocket:disconnect().
delete object vhtsocket.
vhtsocket = ?.
if vlStartingReportDaemon = yes
then do:
<M-6 run SetMessage
(input trim(#T-6'The report server has timed out.':255(9230)T-6#) (icMessage),
input '' (icArguments),
input '' (icFieldName),
input '' (icFieldValue),
input 'D' (icType),
input 3 (iiSeverity),
input '' (icRowid),
input 'BLF-430340':U (icFcMsgNumber),
input '' (icFcExplanation),
input '' (icFcIdentification),
input '' (icFcContext),
output viFcReturnSuper (oiReturnStatus)) in BReportDaemonProcessor>
assign oiReturnStatus = -3
vlReportServiceUnavailable = true.
return.
end.
finally:
set-size(vmStarted) = 0.
if vhtsocket <> ?
then delete object vhtsocket.
end finally.