Hallo zusammen,
ich habe ein Problem mit einem Agenten, welches sich mir überhaupt nicht erschließt.
Wir signieren Agenten in der Regel mit einem SuperUser.
Das funktioniert überall super außer in diesem Fall:
Um die Agenten nur einmal laufen zu lassen, haben wir vor dem eigentlichen Code eine Abfrage geschrieben, die festlegt ob der Agent überhaupt laufen soll. Das funktioniert nur leider nicht, wenn unser SuperUser den Agenten signiert hat. Er ruft trotzdem das doWork auf, obwohl er vorher das Script verlassen soll. Läßt man die Signatur stehen und trägt unter der Agenten-Sicherheit "Ausführen im Namen von" einen anderen Administrator ein, läuft der Agent so wie er soll.
Ich habe bereits den Abschnitt Sicherheit im Serverdokument bzgl. der beiden User verglichen und keine Unterschiede feststellen können.
Hat irgendjemand eine Idee, wo ich noch drehen muss?
Server 8.5.2
Client 8.5.2
Vielen Dank für Eure Hilfe
%REM
Agent Mail-In Dokumente verarbeiten CLU
Erstellt
am: 06.01.2012
von:
Beschreibung: Clusterfhähigkeit durch Function doWork
%END REM
Option Public
Option Declare
Use ".AppAuftragMailClass"
Sub Initialize
Const ADMINSRVDEFAULT = "Mein Server"
Dim sn As New NotesSession
Dim testdb As New NotesDatabase("", "")
Dim AdminSRV As String
Dim nAdminSRV As NotesName
Dim ExecSRV As String
Dim thisdb As NotesDatabase
Dim acl As NotesACL
Set thisdb = sn.CurrentDatabase
ExecSRV = thisdb.Server
Set acl = thisdb.ACL
Set nAdminSRV = sn.Createname(acl.AdministrationServer)
AdminSRV = nAdminSRV.Canonical
If AdminSRV = "" Then
AdminSRV = ADMINSRVDEFAULT
Else
End If
If ExecSRV = AdminSRV Then
Call doWork ()
Else
If testdb.open(AdminSRV, "names.nsf")Then
GoTo Ausgang
Else
Call doWork ()
End If
End If
Ausgang:
End Sub
%REM
Function doWork
Beschreibung: Hier steht der eigentliche Code des Agenten
%END REM
Function doWork
Dim objErrorContainer As ErrorContainer
Dim objProtocol As Protocol
Print "Function DoWork gestartet"
Call ProcessMail (objProtocol, False, objErrorContainer)
If Not objErrorContainer Is Nothing Then
If objProtocol Is Nothing Then
Call objErrorContainer.Send(Nothing)
Else
Call objErrorContainer.Send(objProtocol.NotesDocument)
End If
End If
End Function