Grundsätzlich werden (und sollten) Requests an die EFA stateless durchgeführt werden; das ist der Standard. Dabei werden serverseitig keine Daten gespeichert und es kann später ausgehend vom Client nicht mehr auf die Anfrage referenziert werden. Das ist mit einer stateful Request nicht der Fall.Um eine Request stateful zu senden, muss der Parameter sessionID=0 übergeben werden. Damit erscheint eine Session-ID in Request.serverInfo.sessionID – setzt dementsprechend serverInfo=1 voraus.
Um eine spätere Referenzierung vorzunehmen, muss der Parameter sessionID=<sid> mit der entsprechend ausgefüllten Session-ID übergeben werden.Nützlich ist dieses Konzept beispielsweise bei einer Anfrage eines Trips (XML_TRIP_REQUEST2), der so lange im UI verbleibt bzw. aktiv genutzt wird, dass dessen Echtzeitdaten aktualisiert werden sollen. Diese Anfrage wird stateful durchgeführt, die Session-ID kann danach in XML_GETRTFORTRIP_REQUEST verwendet werden. Dieser gibt die Daten entsprechend seiner Funktion zurück (Aktualisierung der Echtzeitdaten) und bleibt dabei prinzipiell stateless: Er gibt die zuvor übergebene Session-ID im gleichen Feld wieder zurück. Diese Session-ID kann – zumindest in kurzen Zeiträumen – beliebig oft genutzt werden.Achtung: Der Stammdienst (efa.de / A) nutzt zur Lastverteilung mehrere Server, dessen Auswahl praktisch zufällig stattfindet (s. Property Request.serverInfo.serverID). Eine stateful Request wird auch nur auf dem Server gespeichert, auf dem sie generiert wird. Die Folgeanfrage muss also u.U. mehrmals ausgeführt werden – kommt ein HTTP 400 zurück bedeutet das, dass die Anfrage an einen Server gesendet wurde, der die referenzierte Request nicht generiert hat.
tdb: Parameter zur direkten Ansprache eines Servers