Autor Thema: Agenten asynchron starten (mittels Lotusscript)  (Gelesen 5801 mal)

DerRalph

  • Gast
Agenten asynchron starten (mittels Lotusscript)
« am: 23.08.05 - 21:13:21 »
Hallo!

Auf einem Server läuft in regelmäßigen Abständen ein Agent "A".
Dieser prüft verschiedene Bedingungen und startet davon abhängig
eventuell mehrere andere Agenten auf diesem Server.
Dazu wird die Funkion "RunOnServer" benutzt.
Wie ich leider (über Log-Einträge) feststellen mußte und hier im Forum auch gelesen habe,
ist der Aufruf mittels "RunOnServer" anscheinend synchron.
Der aufrufende Agent wartet bei jedem aufgerufenen
Agenten auf dessen Ende bzw. auf eine Statusmeldung.

Gibt es einen Weg (über "Shell"?), die Agenten so zu starten,
daß sie nicht mit dem aufrufenden Agenten "verbandelt" sind?

Code-Beispiel 'Agent "A"' (vereinfacht):
...
if Bedingung_1_erfuellt then
   Set agent = db.GetAgent("Agent1")
   lReturn = agent.RunOnServer
end if
if Bedingung_2_erfuellt then
   Set agent = db.GetAgent("Agent2")
   lReturn = agent.RunOnServer
end if
if Bedingung_3_erfuellt then
   Set agent = db.GetAgent("Agent3")
   lReturn = agent.RunOnServer
end if
...

Im Einssatz: 5er Domino Server, 5.0.11 Lotus Notes Client


Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Agenten asynchron starten (mittels Lotusscript)
« Antwort #1 am: 23.08.05 - 23:36:25 »
Hallo Ralph,

zunächst mal: Willkommen im Forum !

Bevor wir jetzt aber philosophieren über die Möglichkeiten des AgentManagers und seiner Abhängigkeit von der jeweiligen Serverlast usw. - mal doch bitte mal auf, was Du eigentlich erreichen willst. Ich denke, wir tun uns dann alle viel einfacher, um eine Lösung des eigentlichen Problems zu finden  ;)

Bernhard

DerRalph

  • Gast
Re: Agenten asynchron starten (mittels Lotusscript)
« Antwort #2 am: 24.08.05 - 12:03:49 »
Hallo Bernhard,

vielen Dank für das Willkommen.

Hier ein Versuch einer klärenden Beschreibung meines Wunsches:
Agent "A" soll seine Prüfungen durchführen (dauert wenige Sekunden),
soll gegebenenfalls die Agenten 1, 2 oder 3 "starten",
und sich dann "sofort" beenden, *ohne* auf Rückmeldungen warten zu müssen.
Mit "starten" ist gemeint, daß dem AMgr nur mitgeteilt wird, daß er irgendwann
die Agenten 1, 2 oder 3 ausführen soll (Eintrag in AMgr-Warteschlange)
Dem Agenten "A" ist es egal, ob die anderen Agenten tatsächlich auch laufen.

Ich habe anhand der Logeinträge festgestellt, daß
Agent "A" lief und den Agenten 1 gestartet hat,
Agent 1 lief und hat sich beendet (Agent "A" wurde in der Zeit suspendiert),
dann lief Agent "A" weiter, startete den Agenten 2
und als sich dieser wiederum beendet hat,
lief Agent "A" erst wieder weiter und hat sich schließlich beendet.

Diese Abhängigkeit (dieses Warten von dem Agenten A) ist nicht gewünscht.
Agent A und Agenten 1 bis 3 sollen "völlig losgelöst" (NDW-Lied :-)) voneinander sein.

Agent A und die Agenten 1 bis 3 liegen in derselben Datenbank auf einem Server X.
« Letzte Änderung: 24.08.05 - 22:20:05 von DerRalph »

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Agenten asynchron starten (mittels Lotusscript)
« Antwort #3 am: 24.08.05 - 22:57:08 »
Meine Frage ist damit aber noch nicht geklärt: Warum willst Du, dass Agent "A" beendet wird, egal ob ein anderer von ihm gestarteter Agent dann noch läuft oder nicht ?

Da das Problem nicht ohne ist, wäre der angestrebte Sinn der Sache für eine Lösung als für eine Motivation bei der Lösungsauswahl sehr dienlich.

Bernhard

Offline flaite

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.966
    • mein del.icio.us
Re: Agenten asynchron starten (mittels Lotusscript)
« Antwort #4 am: 25.08.05 - 06:17:50 »
Wenn ich mich recht erinnere - und das kann jetzt falsch sein - erzeugt Domino mehrere Agent-Manager Instanzen. Du kannst irgendwo im Serverdokument einstellen wie viele Agenten parallel laufen *dürfen*. Das sind dann glaub ich Prozesse, die du auch im Taskmanager von Windows oder über sh ta auf der Domino Konsole siehst.
Das heisst aber imho nicht, dass *du* bestimmen kannst unter welchem Agenten-Manager der Agent läuft. Ich halte es sogar für irgendwie wahrscheinlich, dass ein von einem anderen Agenten aufgerufener Agent immer unter dem selben Agentenmanager läuft wie der Aufrufer. Das ist reine Spekulation, aber für mich besteht eine Wahrscheinlichkeit, dass dies aus Optimierungsgründen so programmiert ist.
Du kannst dir aber eine Art eigene Agentenqueue selber aufbauen.
Wir haben Agent1 und Agent2.
Agent2 wird nicht mehr per Agent.run() gestartet (oder wie die Methode heisst), sondern Agent1 erzeugt ein Dokument in einer View, in dem alle Informationen stehen die Agent2 benötigt. Dann machst du aus Agent2 einen zeitgesteuerten Agenten. Er schaut beim Starten nach, ob Dokumente in dieser View stehen und verarbeitet dieselbe.

Axel
« Letzte Änderung: 25.08.05 - 06:44:49 von kennwort »
Ich stimm nicht mit allen überein, aber mit vielen und sowieso unterhaltsam -> https://www.youtube.com/channel/UCr9qCdqXLm2SU0BIs6d_68Q

---

Aquí no se respeta ni la ley de la selva.
(Hier respektiert man nicht einmal das Gesetz des Dschungels)

Nicanor Parra, San Fabian, Región del Bio Bio, República de Chile

DerRalph

  • Gast
Re: Agenten asynchron starten (mittels Lotusscript)
« Antwort #5 am: 26.08.05 - 16:27:45 »
Noch etwas zur Semantik, wie von Bernhard gewünscht:
Die Agenten sind Teil eines selbstgebastelten Reporting-Systems.
Jeder Agent 1, 2, ... N kann beliebig viele Reports jeweils einer Reportart
generieren und an anfragende Anwender schicken.

Natürlich können alle diese Reportagenten zeitgesteuert gestartet werden.
Sie prüfen, ob etwas zu tun ist, und wenn ja, tun sie etwas,
und wenn nein, beenden sie sich direkt wieder.

Ich hatte gedacht, daß es "eleganter" und insgesamt handlicher ist,
einen übergeordneten Steuerungsagenten ("Agent A") zu schreiben,
der die Reportagenten nur bei Bedarf startet.

Es kann theoretisch sein, daß ein Reportagent länger als die
ihm vom System zur Verfügung gestellte Zeit laufen kann
(Systemeinstellung: 20 Minuten).
Das würde wegen der synchronen Verbandelung wahrscheinlich auch den
Steuerungsagenten betreffen. Der würde vom System wegen der insgesamt
langen Laufzeit gleich mitbeendet werden, so daß die Prüfung auf Start der
anderen Reportagenten anwendungsbedingt sich mindestens bis zum nächsten
Start des Steuerungsagenten verzögern würde.
(Meine Kenntnisse von Interna des Domino-Systems sind leider sehr gering.)

Also: meine Idee taugt nichts bzw. ist nicht leicht umzusetzen.

Die Äußerung "Da das Problem nicht ohne ist ..." (Bernhard)
läßt kaum Hoffnung auf eine einfache Lösung keimen.

Da es bekanntlich viele Wege nach Rom gibt (siehe Lösung von Axel, Danke!),
werde ich mein Konzept wohl umstellen müssen.
« Letzte Änderung: 26.08.05 - 16:33:31 von DerRalph »

Offline animate

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.540
  • Uh, I'm just gonna go find a cash machine.
    • LA2
Re: Agenten asynchron starten (mittels Lotusscript)
« Antwort #6 am: 26.08.05 - 16:54:51 »
Ich weiß zu wenig über diese Anwendung, aber ich sehe nicht, was an einem Steueragent elegant oder handlich ist.
Du würdest Logik (muss ich was tun oder nicht?), die IMHO in die einzelnen Agents gehört in diesen Steueragent verlegen. Das bedeutet auch, immer wenn du einen neuen Reportagent erstellst musst du Änderungen an einem bereits getesteten Modul (der Steueragent) machen und läufst so Gefahr, dass das die ganze Reportsteuerung lahmlegt. Außerdem würde der Steueragent vermutlich pro neuem Report größer, unhandlicher und komplexer (-> schwierige Wartung).

Oder sehe ich das falsch?
Thomas

Fortunately, I'm adhering to a pretty strict, uh, drug, uh, regimen to keep my mind, you know, uh, limber.

Offline flaite

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.966
    • mein del.icio.us
Re: Agenten asynchron starten (mittels Lotusscript)
« Antwort #7 am: 26.08.05 - 22:03:24 »
Ich seh das auch wie Thomas.
Ausserdem:
Warum stellst du nicht einfach die Reportanforderungen in eine Queue (als Dokumente) und lässt zeitlich gesteuerte Agenten diese Anforderungen verarbeiten (Report generieren) und in einen anderen Status setzen, um etwa Reports in einer bestimmten Reihenfolge zu generieren. Das letzteres Sinn macht halte ich allerdings für sehr unwahrscheinlich. Wenn du z.B. 3 Reports brauchst, kannst du auch einfach 3 Reportanforderungen generieren.
In der Reportanforderungen stehen dann so Daten drin wie: Welches Dokument soll verarbeitet werden (UniqueID), welcher Report, etc. .
Ich würde die Reportanforderung als eigenes Dokument betrachten. Du könntest das auch direkt in das zu reportierende Dokument als Feld schreiben. Die Lösung, die Anforderung in einen eigenen Dokumenttyp zu packen macht aber Sinn z.B. zur Verhinderung von Speicher & Replizierkonflikten, weil der Reportagent muss ja irgendwann das Anforderungsdokument speichern (um es zu einem Status zu setzen, aus dem folgt, dass es nicht noch einmal verarbeitet wird).


Mit zeitgesteuerten Agenten hat Domino eigentlich ein Mittel zur asynchronen Verarbeitung. Und es ist dokumentenorientiert. Bestimmte typische Merkmale des SOA Zeugs gibts also schon in Domino. Wobei das natürlich nicht dasselbe ist.  ;D

Übergeordneter Steuerelement heisst ja, dass du eine Komponente schaffst, die den anderen sagt, was zu tun ist. Du brauchst das hier nicht. Die Reportagenten kannst du mit sehr geringen Aufwand so schlau programmieren, dass sie wissen was zu tun ist. Gegen die Queue pollen und bei Bedarf einen Report erzeugen.
« Letzte Änderung: 26.08.05 - 22:08:44 von kennwort »
Ich stimm nicht mit allen überein, aber mit vielen und sowieso unterhaltsam -> https://www.youtube.com/channel/UCr9qCdqXLm2SU0BIs6d_68Q

---

Aquí no se respeta ni la ley de la selva.
(Hier respektiert man nicht einmal das Gesetz des Dschungels)

Nicanor Parra, San Fabian, Región del Bio Bio, República de Chile

DerRalph

  • Gast
Re: Agenten asynchron starten (mittels Lotusscript)
« Antwort #8 am: 27.08.05 - 01:46:03 »
Für Thomas Völk:

Was soll ich auf die Frage "Oder sehe ich das falsch?" antworten
bzw. ist das noch nötig nach dieser Programmierlehrstunde für einen "Frischling"?

Mir scheint, du hast die eigentliche Frage aus den Augen verloren.

Bei meiner Suche für ein Konzept für die skizzierte Teilaufgabe des Reporting-Systems
bin ich auf die Frage gestoßen, ob ein Agent einen anderen Agenten asynchron anstoßen kann.
Die "gestandenen" Notes-Entwickler in meiner Umgebung waren ratlos.
Die Frage halte *ich* für nachforschenswert und interessant auch für andere.
Kann ja sein, daß es nicht geht, nachfragen darf man aber.

Leider habe ich mich verleiten lassen, die Frage aus dem Abstrakten
in eine konkrete Anwendung zu stellen.
Ob die Realisierung letztendlich diesen Weg beschreiten wird, wer weiß.
Wie bereits geschrieben: es gibt viele Wege nach Rom.
Entwickeln ist eine kreative Arbeit.

Nun zu meiner Antwort:
"Ich weiß zu wenig über diese Anwendung, ..." ... eben!


P.S.:
Bitte nicht ärgern!
Ich halte deinen Beitrag für deplaziert.

Um keine endlose Diskussion führen zu müssen ...
Meinen Ärger habe ich runtergeschluckt. Ok?!

P.S.-2:
Nachdem auch ein Beitrag von "kennwort" zum Them "Reportsystem" eingegangen ist,
erst einmal Danke (und das ohne Ironie!) für die Zeit und die Gedanken,
die ihr zur Beantwortung investiert.
Ich glaube aber, ich sollte einen neuen Beitrag "Reportsystem" öffnen,
in dem das Thema diskutiert werden kann.
Ich klinke mich aber aus.

Um eine Grundlage zu schaffen:
An ca. 70 Standorten sitzen mehrere hundert Anwender, die per Notes-Client
verschiedene (parametrisierbare) Reportarten anfordern können.
Die Datengrundlage der Reports ist eine zentrale Oracle-Datenbank mit
einem komplexen DB-Schema, verwaltet von einer anderen Anwendung.
Die Reports sollen wahlweise als pdf-Datei oder Word-Datei erstellt werden.
Das Aussehen der Reports sollte kundentauglich sein.
Und alles soll so schnell wie möglich ablaufen.

Ich bin mit meinem Konzept für das Gesamtsystem recht zufrieden,
möchte allerdings die Abholseite noch "elegant" ;-) gestalten.

Bye.
« Letzte Änderung: 27.08.05 - 01:49:25 von DerRalph »

Offline flaite

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.966
    • mein del.icio.us
Re: Agenten asynchron starten (mittels Lotusscript)
« Antwort #9 am: 27.08.05 - 09:35:33 »
Ich mag Leute, die zu Wutausbrüchen neigen. Ich tue es selber, manchmal.
Es ist völlig normal, dass man mal ein paar Basics aus den Augen verliert. Deshalb ist Thomas und mein Beitrag völlig normal. Ein Entwickler/Designer/Architekt, der bei seinen Gedankengängen alle Basics immer richtig im Auge behält, gibt es nicht. Das genau ist nämlich das Problem, aus meiner Sicht.
Ich mache nicht gerade selten Design-Fehler und muß deshalb weite Teile umprogrammieren. Der Grund ist *immer*, dass ich ein paar Basics nicht beachtet habe.
Ob du *jetzt* mit deinem Konzept für das Gesamtsystem zufrieden bist, ist schön für dich. Entscheidend ist aber, ob es eine gute Basis für realen Code ist. Ich hoffe für das Team, dass du dann ein bischen offener auf sachliche Kritik reagierst. Genau das unterscheidet nämlich ein gutes Team von einem schlechten Team. Ich habe noch kein Design Konzept gesehen, in dem keine schwerwiegenden Fehler oder Lücken drin waren. Inklusive der, bei denen ich mitgeschrieben habe.

Eine Sache, die mir eigentlich erst in meinem Go-Hobby so richtig klargeworden ist:
Kageyama (cooler Autor) sagt das die Qualität bei Top-Weltliga-Professionals darin besteht, dass sie die Basics sehr, sehr sicher beherrschen. Nicht perfekt. Weil das geht nicht. Und ich sehe genau das in jedem Spiel. Und es läßt sich prima auf IT übertragen. 

btw: Warum benutzt ihr nicht sowas wie Jasper-Reports, macht das ganze auf Tomcat oder einem appServer und kommuniziert gegen das ganze über Webservices. Am besten noch verbunden mit einem Messaging Server? (just curious)

peace Axel
« Letzte Änderung: 27.08.05 - 14:16:39 von kennwort »
Ich stimm nicht mit allen überein, aber mit vielen und sowieso unterhaltsam -> https://www.youtube.com/channel/UCr9qCdqXLm2SU0BIs6d_68Q

---

Aquí no se respeta ni la ley de la selva.
(Hier respektiert man nicht einmal das Gesetz des Dschungels)

Nicanor Parra, San Fabian, Región del Bio Bio, República de Chile

DerRalph

  • Gast
Re: Agenten asynchron starten (mittels Lotusscript)
« Antwort #10 am: 27.08.05 - 14:07:40 »

Hilfe, in was für ein Forum bin ich gelandet?
Es wird ja allmählich grotesk.

Die von mir gestellte Frage tritt in den Hintergrund, statt dessen
wird über ein System debattiert, daß keiner der Kommentaren kennt.
Zudem ist die Umgebung, in der es entsteht und in der es eingesetzt werden soll,
den Kommentaren ebenso völlig unbekannt. Ebenso meine Person.
Dieses System steht nicht zur Debatte!

Ich empfinde, daß hier Selbstgefälligkeit und Ignoranz sich zunehmend verbreitet.
Wohlmeinende Kommentare, die am Thema vorbeigehen, und die eine versteckte
Abqualifikation enthalten, und das als "sachliche Kritik" verkaufen,
verschwenden nur Zeit und Speicherplatz. Das soll "normal" sein?

Bevor das hier noch ausufert:
Wenn hier ein Admin oder Moderator mitliest, möchte ich ihn bitten,
weitere Kommentare zu unterbinden bzw. meine Anfrage und die komplette
Kommentarkette herauszunehmen.

Offline flaite

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.966
    • mein del.icio.us
Re: Agenten asynchron starten (mittels Lotusscript)
« Antwort #11 am: 27.08.05 - 14:27:55 »
Software development is about communication.
Sobald du eine Aussage in den öffentlichen Raum stellst, mußt du damit rechnen, dass dieselbe kommentiert wird.
Wie oft in Streitsituationen perzepieren sich die Gegner quasi spiegelbildlich. Ich finde dein Verhalten hier auch arrogant.
Wenn du jetzt hier langjährige Mitglieder als selbstgefällig und ignorant abqualifizierst: Ich könnte jetzt genauso aggressiv reagieren wie du, hab den zynischen Spruch aber wieder gelöscht.
Und bitte: Dein Vorschlag einer Art globalen Front Controllers für diese Report-Funktionalität halte ich nach wie vor für eine schlechte. Und zwar nicht nur auf Notes bezogen. Sondern grundsätzlich. Ich habe auch manchmal schlechte Ideen. Und deine Holzhammer Rhetorik (wo bin ich hier gelandet, grotesk, etc.) macht es nicht besser.
Es mag ähnliche architektonische Pattern in EJB-Sessions Facades oder Servlet Front Controllern geben. In beiden Fällen haben diese prozeduralen Elemente aber eine bestimmte Intention. Und welche Intention hat dein Front Controller hier? Denk drüber nach. Was du als "versteckte Abqualifikation" bezeichnest, ist vielleicht gar nicht so. 
 

Letzte Aussage zu diesem Thema.

Ansonsten hoffe ich, dass du diesem Forum erhalten bleibst. Du bist lustig (mein ich jetzt ohne jede Ironie).
« Letzte Änderung: 27.08.05 - 18:02:27 von kennwort »
Ich stimm nicht mit allen überein, aber mit vielen und sowieso unterhaltsam -> https://www.youtube.com/channel/UCr9qCdqXLm2SU0BIs6d_68Q

---

Aquí no se respeta ni la ley de la selva.
(Hier respektiert man nicht einmal das Gesetz des Dschungels)

Nicanor Parra, San Fabian, Región del Bio Bio, República de Chile

Offline Hoshee

  • Administrator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 697
  • Geschlecht: Männlich
  • Try To Be Mensch ...
    • Syslords Solutions IT-Dienstleistungen
Re: Agenten asynchron starten (mittels Lotusscript)
« Antwort #12 am: 27.08.05 - 19:40:13 »
Hallo Ralph,

sorry, aber in diesem Forum werden keine Threads gelöscht, nur weil sie ein wenig "neben der Spur" laufen.
Ich möchte alle Beteiligten bitten, zum Kern der Frage zurück zu kehren.

Vielen Dank ...

Hoshee
Detlef

-> Syslords Solutions
*************************************
Wer dem Chef in den Hintern kriecht, muß damit rechnen, daß er ihm eines Tages zum Hals heraushängt

Offline flaite

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.966
    • mein del.icio.us
Re: Agenten asynchron starten (mittels Lotusscript)
« Antwort #13 am: 27.08.05 - 19:48:23 »
Aus meiner Sicht wird über den Kern der Frage geredet.
Wenn es "neben der Spur" ist, dass man mal darauf hinweist, dass das Design einem aus wirklich deutlich dargelegten Gründen etwas merkwürdig vorkommt, dann verstehe ich das wirklich nicht.
Ich hab eine Menge Projekte wegen mechanischen Denken den Bach runtergehen sehen.
Also bitte. Wenn man wegen solcher Fragen wie Backpulver hochgeht.
« Letzte Änderung: 27.08.05 - 20:50:47 von kennwort »
Ich stimm nicht mit allen überein, aber mit vielen und sowieso unterhaltsam -> https://www.youtube.com/channel/UCr9qCdqXLm2SU0BIs6d_68Q

---

Aquí no se respeta ni la ley de la selva.
(Hier respektiert man nicht einmal das Gesetz des Dschungels)

Nicanor Parra, San Fabian, Región del Bio Bio, República de Chile

Offline Hoshee

  • Administrator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 697
  • Geschlecht: Männlich
  • Try To Be Mensch ...
    • Syslords Solutions IT-Dienstleistungen
Re: Agenten asynchron starten (mittels Lotusscript)
« Antwort #14 am: 27.08.05 - 20:15:35 »
Yoo,

das mag ja richtig sein, aber wenn ich einen Automechaniker frage, wie ich eine Anhängerkupplung an meinen Fiat Panda kriege und dann mit ihm diskutieren muss, ob das überhaupt Sinn macht, dann fänd ich das auch nicht so prickelnd.
Oder fändest Du es wirklich gut, im Supermarkt, wenn Du ein lecker Rindersteak haben möchtest, mit der Fleischfachverkäuferin debattieren zu müssen, das Pute doch besser wäre?

Detlef

-> Syslords Solutions
*************************************
Wer dem Chef in den Hintern kriecht, muß damit rechnen, daß er ihm eines Tages zum Hals heraushängt

Offline flaite

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.966
    • mein del.icio.us
Re: Agenten asynchron starten (mittels Lotusscript)
« Antwort #15 am: 27.08.05 - 20:54:57 »
Es geht hier aber weder um den Verkauf von Rinderhacksteak oder Automechanik.
Ausserdem bekommen diese Leute für diese Tätigkeit Geld.
Hier braucht nur jemand die "das gehört nicht zum Thema"-Karte ziehen und das wird dann direkt ernst genommen.
Genau mit diesem Tunnelblick fährst du Projekte gegen die Wand.
Es ging damit los, dass der Herr sich persönlich angegriffen fühlte, dass Thomas Völkl ihm höflich eine sehr vernünftige Frage zu seinen Ausführungen gestellt hat. Darüber hat er sich erhaben gefühlt. In der Folge hat er allemöglichen Leute persönlich angegriffen und sich autoritär als GröFaZ aufgeführt, nur weil er an dem Design einer ziemlichen Standardanwendung rumbastelt. Stattdessen tut er so als würde an etwas völlig großartigen und nobelpreisverdächtigen arbeiten, das kein Mensch versteht.
 
@Ralph: Werde agile. Alles andere klappt sowieso nicht.
 
Axel
« Letzte Änderung: 28.08.05 - 00:01:45 von kennwort »
Ich stimm nicht mit allen überein, aber mit vielen und sowieso unterhaltsam -> https://www.youtube.com/channel/UCr9qCdqXLm2SU0BIs6d_68Q

---

Aquí no se respeta ni la ley de la selva.
(Hier respektiert man nicht einmal das Gesetz des Dschungels)

Nicanor Parra, San Fabian, Región del Bio Bio, República de Chile

Offline animate

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.540
  • Uh, I'm just gonna go find a cash machine.
    • LA2
Re: Agenten asynchron starten (mittels Lotusscript)
« Antwort #16 am: 27.08.05 - 23:17:00 »
LMAO! Was geht denn hier ab?

Tut mir leid wenn du dich angegriffen, belehrt und abqualifiziert fühlst, Ralph. Das war nicht die Absicht meines Posts und ich weiß echt nicht, wo du das rausliest.
Ich schreibe, dass ich das Design, dass du entworfen hast, nicht gut finde und nenne dafür auch Gründe. Nicht mehr, nicht weniger.

Zitat
das mag ja richtig sein, aber wenn ich einen Automechaniker frage, wie ich eine Anhängerkupplung an meinen Fiat Panda kriege und dann mit ihm diskutieren muss, ob das überhaupt Sinn macht, dann fänd ich das auch nicht so prickelnd.

Dieser Vergleich hinkt meiner Meinung nach etwas. Ich würde eher sagen, dass ich zu einem Automechaniker gehe und frage, wie ich die Anhängerkupplung an meiner Stoßstange fest mache und er mich darauf hinweist, dass das evtl. nicht so geschickt wäre, weil die Stoßstange abreißen könnte, wenn da zu stark dran gezogen würde.

Ich empfinde, daß hier Selbstgefälligkeit und Ignoranz sich zunehmend verbreitet.
Wohlmeinende Kommentare, die am Thema vorbeigehen, und die eine versteckte
Abqualifikation enthalten, und das als "sachliche Kritik" verkaufen,
verschwenden nur Zeit und Speicherplatz. Das soll "normal" sein?
Also echt, ich weiß nicht, wie du zu diesen Vorwürfen kommst. Das ist schon ziemlich heftig.
Aber keine Bange Ralph. Ich werde nach diesem Post weder deine Zeit noch deinen Speicherplatz jemals wieder verschwenden.
Thomas

Fortunately, I'm adhering to a pretty strict, uh, drug, uh, regimen to keep my mind, you know, uh, limber.

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Agenten asynchron starten (mittels Lotusscript)
« Antwort #17 am: 28.08.05 - 01:00:07 »
Hallo Ralph,

öffentliche Diskussionen, die in Foren logischerweise asynchron laufen, können schon mal aus der Bahn geraten. Dies wird besonders befördert, wenn man nur Teilaspekte des Problems kennt - genau um dieses "Aneinander-vorbei-diskutieren" zu vermeiden, hatte ich ja auch die Fragen dazu penetrant gestellt.
Da ich Urlaub habe (und diesen geniesse), konnte ich nicht zeitnäher antworten. Jetzt aber mein Statement, insofern mir dies derzeit vernünftig möglich erscheint:

1) Du kannst Agents in dem von Dir gewünschten Weg nicht (vernünftig) "asynchron" betreiben. Notes / Domino verfolgt da eine dem entgegenlaufende Strategie: Der AgentManager (Amgr) arbeitet hauptsächlich (server-)lastorientiert, das heisst, der Server wird dem AgentManager einen Slot zuweisen, wenn dies seinem loadbalancing entspricht. Das kannst Du nicht beeinflussen.

2) NotesAgent.Run oder NotesAgent.RunOnServer unterliegen diesem Procedere und sind auf einen return value angewiesen (je nach Umstand "Agent wurde gestartet / nicht gestartet" oder auch "Agent wurde - wie auch immer - beendet". Das heisst: Es muss nicht sein, dass der gestartete Agent auch tatsächlich nicht mehr läuft, wenn Du ein return value von den Methoden bekommst !

3) Du kannst Agents auch via console commands starten (in R5 via API, in R6 auch eher mit Bordmitteln - hierzu gibt es einige Beiträge hier. Weitere Infos auf Anfrage). Aber: Dann hast Du zwar einen "asynchronen Betrieb" mit "Steueragent" und dadurch getriggerten Agents, aber Du besitzt immer noch keine Kontrolle (das bedeutet unter anderem, dass der Steueragent keine Kennung hat über Erfolg oder Misserfolg der von ihm gestarteten Agents, was den Sinn des Steueragents stark in Frage stellt).

4) Auch ich halte das Prinzip "Steueragent ruft weitere Agents auf" für nicht praktikabel oder sinnvoll. Ich würde entweder
- die einzelnen Aktionen in einen Agent packen und je nach Anforderung dort ausführen oder
- die Aktionen in einzelne Agents packen (eher nicht ...)
- Den Agent (oder die Agents) würde ich nicht periodisch starten, sondern bei "Neuen / modifizierten Dokumenten", d.h., wenn ein neues Request-Dokument in meiner DB eingegangen ist, startet der Amgr - sowie er denn Zeit dafür vom Server bekommt - asap meinen Agent, der den Request abarbeitet. So, wie ich Deine Anforderungen derzeit erkennen kann, wäre dies für mich die Methode der Wahl (ich mache dies zumindest in der Regel so).

Ich hoffe, wir sind jetzt wieder auf einer Schiene zur Lösung Deines Problems. Nochmals: Es ist eine interessante Herausforderung !

Bernhard
« Letzte Änderung: 28.08.05 - 02:15:59 von koehlerbv »

Offline flaite

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.966
    • mein del.icio.us
Re: Agenten asynchron starten (mittels Lotusscript)
« Antwort #18 am: 28.08.05 - 01:21:28 »
nein axel. du sagst jetzt nichts  ;D
jeder jeck ist anders. und vielleicht ist das auch normal.
« Letzte Änderung: 28.08.05 - 01:31:22 von kennwort »
Ich stimm nicht mit allen überein, aber mit vielen und sowieso unterhaltsam -> https://www.youtube.com/channel/UCr9qCdqXLm2SU0BIs6d_68Q

---

Aquí no se respeta ni la ley de la selva.
(Hier respektiert man nicht einmal das Gesetz des Dschungels)

Nicanor Parra, San Fabian, Región del Bio Bio, República de Chile

DerRalph

  • Gast
Re: Agenten asynchron starten (mittels Lotusscript)
« Antwort #19 am: 29.08.05 - 20:11:56 »
Hallo Bernhard,

vielen Dank für die ausführliche und fachlich fundierte Antwort.
Einen solchen Beitrag (Punkte 1 bis 3) hatte ich erhofft.

Punkt 4 geht auf die Anwendung ein.
Es kann einfacher sein, eine Frage mit einem skizzierten Hintergrund zu beantworten, aber es hat sich gezeigt, daß der Schwerpunkt in den Kommentaren sich dadurch verlagert hat.
Aber ob abstrakt oder nicht abstrakt besser ist, da will ich nicht streiten.

Für das Abholen existieren Konzepte, wie Du sie in Punkt 4 beschrieben hast.
(Ganz so blöd, wie andere Leute es meinen, sind wir auch nicht.)
Nur, die verschiedenen Varianten müssen bewertet und begründet verworfen werden, so daß ein Irrweg bei der Realisierung möglichst vermieden wird.
Und zu dieser einen Variante ("Agent asynchron starten") fehlte das technische Wissen. Daher meine Anfrage.
Und ... unabhängig von der Anwendung fand ich diese Frage interessant.

Nur noch soviel zur Anwendung (ohne alle Details)
(siehe auch das Ende von meinem ersten Kommentar am 27.08.05):
Die Datenbasis für die Reports ist eine alte Oracle-DB.
Je nach Report (Gesamtbericht Firma, Bericht Region, ...) kann die
Datenaufbereitung 30 Minuten, 40 Minuten und länger dauern.
Daher wird die Datenaufbereitung nach Oracle verschoben
und nicht in Notes erfolgen. Notes dient zur Formulierung der Reportanfrage, deren Transport und Generierung eines Datenaufbereitungsjobs in Oracle.
Nach Abarbeitung eines Jobs "weiß" Oracle, daß ein Report weiterbearbeitet werden kann. Oracle könnte den Report fertigstellen und an den anfragenden Anwender zurückschicken.
Aber das ist mit dieser alten Version, den Bordmitteln und anderen
nicht weiter erwähnten Beschränkungen bislang nicht gelungen.
Das trifft auch auf das Schreiben eines "Hallo, da ist was fertig"-Dokumentes in eine Notes-DB durch Oracle zu.
(Es gibt Beschränkungen, die nicht aufgebrochen werden können!)
Daraus folgt, daß Notes momentan aktiv in Oracle nachschauen muß,
ob die Datengenerierung für einen oder mehrere Reports erfolgt ist.
Wenn ja, wird unter Zuhilfenahme von Crystal Reports der Report generiert und an den anfragenden Anwender geschickt.

Nochmals vielen Dank.

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz