Aller au contenu principal

Session wird nach 20min beendet; Importer läuft nicht durch

Commentaires

9 commentaires

  • Zendesk API User
    Author: gockel - 5/29/2012 12:28

    Das Modul erzeugt ganz am Anfang eine Connection mit dem User pim

    Wie wird die Connection in diesem Modul aufgebaut?

    Warum wird hier nicht die benutzerdefinierte Connection aus dem Auftragsskript verwendet?

    0
  • Zendesk API User
    Author: lmeric - 5/29/2012 12:38

    Hallo.

    Connection wird in einer Executable-Klasse (über import wird die Klasse im Script bekanntgegeben) wie folgt aufgebaut:

    ScheduleContext selectedContext = (ScheduleContext) map.get("context");

    long contextProjectID = selectedContext.getProject().getId();

    con = ConnectionManager.getConnection("localhost", 8000, ConnectionManager.HTTP_MODE, "admin", "admin");

    con.connect();

    Project project = con.getProjectById(contextProjectID);

    usw.

    Wobei user/pass zuvor über ein Service (Properties-Datei im Module-Ordner) gezogen wurde.

    Wenn es über die benutzerdefinierte Connection aus dem Auftragsskript geht, dann stellt das kein Problem dar, dies so umzubauen.

    Danke und Gruß

    0
  • Zendesk API User
    Author: lmeric - 6/12/2012 9:50

    Hallo.

    Wollte kurz die Info durchgeben, dass die benutzerdefinierte Connection mit Angabe eines Users geholfen hat.

    Die Connection wird nicht nach 20min beendet.

    Ich frage mich nur, warum dies nicht auch so geht und die Connection intern öffnet. Der einzige Unterschied ist, dass das Script den Usernamen und Passwort intern holt und eine Connection aufbaut.

    Gruß

    0
  • Zendesk API User
    Author: Peter_Jodeleit - 6/19/2012 11:41

    Unsere QS konnte übrigens den Fehler nicht nachstellen. Entweder das tritt in der aktuellen FirstSpirit-Version (4.2.468) nicht mehr auf, oder bei euch spielen noch andere Faktoren hinein.

    0
  • Zendesk API User
    Author: king - 9/17/2012 13:56

    Hallo Peter,

    das Problem tritt genauso auch unter FS 4.2 R4 468 auf. Wir haben den Fall, bei dem wir genau das auch in einem Modul versuchen, was "Levent Meric" hier vor hat. Bei uns allerdings MUSS es eine explizite Verbindung sein, die SCHREIBEND auf den PAGESTORE aus einem Auftrag (enthält eine EXECUTABLE-CLASS, die das Modul ruft) heraus zugreift. Würden wir mit der gegenwärtigen Verbindung arbeiten, wären wir nur read-only unterwegs (s. auch Thread: https://community.e-spirit.com/message/8271#8271).

    Könnten wir lesend mit der Verbindung arbeiten, wäre dies - wie oben als Alternative vorgeschlagen - kein Problem, eine benutzerdefinierte Connection zu verwenden.

    Da wir jedoch Manipulationen - hier mit einer Admin-Verbindung - vornehmen müssen, brauchen wir eine explizite neue Verbindung. Leider fliegt uns diese genau nach 20 Minuten weg. Und das obwohl wir mit dieser Verbindung die Rekursion durch den PageStore durchführen.

    Habt Ihr  noch ne Idee? Ein HelpDesk-Ticket zu dem Problem existiert bereits (Help-20120913-693).

    0
  • Zendesk API User
    Author: Peter_Jodeleit - 9/18/2012 10:22

    Wenn die Connection wie von Levent beschrieben selber über den ConnectionManager aufgebaut wird, aber die Verbindung "lokal" ist, wird die Verbindung automatisch nach einem Timeout geschlossen (20 Minuten).

    Wenn im Auftrag die benutzerdefinierte Connection benutzt wird, sollte es nicht zu einem Timeout kommen. Das hat Levent ja auch bestätigt. Diese Connection kann dann auch schreibend benutzt werden.

    Das Thema ist auch in der Doku ausführlich beschrieben (Seite 382ff).

    Wenn unbedingt über den ConnectionManager gegangen werden muss, sollte als Workaround ein regelmässiger Aufruf von "isConnected()" helfen.

    0
  • Zendesk API User
    Author: king - 9/19/2012 9:09

    Hallo Peter,

    der Weg über die benutzerdefinierte Connection - wie in Kapitel 7.5.9.4.1 der FirstSpirit Admin-Doku beschrieben - klappte. Hier kam es nicht zu einer:

    de.espirit.firstspirit.access.InvalidSessionException

    Bleibt die Frage, warum der Weg über den ConnectionManager und einer privilegierte Verbindung über den Admin-Benutzer selbst dann zur InvalidSessionException nach 20 Minuten führte, wenn - wie empfohlen - die Methode "isConnected()" gerufen wurde. Diese wurde in unserem Fall sogar in der Rekursion, die über die Admin-Connection durch den PageStore iterierte, eingebaut. Die Implementierung sieht etwa so aus:

    UserService usrSrv;

    ...

    Connection admConn = ConnectionManager.getConnection(currentConn.getHost(), currentConn.getPort(), currentConn.getMode(), currentConn.getServletZone(), username, password);

    admConn.connect();

    ...

    usrSrv = admConn.getProjectById(project.getId()).getUserService();

    project.lock(); //to allow synchronization during project changes

    PageStoreRoot psRoot = (PageStoreRoot) usrSrv.getStore(Store.Type.PAGESTORE, false);

    iterateTree(pageStoreRoot, StoreElementFilter.on(PageFolder.class, Page.class);

    ...

    private void iterateTree(StoreElement element, StoreElementFilter filter)  {

         Listable<StoreElement> children = element.getChildren(filter, false);

         for(StoreElement child : children) {

              Logging.logDebug("is connected: " + usrSrv.isConnected());

              if (child instanceof Page) {

                   revertApprover(child);

              } else if (child instanceof PageFolder) {

                   iterateTree(child, filter);

              }

         }

    }

    Die zentrale Frage: ist dieser Weg nicht erlaubt? Oder handelt es sich tatsächlich in diesem Fall um einen BUG, der die Verbindung nach 20 Min. wegschmeißt?

    0
  • Zendesk API User
    Author: king - 9/25/2012 17:47

    Nach Rücksprache mit dem e-Spirit HelpDesk handelt es sich hier um einen BUG in FS 4.2 R4 468.

    Wird gefixt ab FS 5.0.

    0
  • Zendesk API User
    Author: Peter_Jodeleit - 9/26/2012 8:30

    Wobei die "Zwangstrennung" nur auftritt, wenn die Verbindung in der FirstSpirit-Server VM auf die beschriebene Weise aufgebaut wurde. "Echte" Remote-Verbindungen sind also nicht davon betroffen.

    0

Vous devez vous connecter pour laisser un commentaire.