Hallo zusammen,
wir haben folgendes Problem:
Für unseren Kunden haben wir ein Modul erstellt, welches mehrere Executables enthält, welche über verschiedene Workflows gestartet werden. Einer dieser Workflows dient zur Freigabe und Weiterleitung eines Datensatzes an eine Suchmaschine.
Wenn dieser Workflow alleine gestartet wird, läuft alles fehlerfrei ab. Wenn nun allerdings der Workflow von einem anderen Benutzer relativ zeitnah (ca. 1 - 2 Sekunden Abstand) ausgeführt wird, erhalten wir einen merkwürdigen Fehler.
Es gibt hierbei folgenden Ablauf:
- Ein User startet den Workflow bei einem Datensatz
- Der Workflow stoßt die Executable des Moduls an
- Das Modul gibt den Datensatz frei und setzt einen Filter bei einer bestimmten Seite. Diese Seite enthält eine Tabellenvorlage und soll die Daten des aktuellen Datensatzes als XML generieren
- Nach dem Setzen des Filters stoßt das Modul einen separaten Deploymentauftrag an, welcher die Seite generiert und an die Suchmaschine weiterleitet
Wenn nun der Workflow zweimal gleichzeitig ausgeführt wird, wird bei dem Deploymentauftrag des als zweiten ausgeführten Workflows die Seite mit dem Filter des ersten Workflows generiert, obwohl von der zeitlichen Abfolge her der zweite Filter verwendet werden sollte. Laut der Versionshistorie wird der Filter korrekt und vor dem Deployment gesetzt.
Beispiel:
- User 1 startet den Workflow bei dem Datensatz 123
- User 2 startet den Workflow bei dem Datensatz 456
- Filter 123 wird gesetzt und das Deployment wird gestartet -> seite_123.xml wurde korrekt generiert
- Filter 456 wird gesetzt und das Deployment wird gestartet -> seite_123.xml wurde generiert anstatt von seite_456.xml
Wir können uns diesen Fehler nicht erklären, denn wenn die Workflows in einem zeitlichen Abstand von ca. > 5 Sekunden ausgeführt werden, taucht dieser Fehler nicht auf.
Vielen Dank im voraus für alle Tipps und Hinweise.
Viele Grüße
Max