Das Notes Forum

Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: Colibri am 11.04.05 - 10:46:11

Titel: Problem mit Call db.replicate in Agent
Beitrag von: Colibri am 11.04.05 - 10:46:11
Hallo Forum,

irgendwie komm ich nicht mehr weiter. Ich habe einen Agent in einer lokalen Datenbank. Dieser Agent soll als letzte Aktion die Datenbank mit dem Server replizieren. Dafür verwende ich den Call db.replicate("server1/firma"). Leider funktioniert das nur, "Default" laut ACL auf die Datenbank zugreifen darf. Hat "Default" keinen Zugriff, bekomme ich immer die Meldung:

Notes error: Sie sind nicht berchtigt, Daten von dieser Datenbank zu replizieren oder zu kopieren. (server1/firma)

Der Agent ist mit meiner ID Signiert, ich habe Adminrechte und ich habe auch schon mit der Eigenschaft "Ausführen im Namen von" rumprobiert, leider ohne Erfolg.

Wo könnte das Problem noch liegen?

Titel: Re: Problem mit Call db.replicate in Agent
Beitrag von: Axel am 11.04.05 - 18:04:52
Hi,

was für Rechte hat denn der Server in der ACL? Der Server braucht mindestens Leserechte auf die DB.


Axel
Titel: Re: Problem mit Call db.replicate in Agent
Beitrag von: Colibri am 12.04.05 - 08:15:55
Hallo Axel,

der Server hat laut ACL Adminrechte. Was ich noch vergessen habe zu erwähnen, wenn ich den Agent am Client von Hand starte, läuft er Problemlos, nur wenn er Zeitgesteuert auf dem Client läuft, tritt die Fehlermeldung auf.

Gruß
Coli
Titel: Re: Problem mit Call db.replicate in Agent
Beitrag von: Axel am 12.04.05 - 08:26:56
Hi,

die Rechte sind auch auf der Server-DB richtig eingetragen, oder?


Axel
Titel: Re: Problem mit Call db.replicate in Agent
Beitrag von: Colibri am 12.04.05 - 09:13:24
ja, sind auf der Lokalen und der Server DB identisch.

Es hat wohl damit zu tun, daß der Agent, wenn Zeitgesteuert läuft, nicht mit meinen Berechtigungen läuft, sondern unter "default"

Titel: Re: Problem mit Call db.replicate in Agent
Beitrag von: Axel am 12.04.05 - 20:56:43
Hi,

möglich wäre es. Dazu kann ich aber keine definitive Aussage machen, denn ich stand vor diesem Problem noch nicht.

Füge doch mal in deinen Agent diese Zeilen ein:

Dim session As New NotesSession
Print "Der Agent läuft dem User: " & session.CommonUsername

Dann lass den Agenten zeitgesteuert laufen und schau dann mal in der log.nsf unter verschiedene Ereignisse nach, was da ausgegeben wird.

Bin mir aber nicht ganz sicher ob's was bringt.


Axel




Titel: Re: Problem mit Call db.replicate in Agent
Beitrag von: koehlerbv am 12.04.05 - 21:23:21
Der Agent läuft mit den rechten der ID, mit der der Agent signiert wurde. Ab R6 kann das überschrieben werden mit der Agent-Property "Run in behalf of". Und genau dort würde ich mal nachschauen. Wenn Colibri den Agent nur laufen lassen kann, wenn Default die gleichen Rechte hat wie er, dann muss es ja eher in diese Richtung gehen.

HTH,
Bernhard
Titel: Re: Problem mit Call db.replicate in Agent
Beitrag von: Axel am 13.04.05 - 08:26:36
Hi,

greift die "Run in behalf of" - Property nur wenn der Agent zeitgesteuert läuft oder auch wenn er manuell ausgeführt wird?

Ich bin mit den neuen Eigenschaften noch nicht so fit.


Axel
 
Titel: Re: Problem mit Call db.replicate in Agent
Beitrag von: Colibri am 13.04.05 - 10:03:49
Zitat
der Server hat laut ACL Adminrechte. Was ich noch vergessen habe zu erwähnen, wenn ich den Agent am Client von Hand starte, läuft er Problemlos, nur wenn er Zeitgesteuert auf dem Client läuft, tritt die Fehlermeldung auf.

Sorry, das war ne Falschmeldung von mir. Vor lauter ausprobieren hatten ich nicht gemerkt, daß ich zu diesem Zeitpunkt den Zugriff für "Default" ermöglicht hatte, nur dann läuft.

Zitat
Print "Der Agent läuft dem User: " & session.CommonUsername
Es steht immer der Name des Users im Protokoll, der an dem Client angemeldet ist. Dieser User hat aber Aminrechte auf die Datenbank und darf auch Dokumente replizieren

Zitat
Der Agent läuft mit den rechten der ID, mit der der Agent signiert wurde. Ab R6 kann das überschrieben werden mit der Agent-Property "Run in behalf of". Und genau dort würde ich mal nachschauen. Wenn Colibri den Agent nur laufen lassen kann, wenn Default die gleichen Rechte hat wie er, dann muss es ja eher in diese Richtung gehen.

Ich denke mal das greift nur bei Agenten die auf dem Server laufen, nicht bei Agenten die lokal ausgeführt werden.



Titel: Re: Problem mit Call db.replicate in Agent
Beitrag von: Axel am 13.04.05 - 19:44:38
Sorry, das war ne Falschmeldung von mir. Vor lauter ausprobieren hatten ich nicht gemerkt, daß ich zu diesem Zeitpunkt den Zugriff für "Default" ermöglicht hatte, nur dann läuft.

Was heißt denn das nun genau? Läuft er nun, von Hand und zeitgesteuert nur wenn Default Zugriff auf die DB hat?


Axel

Titel: Re: Problem mit Call db.replicate in Agent
Beitrag von: koehlerbv am 13.04.05 - 21:34:49
Die Antwort auf Deine Frage würde mich jetzt auch interessieren, Axel  ;D

Aber noch eine andere Möglichkeit: Was ist denn in der ACL jeweils unter den Beteiligten (wir wissen ja nun gerade nicht, welche, aber auf jeden Fall kommen in Frage: Server, LocalDomainServers, Colibris ID, und Default) unter "Allgemein" und dort unter "Dokumente replizieren oder kopieren" ? Wenn da der Haken fehlt, wäre ja alles klar und die Fehlermeldung absolut zielführend.

HTWI (hope that was it  ;D )

Bernhard
Titel: Re: Problem mit Call db.replicate in Agent
Beitrag von: Colibri am 14.04.05 - 08:54:03
Also, hier noch mal alle Fakten.  ;D

Auf einem Client läuft zeitgesteuert alle 2min ein Agent. Der Client ist mit meiner ID angemeldet und der Agent ist mir meiner ID signiert.  :)

Der Agent läuft soweit auch (holt Daten per ODBC aus einer fremden Datenbank) und nur die letzte Zeile call db.replicate("server/firma") bringt eine Fehlermeldung.  :(

Notes error: Sie sind nicht berechtigt, Daten von dieser Datenbank zu replizieren oder zu kopieren. (server1/firma)

Wenn ich die Datenbank an dem Client von Hand repliziere, oder wenn ich die Zeitgesteuerte Replizierung des Clients verwende, funktioniert es.  :-\

In der ACL sind folgende Berechtigungen eingestellt:

LocalDomainAdmin - Manager
LocalDomainServers  - Manager
Colibri  -   Manager
Alle haben auch den Hacken bei "Dokumente replizieren oder kopieren"

Default - Kein Zugriff


Wenn ich den Zugriff für Default auf mindestens Editor stelle, dann funktioniert die Replizierung mit dem Agenten.  :o

Momentan hab ich es über die zeitgesteuerte Replizierung des Clients gelöst, würde es aber gerne mit dem Agenten machen, damit die Daten sofort wenn sie per ODBC geholt werden zur Verfügung stehen.  ::)

Vielleicht fällt ja einem der Profis hier noch was ein.  :-[

Gruß
Colibri
Titel: Re: Problem mit Call db.replicate in Agent
Beitrag von: Axel am 14.04.05 - 09:29:03
Hi,

im Moment fällt mir dazu leider nichts gescheites mehr ein. Ich stand vor dieser Problematik bisher nicht, dass über Agenten zu regeln.

Axel
Titel: Re: Problem mit Call db.replicate in Agent
Beitrag von: jBubbleBoy am 31.10.07 - 18:41:44
ich hatte das gleiche Problem und dieser Thread hat mich auf die Lösung gebracht, aber dies Lösung steht hier nicht :o und das möchte ich jetzt gern nachholen.

Es geht sobald der Server Namentlich in der ACL aufgenommen wird. Über die Gruppe LocalDomainServers geht es nicht, weil diese Lokal beim Aufruf von db.replicate nicht aufgelöst wird, deshalb hat der Default-Wert gegriffen .
Warum auch immer :)

bubble