Autor Thema: LS --> Agent durch Agent starten  (Gelesen 3718 mal)

Offline Charly77

  • Junior Mitglied
  • **
  • Beiträge: 89
  • Geschlecht: Männlich
LS --> Agent durch Agent starten
« am: 03.01.07 - 16:57:16 »
Moin Moin!

Dringlichkeit: "Ist nur ein Test und nicht überlebenswichtig, sozusagen >Nice to know<"

Folgende Lage: "Ich versuche auf einem Domino 5 Server mehrere Script-Agenten durch einen anderen Script-Agenten zum laufen zu bringen."

Hintergrund:
1. "Es sollen nicht immer alle Agenten als "periodisch" laufen(unübersichtlich)"
2. Es sind nur bestimmte DB betroffen (hier im Ordner "Test" auf dem Test-Server)
3. Alle Agenten sollen hier "dynamisch" gestartet werden können (DB mit betroffenen Agent in den Ordner repilzieren, fertig"


Bisheriges Ergebnis:
1. Wenn ich den Agenten per Hand starte, funktioniert alles wunderbar.
2. Sobald der Agent "periodisch" läuft, werden die anderen Agenten, die er "anschubst" nicht ausgeführt.
3. Das Protokoll des "periodischen" Agenten sagt "Script ohne Fehler ausgeführt"
4. Die Protokolle der anderen Agenten sagen "Nüx gemacht"
5. Der Server hat auf alle DB "Manager"-Zugriff, um diesen Fehler schon mal auszuschliessen

Hier der Code (Scriptbibliothek)

Ich habe mir in der "catalog.nsf" eine Ansicht gebastelt, aus der ich die Namen der betroffenen Datenbänke auslese.

Code
Function Agenten_starten
Dim se As New NotesSession
Dim db As NotesDatabase
Dim db2 As NotesDatabase
Dim view As NotesView
Dim doc As NotesDocument
Dim agent As NotesAgent

Set db = se.GetDatabase("Test-Server", "catalog.nsf")
Set view = db.GetView("test")
Set doc = view.GetFirstDocument
	
While Not doc Is Nothing
	Pfad = doc.GetItemValue("Pathname")
	Titel = doc.GetItemValue("Title")
	L1 = Len(Pfad(0))
	L2 = L1 - 12
	
	db_Name = Right(Pfad(0), L2)
	Set db2 = se.GetDatabase("Test-Server", Cstr(db_Name))
	Gosub agent
	
	Set doc = view.GetNextDocument(doc)
Wend
	
Goto ende
	
agent:
Call db2.Open( "Test-Server", "Test\"+Cstr(db_Name) )
Set agent = db2.GetAgent("(Testagent2)")
If agent.Run = 0 Then
Print "Agent ohne Fehler ausgeführt!"
Else
Print "Agent wurde abgebrochen!"
End If
Call db2.close
Return
	
ende:	
End Function
« Letzte Änderung: 04.01.07 - 15:47:49 von Charly77 »
MFG Charly

Domino 5.0.11
Client 5.0.9a
Domino 8.5.3 + ext lib
Client 8.5.3 + ext lib

Driri

  • Gast
Re: LS --> Agent durch Agent starten
« Antwort #1 am: 03.01.07 - 17:03:49 »
Auf was für einen Ausführungstyp sind denn die anderen Agenten gestellt ?

Ich meine die müssen periodisch sein, damit die von einem anderen Agenten aus aufgerufen werden können.

Offline Charly77

  • Junior Mitglied
  • **
  • Beiträge: 89
  • Geschlecht: Männlich
Re: LS --> Agent durch Agent starten
« Antwort #2 am: 04.01.07 - 08:39:06 »
Moin Diri,

die anderen stehen auf "Manuell aus der Liste der Agenten",
dass war auch so beabsichtigt weil diese halt nicht periodisch laufen sollen, es sei denn der eine "Master-Agent" läuft und schubst diese an.

P.s.: Wenn ich den Master-Agenten manuell ausführe funktioniert das aufrufen der anderen einwandfrei.

Ich werde "periodisch" mal ausprobieren!
MFG Charly

Domino 5.0.11
Client 5.0.9a
Domino 8.5.3 + ext lib
Client 8.5.3 + ext lib

Offline m3

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.102
  • Geschlecht: Männlich
  • Non ex transverso sed deorsum!
    • leyrers online pamphlet
Re: LS --> Agent durch Agent starten
« Antwort #3 am: 04.01.07 - 09:12:16 »
Auf einem 6er-Server funktioniert das wunderbar - die aufgerufenen Agenten sind zwar auf "periodisch" eingestellt, aber deaktiviert.

1) Bau mal ein paar "Print" Statements in die anderen Agents ein, damit Du im Log siehst, ob sie gestartet wurden.

2) Call db2.Open( "Test-Server", "Test\"+Cstr(db_Name) )
Das würde ich durch ein
Code
erg = db2.Open( "Test-Server", "Test\"+Cstr(db_Name) )
if( not erg) Then
...
ersetzen.

3) Set agent = db2.GetAgent("(Testagent2)")
Das würde ich durch ein
Code
Set agent = db2.GetAgent("(Testagent2)")
If Not(agent Is Nothing) Then
...
ersetzen.
HTH
m³ aka. Martin -- leyrers online pamphlet | LEYON - All things Lotus (IBM Collaborations Solutions)

All programs evolve until they can send email.
Except Microsoft Exchange.
    - Memorable Quotes from Alt.Sysadmin.Recovery

"Lotus Notes ist wie ein Badezimmer, geht ohne Kacheln, aber nicht so gut." -- Peter Klett

"If there isn't at least a handful of solutions for any given problem, it isn't IBM"™ - @notessensai

Driri

  • Gast
Re: LS --> Agent durch Agent starten
« Antwort #4 am: 04.01.07 - 09:18:40 »
Ich kann mich dunkel erinnern, daß ich so ein Problem auch schon mal hatte. Ich habe dann die aufzurufenden Agenten auf "Periodisch : Nie" gestellt und dann funktionierte das auch.

Offline Charly77

  • Junior Mitglied
  • **
  • Beiträge: 89
  • Geschlecht: Männlich
Re: LS --> Agent durch Agent starten
« Antwort #5 am: 04.01.07 - 10:27:51 »
Hab die Agenten nun auf "Periodisch: Nie" laufen, bekomme aber das gleiche Ergebnis ...

Die nun eingebauten Print-Statements zur Kontrolle in den anderen Agenten erscheinen auch nicht auf der Konsole, der einzige Agent der ausgeführt wird ist mein Master-Agent, und das ohne Fehler.

Aber manuell funktioniert das alles wieder wunderbar.
MFG Charly

Domino 5.0.11
Client 5.0.9a
Domino 8.5.3 + ext lib
Client 8.5.3 + ext lib

Offline m3

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.102
  • Geschlecht: Männlich
  • Non ex transverso sed deorsum!
    • leyrers online pamphlet
Re: LS --> Agent durch Agent starten
« Antwort #6 am: 04.01.07 - 14:35:12 »
Laufen alle Agenten auf ein und demselben Server, oder sind sie auf mehrere Verteilt?
IIRC gabs da eine Einschränkung unter R5.
HTH
m³ aka. Martin -- leyrers online pamphlet | LEYON - All things Lotus (IBM Collaborations Solutions)

All programs evolve until they can send email.
Except Microsoft Exchange.
    - Memorable Quotes from Alt.Sysadmin.Recovery

"Lotus Notes ist wie ein Badezimmer, geht ohne Kacheln, aber nicht so gut." -- Peter Klett

"If there isn't at least a handful of solutions for any given problem, it isn't IBM"™ - @notessensai

Offline Charly77

  • Junior Mitglied
  • **
  • Beiträge: 89
  • Geschlecht: Männlich
Re: LS --> Agent durch Agent starten
« Antwort #7 am: 04.01.07 - 14:41:37 »
Laufen alle auf dem selben Server.

Ich frage mich schon die ganze Zeit warum das alles manuell funktioniert,
ich starte ja schliesslich auch "nur" den Masteragenten der dann ohne Fehler durchrauscht. Allerdings dann rauschen die anderen mit.

Alle Scripts wurden aufs Backend geschnitzt.


Meine Alternative wäre, den Master-Agenten täglich/wöchentlich(je nach Bedarf) einmal von Hand zu starten.
MFG Charly

Domino 5.0.11
Client 5.0.9a
Domino 8.5.3 + ext lib
Client 8.5.3 + ext lib

Offline m3

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.102
  • Geschlecht: Männlich
  • Non ex transverso sed deorsum!
    • leyrers online pamphlet
Re: LS --> Agent durch Agent starten
« Antwort #8 am: 04.01.07 - 14:46:53 »
Ich würd mal
1) Das von mir oben angesprochene Error-Handling einbauen
2) Das Agent-Logging ein bissl höher drehen.
HTH
m³ aka. Martin -- leyrers online pamphlet | LEYON - All things Lotus (IBM Collaborations Solutions)

All programs evolve until they can send email.
Except Microsoft Exchange.
    - Memorable Quotes from Alt.Sysadmin.Recovery

"Lotus Notes ist wie ein Badezimmer, geht ohne Kacheln, aber nicht so gut." -- Peter Klett

"If there isn't at least a handful of solutions for any given problem, it isn't IBM"™ - @notessensai

Offline Charly77

  • Junior Mitglied
  • **
  • Beiträge: 89
  • Geschlecht: Männlich
Re: LS --> Agent durch Agent starten
« Antwort #9 am: 04.01.07 - 15:46:57 »
Hab eine Lösung!!

Ich habe nun alle Scripte in den Master-Agenten gebracht.
Nun läuft das alles so wie es soll, und ich erspare mir als Nebeneffekt noch die zusätzlichen Agenten in allen Datenbanken.

Danke euch allen für die Unterstützung!
MFG Charly

Domino 5.0.11
Client 5.0.9a
Domino 8.5.3 + ext lib
Client 8.5.3 + ext lib

Offline m3

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.102
  • Geschlecht: Männlich
  • Non ex transverso sed deorsum!
    • leyrers online pamphlet
Re: LS --> Agent durch Agent starten
« Antwort #10 am: 04.01.07 - 15:50:56 »
Das ist keine Lösung, das ist ein Workaround.
HTH
m³ aka. Martin -- leyrers online pamphlet | LEYON - All things Lotus (IBM Collaborations Solutions)

All programs evolve until they can send email.
Except Microsoft Exchange.
    - Memorable Quotes from Alt.Sysadmin.Recovery

"Lotus Notes ist wie ein Badezimmer, geht ohne Kacheln, aber nicht so gut." -- Peter Klett

"If there isn't at least a handful of solutions for any given problem, it isn't IBM"™ - @notessensai

Glombi

  • Gast
Re: LS --> Agent durch Agent starten
« Antwort #11 am: 04.01.07 - 15:55:35 »
Meine Vermutung ist, dass es am

Call db2.Open( "Test-Server", "Test\"+Cstr(db_Name) )


liegt. In R5 kann man keine Agenten auf einem "anderen" Server öffnen. Und woher soll der Server wissen, dass "Test-Server" er selbst ist  ;)

Also stattdessen:
Call db2.Open( "", "Test\"+Cstr(db_Name) )


Andreas

Offline Charly77

  • Junior Mitglied
  • **
  • Beiträge: 89
  • Geschlecht: Männlich
Re: LS --> Agent durch Agent starten
« Antwort #12 am: 04.01.07 - 16:59:06 »
Hab das ganze nochmals ausprobiert, auch bei ...

Call db2.Open( "", "Test\"+Cstr(db_Name) )

... hatte ich grade keinen Erfolg zu verbuchen.

Ich schlaf da nochmal 1-2 Nächte drüber, bis dahin werde ich meinen komletten Master-Agenten mit allen enthaltenen Scripten benutzen.

Falls ich noch eine Lösung für den anderen Weg finde, werd ich das hier posten.

Dank an euch alle!
MFG Charly

Domino 5.0.11
Client 5.0.9a
Domino 8.5.3 + ext lib
Client 8.5.3 + ext lib

Offline m3

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.102
  • Geschlecht: Männlich
  • Non ex transverso sed deorsum!
    • leyrers online pamphlet
Re: LS --> Agent durch Agent starten
« Antwort #13 am: 04.01.07 - 17:43:33 »
Zum dritten und letzten mal: Bau eine Fehlerabfrage ein!
HTH
m³ aka. Martin -- leyrers online pamphlet | LEYON - All things Lotus (IBM Collaborations Solutions)

All programs evolve until they can send email.
Except Microsoft Exchange.
    - Memorable Quotes from Alt.Sysadmin.Recovery

"Lotus Notes ist wie ein Badezimmer, geht ohne Kacheln, aber nicht so gut." -- Peter Klett

"If there isn't at least a handful of solutions for any given problem, it isn't IBM"™ - @notessensai

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz