Autor Thema: Java Agent  (Gelesen 3470 mal)

Offline vago145

  • Frischling
  • *
  • Beiträge: 4
Java Agent
« am: 15.03.05 - 16:31:14 »
Hallo Zusammen,
ich versuche in Lotus Notes einen Agenten zu schreiben, der die java Timer klasse benutzen soll. Dabei soll nach 1 minute eine text in der java konsole angezeigt werden. hat einer Ahnung wie ich es machen soll?

Danke

vago :-\

Marinero Atlántico

  • Gast
Re: Java Agent
« Antwort #1 am: 15.03.05 - 16:42:31 »
nö.
Aber poste einfach mal deinen source code. Vielleicht können wir das dann rausfinden. Ich bin aber zur Zeit wieder mal sehr beschäftigt.
Und so ist das ein Stochern im Nebel.

Offline vago145

  • Frischling
  • *
  • Beiträge: 4
Re: Java Agent
« Antwort #2 am: 15.03.05 - 16:50:45 »
Hi,
erst vielen Dank für die schnelle Antwort.
Bei
timer.schedule( new Task(), 2000 );
wird keine Text ausgegeben.

Ich muss auf jeden Fall "extends AgentBase" benutzen, da ich info's von einem Document bekomme.


Hier ist der Code:



package com.vago;

import lotus.domino.*;
import java.util.*;

public class TimerTaskZM extends AgentBase
{

   public void NotesMain()
   {
      try
      {
         Session session = getSession();
         AgentContext agentContext = session.getAgentContext();
         
         System.out.println( "Begin" );
         Timer timer = new Timer();
         System.out.println( "1" );
             // nach 2 Sek geht's los
             timer.schedule( new Task(), 2000 );
             System.out.println( "2" );
             // nach 1 Sek geht's los und dann alle 5 Sekunden
             System.out.println( "3" );
             timer.schedule( new Task(), 1000, 60000 );
             System.out.println( "4" );
         System.out.println( "End" );
         

      } catch(Exception e) {
         e.printStackTrace();
      }
   }
}

class Task extends TimerTask
{
   public void run()
     {
          System.out.println( "Make my day." );
     }
}

« Letzte Änderung: 15.03.05 - 16:54:22 von vago145 »

Marinero Atlántico

  • Gast
Re: Java Agent
« Antwort #3 am: 15.03.05 - 17:23:55 »
Frage: Was soll das?
So sieht das für mich aus.
Du startest einen Agenten.
Von diesem Agenten startest du einem Timer.
Der Timer soll soll eine Art Task schedulen und managen.
Der Agent selber soll eigentlich quasi nie beendet werden (oder liege ich da falsch)?
Falls ich da nicht falsch liege, halte ich das für architektonisch unsinnig und nicht machbar.
Unsereiner ist froh, wenn er sicher sagen kann, dass ein NotesAgent kein Memory Leak generiert, wenn er normal durchläuft.

Notes Agenten haben doch schon einen scheduling Mechanismus.
Warum programmierst du da einen eigenen rein.
Meine Vermutung ist, dass mit dem Absterben des parentThreads in NotesMain() --> am Ende der Methode, auch der child-Thread stirbt.
Wenn ich Zeit habe, werde ich das nochmal prüfen.
Ich hab Timer noch nie benutzt. Ich nehme quartz zum schedulen von Java Prozessen.
.... aber bestimmt nicht aus Notes-Agenten  :o


Axel
« Letzte Änderung: 15.03.05 - 17:32:01 von Marinero Atlántico »

Offline vago145

  • Frischling
  • *
  • Beiträge: 4
Re: Java Agent
« Antwort #4 am: 15.03.05 - 17:33:47 »
Hallo Axel,

Mein Problem ist es.
In einem Workflow, nach der Genehmigung soll zu erst ein XML-Datei erzeugt werden. Nach einer Minute (nach dem 1 XML-File erzeugt wurde) soll ein 2 XML-File erzeugt werden.
Meine Lösung ist es:
Nach dem der 1 XML erzeugt wude (über querysave der Maske) wird dieser Agent gestartet und nach einer Minute die 2 XML-File erzeugt.

Wenn Du eine Bessere Lösung hast, höre ich es gerne.

Danke

vago
« Letzte Änderung: 15.03.05 - 17:38:47 von vago145 »

Marinero Atlántico

  • Gast
Re: Java Agent
« Antwort #5 am: 15.03.05 - 17:44:34 »
Ich würde das als 2 stufigen Workflow machen.
Im querysave wird das 1. xml Dokument erzeugt.
Ist das erfolgreich, wird am Ende des querysave ein Feld "flagZweitesXMLDokumentErzeugen" auf "1" gesetzt.

Du hast dann eine Ansicht mit der Ansichtsformel (Select form="kindOfForm" & flagZweitesXMLDokumentErzeugen="1").
Alle 5 Minuten läuft über dieses Dokument ein Agent, der aus sämtlichen in der Ansicht vorhandenen Dokumenten das zweite XML Dokument erzeugt und den Wert von flagZweitesXMLDokumentErzeugen auf "2" setzt.

Für flagZweitesXMLDokumentErzeugen nimmt man besser einen kürzeren Namen.

Axel


Offline vago145

  • Frischling
  • *
  • Beiträge: 4
Re: Java Agent
« Antwort #6 am: 15.03.05 - 17:47:28 »
Wie soll der Agent aussehen, der alle 5 Minuten läuft ? und was passiert wenn nach 1/2 minuten bevor der Agent läuft noch ein Dokument Genehmigt wird? dann wird die 2 XML-File nach 1/2 Minuten erzeugt oder?
« Letzte Änderung: 15.03.05 - 17:51:54 von vago145 »

Marinero Atlántico

  • Gast
Re: Java Agent
« Antwort #7 am: 15.03.05 - 18:04:54 »
Wie soll der Agent aussehen, der alle 5 Minuten läuft ?
Kannst du in "Wann soll der Agent ausgeführt werden" eintragen. Es gibt in Domino zeitgesteuerte Agenten.

und was passiert wenn nach 1/2 minuten bevor der Agent läuft noch ein Dokument Genehmigt wird? dann wird die 2 XML-File nach 1/2 Minuten erzeugt oder?
Zitat
Es dauert jedenfalls eine Weile bis der Prozess abgeschlossen ist. Jedoch sollte es in aller Regel akzeptable sein.

Oder warum erzeugst du nicht direkt im Querysave das zweite xml File. Erst das erste xml File. Und wenn das fertig ist das zweite xml File.
Jedenfalls brauchst du sicher nicht mit Java Scheduling zu operieren.

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz