Agent starten aus Agent

  • Hallo Leute,


    habe folgendes Problem:
    Ich habe einen Script Agenten auf einer DB der alle 4 Stunden läuft(da dieser einiges zu tun hat). Nun habe ich einen zweiten Script Agent der vom Enduser ausgelöst wird. Am ende dieses Agenten soll aber der erste zeitliche Agent gestartet werden.


    Mit "agent.RunOnServer" wird der zeitliche Agent zwar gestartet aber der User muß dann warten bis der zeitliche Agent fertig ist.


    Gibt es denn eine Möglichkeit einen zeitlichen Agent einfach anzustoßen ohne auf das Ergebnis zu warten ?


    Danke für jeden Tip.

    73 x Version 9.0.1 Server, 2500 x 8.5.2 - 8.5.3 Clients alles auf Win

    • Offizieller Beitrag

    naja Dein User muss warten bis der aus dem Agenten gestartete Agent durchgelaufen ist, weil dieser Agent im Client und nicht wie bei der zeitgesteuerten Ausführung auf dem Server läuft.


    Anstelle den Agenten mit Run zu starten könntest Du diesen mit notesAgent.RunOnServer( [ noteID$ ] ) starten, dann wird dieser auf dem Domino ausgeführt.


    Gruß
    Dirk

    Rein logisches Denken verschafft uns keine Erkenntnis über die wirkliche Welt.
    Alle Erkenntnis der Wirklichkeit beginnt mit der Erfahrung und endet mit ihr.
    Alle Aussagen, zu denen man auf rein logischen Wegen kommt, sind, was die Realität angeht, vollkommen leer.
    Albert Einstein

  • Das ist es ja. Ich starte den zeitlichen Agent mit RunOnServer aber der User Agent ist erst fertig wenn der zeitliche Agent fertig ist.

    73 x Version 9.0.1 Server, 2500 x 8.5.2 - 8.5.3 Clients alles auf Win

    • Offizieller Beitrag

    mh sorry habe ich überlesen - dann kannst Du versuchen den Agenten zu deaktivieren und dann wieder zu aktivieren. Allerdings ist dann der Zeitversatz größer.


    Was soll denn der 2. Agent machen (Dokumente verändern , Statistik versenden, Workflow starten usw)?


    Gruß
    Dirk

  • hmm versuche es mal zu erklären:


    Ich habe eine Datenbank (db1). User startet eine Maske füllt Felder und hängt eine Datei ein. Beim schliessen der Maske wird in eine zweiten DB (db2) ein Dokument erstellt mit der Datei und den Felder. Ein Agent auf der (db1) läuft alle 4 Stunden sieht nach in der (db2) und baut je ein filelink Dokument auf je eine Datei.


    Der Sinn dahinter ist das in der (db1) dann nur link Dokumente und wenige text informationen sind (schnell da klein) und in der (db2) die files sind (0-150 MB).
    Es hat auch den Vorteil dass ich die Datei Datenbanken erweitern kann d.h. es gibt dann mehrere Datenbanken mit den Dateien was der Enduser gar nicht mitbekommt wenn er einen Dateilink öffnet.


    Eine Gruppe von Leuten wird dann die Dateien einpflegen nur wäre es schön wenn nach dem einpflegen der Link auch gleich erstellt wird und nicht erst in max. 4 Stunden bis der Agent das nächstemal läuft.


    Ich hoffe ich konnte dir ungefähr mitteilen was ich da baue.

    73 x Version 9.0.1 Server, 2500 x 8.5.2 - 8.5.3 Clients alles auf Win

  • Du musst den nicht zwangsläufig nur alle 4 Stunden laufen lassen. Entweder, du lässt den Agenten in kürzeren Intervallen laufen, oder du triggerst den auf neue und geänderte Dokumente.


    Wir haben ähnliche Konstrukte im Einsatz mit einer Leser- und einer Autorenumgebung. Bei uns jedenfalls tut das einwandfrei.

    Life is not a journey to the grave with the intention of arriving safely in a pretty and well-preserved body, but rather to skid in broadside, thoroughly used up, totally worn out, and loudly proclaiming "Wow, what a ride!!! :evil:
    Beschleunigung ist, wenn die Tränen der Ergriffenheit waagrecht zum Ohr hin abfliessen - Walter Röhrl

  • Danke für eure Tips.


    Ich habe es jetzt so gemacht:


    Beim schliessen meiner Maske rufe ich den Agenten noch nicht auf. Habe dem Usern welche die Dateien einpflegen einfach in die View einen Aktion Button gemacht "Refresh View" in dem der Agent auf dem Server gestartet wird. Das heisst wenn der User nicht solange warten will bis der Server die Links erstellt, kann er das selber starten und muß eben bei jedem Refresh die 1-2 Minuten warten.


    Also Danke nochmal :)

    73 x Version 9.0.1 Server, 2500 x 8.5.2 - 8.5.3 Clients alles auf Win

    • Offizieller Beitrag

    na dann würde ich das Dokument gleich in DB2 erstellen (kannst Du auch asu DB1 heraus) und beim Speichern sofort das Link-Dokument in DB1 erstellen.


    Wenn ich Dich richtig verstanden habe, wird in DB1 die Maks emit dem Dateianhang erstellt und dann per 2. Agenten in die DB2 kopiert. Natürlich dauert dies am Client je nach Anhangsgröße länger. Wir wie oben beschrieben, das Dokument gleich in DB2 erstellt, dann muss nur ein winziges Dokument (ohne Dateianhang in DB1 erzeugt werden, was wesentlich weniger zeitaufwändig ist.


    Gruß
    Dirk

    Rein logisches Denken verschafft uns keine Erkenntnis über die wirkliche Welt.
    Alle Erkenntnis der Wirklichkeit beginnt mit der Erfahrung und endet mit ihr.
    Alle Aussagen, zu denen man auf rein logischen Wegen kommt, sind, was die Realität angeht, vollkommen leer.
    Albert Einstein

  • Eine weitere Möglichkeit wäre noch den Agenten über das Konsollenkommando tell amgr run zu starten.
    Diese kannst du, entsprechende Berechtigung vorrausgesetzt auch über Script absetzen

  • Das Dokument wird nicht in der db1 erstellt (die user haben auch nicht die Rechte dazu). Ich habe in der db1 ein Profildokument in dem die Dateidatenbanken aufgeführt sind und ein limit. Beim beenden der Maske in db1 wird in das Profildoc gegangen und nachgesehen welche Dateidatenbanken es gibt und ob diese schon über dem Limit ist wenn nicht wird das Dokument in die Dateidatenbank gespeichert. So kann ich mehrere Dateidatenbanken anlegen damit der Server nicht zu große Datenbanken bekommt. Der Agent auf der db1 geht dann die Dateidatenbanken (aus dem Profil) durch und erstellt in der db1 ein Linkdokument wenn es keines gibt. Danach geht der gleiche Agent durch und sieht nach ob es die Dateien in den Linkdokumenten noch gibt und löscht das Linkdoc wenn es die Datei nicht mehr gibt. In den Dateidokumenten wird beim Link erstellen auch die UNID des Linkdoks gespeichert und im Linkdokument auch die UNID des Dateidoks. So kann ich sehr schnell prüfen ob es die Datei bzw. den Link noch gibt. Zur Zeit habe ich ca. 7000 Link Dokumente bzw. Dateien in der Datenbank und der Agent brauch ca.40 Sek.


    Also mit dem Button für die "Einstell User" kann ich schon leben.
    Wenn er User fertig ist und drückt einmal den Button und muß 40 Sek. warten dann ist das nicht so ein Problem da die User nur alle 3-4 Tage etwas einchecken.

    73 x Version 9.0.1 Server, 2500 x 8.5.2 - 8.5.3 Clients alles auf Win