AtNotes Übersicht Willkommen Gast. Bitte einloggen oder registrieren.
24.05.12 - 19:27:24
Übersicht Hilfe Regeln Glossar Suche Einloggen Registrieren
News:
Schnellsuche:
+  Das Notes Forum
|-+  Lotus Notes / Domino 7
| |-+  ND7: Entwicklung (Moderatoren: eknori, Glombi, koehlerbv)
| | |-+  "db.CreateCopy" ohne aktivierte Agenten?
« vorheriges nächstes »
Seiten: [1] Nach unten Drucken
Autor Thema: "db.CreateCopy" ohne aktivierte Agenten?  (Gelesen 759 mal)
Jens_1
Senior Mitglied
****
Offline Offline

Geschlecht: Männlich
Beiträge: 417


« am: 22.06.09 - 11:10:30 »

Hallo NG,

ich habe einen periodischen Agenten erstellt der mir von der Datenbank in welcher er läuft eine (zunächst leere) Kopie erstellt.
Nun ist mir aufgefallen, daß bei diesem Vorgang aktivierte Agenten in der Kopie ebenfalls aktiviert sind und versuchen auf dem Server loszulaufen. Damit "vermehrt" sich der Agent solange, bis der Server schlimmstenfalls irgendwann mangels Ressource steht.

Wie kann ich verhindern, das die Agenten aktiviert übernommen werden? In der Beschreibung der CreateCopy-Methode habe ich nichts dazu gefunden.

Ich könnte natürlich auch mit der Remove-Methode oder der IsEnabled-Eigenschaft der NotesAgent Klasse arbeiten - aber ich könnte damit auf die Nase fallen weil der Agent in der Datenbankkopie schneller los läuft als er durch das Script deaktiviert wird.

Wie könnte die beste Vorgehensweise aussehen?

Gruß
Jens
« Letzte Änderung: 24.06.09 - 11:12:51 von Jens_1 » Gespeichert

CLP Domino R5 System Administrator
CLP IBM Lotus Domino 6 System Administrator
CLP IBM Lotus Domino 7 System Administrator
IBM Certified System Administrator - Lotus Notes and Domino 8
jBubbleBoy
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 717



« Antworten #1 am: 22.06.09 - 11:22:03 »

Ist ja eine komische Konstellation, ist das etwa ein Notesvirus Wink

Deaktiviere doch einfach den Agent vor dem Kopieren.
Gespeichert

Gruss Erik :: Freelancer :: Notes, Java und Web
--
Nur ein toter Bug, ist ein guter Bug!
Driri
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 6138



WWW
« Antworten #2 am: 22.06.09 - 11:31:19 »

Warum arbeitest Du nicht mit Templates ?
Gespeichert

Gruß, Ingo
------------------------------------------------------------
11 Domino-Server (8.5.3 auf i5 und Windows)
2500 Notes 8.0.2, 100 Notes 6.5

IBM Content Manager / Content Collector für Mailarchivierung
ClearSwift Appliance (Anti-Spam, Anti-Virus)
Axceler NOTRIX

iAnywhere MobileOffice 5.7, in Ablösung
ca. 320 Smartphones (SymbianOS)

Lotus Notes Traveler 8.5.3
ca. 300 Smartphones (Android)
Jens_1
Senior Mitglied
****
Offline Offline

Geschlecht: Männlich
Beiträge: 417


« Antworten #3 am: 22.06.09 - 11:56:41 »

Ist ja eine komische Konstellation, ist das etwa ein Notesvirus Wink

Deaktiviere doch einfach den Agent vor dem Kopieren.

Eine Idee auf die ich zwischenzeitig auch schon gekommen bin.
Wenn's denn keinen eleganteren Weg gibt....

Ich müsste dann auslesen welche Agenten gerade aktiviert sind, diese deaktivieren und dann wieder aktivieren.
Bissi umständlich....  Sad

Gruß
Jens
Gespeichert

CLP Domino R5 System Administrator
CLP IBM Lotus Domino 6 System Administrator
CLP IBM Lotus Domino 7 System Administrator
IBM Certified System Administrator - Lotus Notes and Domino 8
Jens_1
Senior Mitglied
****
Offline Offline

Geschlecht: Männlich
Beiträge: 417


« Antworten #4 am: 22.06.09 - 11:59:21 »

Warum arbeitest Du nicht mit Templates ?

Hallo Ingo,

zum einen weil in der Organisation in der ich tätig bin keine Templates auf den Servern liegen sollen (weiss auch nicht was der Schwachsinn soll.....) und zum anderen werden so Änderungen am Design der Ursprungsdatenbank in die Kopie übernommen.

Gruß
Jens
Gespeichert

CLP Domino R5 System Administrator
CLP IBM Lotus Domino 6 System Administrator
CLP IBM Lotus Domino 7 System Administrator
IBM Certified System Administrator - Lotus Notes and Domino 8
klauss
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 5141


.. ich liebe meinen Job...


WWW
« Antworten #5 am: 22.06.09 - 12:02:50 »

Evtl hiermit ? :

Zitat
So deaktivieren Sie alle Agenten in einer Datenbank
  1.   Wählen Sie "Datei - Datenbank - Eigenschaften".
  2.   Wählen Sie im Register "Datenbank allgemein" die Option "Hintergrund-Agenten für diese Datenbank deaktivieren".
Hinweis  Wenn Sie Agenten in der InfoBox "Eigenschaften: Datenbank" deaktivieren, werden die Agenten nicht neu signiert und der Status "Aktivieren/Deaktivieren" der einzelnen Agenten wird nicht geändert. Wenn Sie diese Option deaktivieren, werden nicht notwendigerweise alle Agenten aktiviert. Es werden lediglich die bereits aktivierten Agenten ausgeführt.

Ich weiß jetzt nicht, ob man das per Script machen kann.
Gespeichert

klaus

Operative Hektik ist ein Zeichen von geistiger Windstille.
Die Klugen leben von den Dummen, die Dummen von der Arbeit.
Nur Kinder und einfache Leute mögen lebhafte Farben. (Goethe)
Männer sind primitiv, aber glücklich.
Frauen widerspricht man nicht - man wartet, bis sie es selbst tun.
Demokratie ist, wenn drei Wölfe und ein Schaf entscheiden, was
gefressen werden soll.
Jens_1
Senior Mitglied
****
Offline Offline

Geschlecht: Männlich
Beiträge: 417


« Antworten #6 am: 22.06.09 - 12:22:44 »

Evtl hiermit ? :

Zitat
So deaktivieren Sie alle Agenten in einer Datenbank
  1.   Wählen Sie "Datei - Datenbank - Eigenschaften".
  2.   Wählen Sie im Register "Datenbank allgemein" die Option "Hintergrund-Agenten für diese Datenbank deaktivieren".
Hinweis  Wenn Sie Agenten in der InfoBox "Eigenschaften: Datenbank" deaktivieren, werden die Agenten nicht neu signiert und der Status "Aktivieren/Deaktivieren" der einzelnen Agenten wird nicht geändert. Wenn Sie diese Option deaktivieren, werden nicht notwendigerweise alle Agenten aktiviert. Es werden lediglich die bereits aktivierten Agenten ausgeführt.

Ich weiß jetzt nicht, ob man das per Script machen kann.

Das wäre der Jackpot! Mal schauen ob sich was in der Hilfe findet....

Gruß
Jens
Gespeichert

CLP Domino R5 System Administrator
CLP IBM Lotus Domino 6 System Administrator
CLP IBM Lotus Domino 7 System Administrator
IBM Certified System Administrator - Lotus Notes and Domino 8
Driri
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 6138



WWW
« Antworten #7 am: 22.06.09 - 13:43:15 »

Das geht leider nicht per Script. Wenn überhaupt dann nur per API.

Siehe auch :

What are the database properties that you cannot modify?

Is there a way to programmatically change Database Properties for a Lotus Notes/Domino database?
Gespeichert

Gruß, Ingo
------------------------------------------------------------
11 Domino-Server (8.5.3 auf i5 und Windows)
2500 Notes 8.0.2, 100 Notes 6.5

IBM Content Manager / Content Collector für Mailarchivierung
ClearSwift Appliance (Anti-Spam, Anti-Virus)
Axceler NOTRIX

iAnywhere MobileOffice 5.7, in Ablösung
ca. 320 Smartphones (SymbianOS)

Lotus Notes Traveler 8.5.3
ca. 300 Smartphones (Android)
Jens_1
Senior Mitglied
****
Offline Offline

Geschlecht: Männlich
Beiträge: 417


« Antworten #8 am: 22.06.09 - 14:28:26 »


Yepp - das habe ich mir auch schon gedacht weil die Datenbankklasse nichts entsprechendes hergegeben hat.
Ich bastele mir jetzt gerade eine Schleife zusammen die mir alle Agenten mit der Eigenschaft "Trigger = 1" herausgibt und werde versuchen die dann in ein Array zu speichern welches dann wieder ausgelsen werden soll.
Da ich in erster Linie Admin bin und nur "Hobby"-Programmierer fordert mich das allerdings ganz gut. Insofern wäre mir der eine Schalter natürlich lieber gewesen...  Wink Grin

Gruß
Jens
Gespeichert

CLP Domino R5 System Administrator
CLP IBM Lotus Domino 6 System Administrator
CLP IBM Lotus Domino 7 System Administrator
IBM Certified System Administrator - Lotus Notes and Domino 8
Glombi
Global Moderator
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 8401


WWW
« Antworten #9 am: 22.06.09 - 14:33:52 »

Wir leben ja in modernen Zeiten und es geht mit XML, siehe

http://atnotes.de/index.php/topic,28927.0.html

XML database property: allowbackgroundagents


Oder mit der OpenNTF Library.

Andreas
Gespeichert

IBM Certified Application Developer - Lotus Notes and Domino 8
Glombitza Informations-Systeme ist nun Teamstudio Bronze Partner!
Ihr interessiert Euch für Teamstudio Produkte, Spam-Lösungen, Antiviren-Lösungen oder Lotus Notes Lizenzen? Dann einfach Mail oder PM an mich!
Driri
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 6138



WWW
« Antworten #10 am: 22.06.09 - 15:39:32 »

Wieder was gelernt. Danke Glombi  Wink
Gespeichert

Gruß, Ingo
------------------------------------------------------------
11 Domino-Server (8.5.3 auf i5 und Windows)
2500 Notes 8.0.2, 100 Notes 6.5

IBM Content Manager / Content Collector für Mailarchivierung
ClearSwift Appliance (Anti-Spam, Anti-Virus)
Axceler NOTRIX

iAnywhere MobileOffice 5.7, in Ablösung
ca. 320 Smartphones (SymbianOS)

Lotus Notes Traveler 8.5.3
ca. 300 Smartphones (Android)
Jens_1
Senior Mitglied
****
Offline Offline

Geschlecht: Männlich
Beiträge: 417


« Antworten #11 am: 24.06.09 - 09:42:31 »

Hallo!

Da ich mich mit Schleifen und Array mangels Praxis immer etwas schwer tue habe ich die Herausforderungs sportlich gesehen und mit Erfolg versucht das ganze zu lösen.

Das ist dabei herausgekommen und über Hinweise auf elegantere Wege freue ich mich.

Gruß
Jens


Zitat
Sub Initialize
   Dim session As New NotesSession      ' aktuelle Sitzung
   Dim db As NotesDatabase                  ' Datenbank in der das Script läuft
   Dim count As Integer                        ' Zähler für die Schleife zum Auslesen der Agenten
   Dim agname () As String                  ' Array mit den Namen der Agenten
   
   Set db = session.CurrentDatabase
   count = 0
   
   ' Namen der Agenten auslesen und im Array "agname" speichern   
   Forall a In db.Agents
      If a.trigger = 1 Then
         If a.IsEnabled = True Then
            Redim Preserve agname(count)
            agname(count) = a.name
            count = count + 1
         End If
      End If
   End Forall   
   
   ' Wenn das Array leer ist, also keine Agenten aktiviert waren dann aussteigen
   If count  = 0 Then
      Print " Keine Agenten deaktiviert..."
      Exit Sub
   End If
   
   ' Agenten deaktivieren
   Forall a In db.Agents
      If Not Isnull (Arraygetindex (agname, a.name)) Then
         a.isenabled = False
         Call a.save
         Print a.name & " deaktiviert"
      End If
   End Forall
   
   ' Agenten aktivieren
   Forall a In db.Agents
      If Not Isnull (Arraygetindex (agname, a.name)) Then
         a.isenabled = True
         Call a.save
         Print a.name & " aktiviert"
      End If
   End Forall
   
End Sub
Gespeichert

CLP Domino R5 System Administrator
CLP IBM Lotus Domino 6 System Administrator
CLP IBM Lotus Domino 7 System Administrator
IBM Certified System Administrator - Lotus Notes and Domino 8
Seiten: [1] Nach oben Drucken 
« vorheriges nächstes »
Gehe zu:  


Einloggen mit Benutzername, Passwort und Sitzungslänge

Powered by MySQL Powered by PHP Powered by SMF 1.1.16 | SMF © 2006, Simple Machines Prüfe XHTML 1.0 Prüfe CSS
Impressum Atnotes.de - Powered by Syslords Solutions - Datenschutz | Partner: Tinte / Toner günstig