Index: vhLock.mac.rou =================================================================== diff -u -r54016 -r74150 --- vhLock.mac.rou (.../vhLock.mac.rou) (revision 54016) +++ vhLock.mac.rou (.../vhLock.mac.rou) (revision 74150) @@ -67,6 +67,8 @@ Set ResultSet=##class(%ResultSet).%New("%SYS.LockQuery:List") Set Status = ResultSet.Execute() If 'Status w "Fout Rset.Execute() : "_$$ParseStatus^vhLib(Status) + Do ResultSet.Close() + Set ResultSet = "" Set LockJob = $$LOCKJOB(LockNaam) If $G(Info)="" Set Info="Bestand "_LockNaam @@ -84,21 +86,47 @@ Set FP=2401 Write @F,@F1 Do:$G(QW) ZWINT^vhRtn2(0) } else { - Do ##class(vhLib.Logger).%New().Warning("LDSIP","Er is een lock '" _LockNaam _"' opgetreden en er is geen CHUI beschikbaar om een melding te geven. Mogelijks vangt de code zelf de lock op en onderneemt deze de nodige acties." _$C(13,10) _Info) + Do ##class(vhLib.Logger).%New().Warning("LDISP","Er is een lock '" _LockNaam _"' opgetreden en er is geen CHUI beschikbaar om een melding te geven. Mogelijks vangt de code zelf de lock op en onderneemt deze de nodige acties." _$C(13,10) _Info) + + New ResultSet,Status,LockJob,InfoLijn1,InfoLijn2 + Set ResultSet=##class(%ResultSet).%New("%SYS.LockQuery:List") + Set Status = ResultSet.Execute() + ;If 'Status ?Write? "Fout Rset.Execute() : "_$$ParseStatus^vhLib(Status) + Do ResultSet.Close() + Set ResultSet = "" + Set LockJob = $$LOCKJOB(LockNaam) + If $G(Info)="" Set Info="Bestand "_LockNaam + Set InfoLijn1=Info_" in gebruik" + Set InfoLijn2 = $$GebruikerInfoJob(LockJob) + Do ##class(vhLib.Logger).%New().Warning("LDISP",InfoLijn1_$C(13,10)_InfoLijn2_$C(13,10)_$$GetStackToString^vhLib.System()) } Quit GebruikerInfoJob(Job) - New ClientInfo, Process, User, Info + New ClientInfo, Process, User, Info, VarResultset, sc, AdminUser Set ClientInfo = "" + Set AdminUser = "" Set Process = ##class(%SYS.ProcessQuery).%OpenId(Job) If ($IsObject(Process)){ - Set ClientInfo = $Piece(Process.ClientNodeName,"/") - If ('$Length(ClientInfo)) Set ClientInfo = Process.ClientIPAddress - set ClientInfo = ClientInfo _ $$$IfLength(Process.ClientExecutableName," ","") + try { + set VarResultset = ##class(%ResultSet).%New("%SYS.ProcessQuery:VariableByPid") + set sc = VarResultset.Execute(Job) + while(VarResultset.Next()) { + Set:(VarResultset.GetDataByName("Name")="QU") AdminUser = VarResultset.GetDataByName("Value") + } + } catch { + #dim Exception As TECH.Exceptions.Exception = ##class(TECH.ExceptionHandler).Catch() + } + Set ClientInfo = $Piece(Process.ClientNodeName,"/") + If ('$Length(ClientInfo)) Set ClientInfo = Process.ClientIPAddress + set ClientInfo = ClientInfo _ $$$IfLength(Process.ClientExecutableName," ","") } - Set Info = "(Process "_Job + Set Info = "(" + If $$$HasLength(AdminUser) { + Set Info = Info _ "Admin gebruiker " _ AdminUser _", " + } + Set Info = Info _ "Process "_Job If ($Length(ClientInfo)>0){ Set Info = Info_ " op "_ClientInfo_")" }Else{