Domino 9 und frühere Versionen > Entwicklung
Agenten asynchron starten (mittels Lotusscript)
flaite:
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
animate:
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.
--- Ende Zitat ---
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.
--- Zitat von: DerRalph am 27.08.05 - 14:07:40 ---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?
--- Ende Zitat ---
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.
koehlerbv:
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
flaite:
nein axel. du sagst jetzt nichts ;D
jeder jeck ist anders. und vielleicht ist das auch normal.
DerRalph:
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.
Navigation
[0] Themen-Index
[#] Nächste Seite
[*] Vorherige Sete
Zur normalen Ansicht wechseln