Threading ermöglicht die parallele Ausführung von Schritten auf demselben Server oder unterschiedlichen Servern. Threading wird durch die Einstellung der Eigenschaft "Thread" für einen Schritt gesteuert, die standardmäßig auf "Nein" festgelegt ist. Mit Threading lässt sich die Projektausführungszeit reduzieren, wenn Teile eines Projekts unabhängig voneinander ausgeführt werden können.
Wenn für mehrere aufeinanderfolgende Schritte die Eigenschaft "Thread" auf "Ja" gesetzt ist, versucht das System, die Schritte parallel auszuführen. Solche Schritte werden als threadfähig bezeichnet. Jeder Schritt kann separat ausgeführt werden, während der Rest des Vorgangs fortgesetzt wird. Für Threading gelten die folgenden Regeln:
- Die Eigenschaft "Thread" muss in mindestens zwei Schritten hintereinander auf Ja festgelegt sein, damit Threading erfolgen kann. Eine Reihe threadfähiger, aufeinanderfolgender Schritte werden als Threadblock bezeichnet. Threadblöcke können in Schritten fortgesetzt werden, die Teil eines integrierten Schritts sind. Wenn ein
Schritt in einem Projekt beispielsweise einen integrierten Schritt enthält und der erste Schritt des
betreffenden integrierten Schritts ebenfalls Threads enthält, sind die zwei Schritte Teil desselben
Threadblocks.
Sie werden gleichzeitig ausgeführt. Der Threadblock folgt den
Schritten, die Threads enthalten, einschließlich der verschachtelten
integrierten Schritte, bis ein Verbindungsschritt oder ein Schritt
ohne Threads auftritt.
Sie sollten unbedingt Konkurrenzsituationen vermeiden, wenn Sie mit verschachtelten integrierten Schritten arbeiten.
Eine Konkurrenzsituation kann von einem integrierten Schritt mit Threads verursacht werden, abhängig von den
Ergebnissen oder Daten aus dem übergeordneten Schritt mit Threads.
- Ein Threadblock wird durch einen Schritt beendet, bei dem die Eigenschaft "Thread" auf Verbinden festgelegt ist, oder wenn er auf einen Schritt ohne Thread trifft. Ab diesem Punkt erfolgt die Schrittausführung wieder der Reihe nach.
- Wenn das System auf einen threadfähigen Schritt trifft, versucht es, diesen zu starten. Ist der folgende Schritt ebenfalls threadfähig, versucht das System, auch diesen Schritt zu starten, und fährt so lange mit dem jeweils nächsten Schritt fort, bis es keine weiteren threadfähigen Schritte mehr gibt oder das Vorgangslimit des Servers erreicht ist.
Falls der Selektor für das Projekt einen Server-Pool angibt, errechnet sich das Vorgangslimit von der Konzeption her aus der Summe der Vorgangslimits aller Server im Pool.
Anmerkung: Die Startzeit für die threadfähigen Schritte hängt von der Verfügbarkeit des Servers ab, auf dem diese ausgeführt werden sollen. Kann ein Schritt nicht gestartet werden, wartet das System und wiederholt dann den Versuch. Sie können nicht explizit steuern, welche Schritte zuerst gestartet werden.
- Die Schritte werden daher unter Umständen gleichzeitig auf einem Server (je nach Kapazität dieses Servers) oder auf mehreren Servern ausgeführt, je nachdem, wie viele Server dem Selektor entsprechen.
- Mit der Eigenschaft Permanent können Sie die Ausführung von Schritten auf einem einzigen Server erzwingen.
- Sind mehrere Threadblocks vorhanden, wird der nächste Threadblock erst gestartet, wenn der erste Block abgeschlossen ist.
Im folgenden Beispiel müssen die Schritte 2, 3 und 4 beendet sein, bevor die Schritte 5 und 6 gestartet werden können.
Projekt |
Eigenschaft "Thread" für Schritt |
Schritt 1 |
Nein |
Schritt 2 |
Ja |
Schritt 3 |
Ja |
Schritt 4 |
Verbinden |
Schritt 5 |
Ja |
Schritt 6 |
Ja |
Schritt 7 |
Nein |
- Verwenden Sie für das Projekt die Eigenschaft Max. Threads, um die Anzahl der Threads zu begrenzen, die gleichzeitig ausgeführt werden können. Jeder threadfähige Schritt und jedes integrierte Projekt (falls vorhanden) kann zur Ausführung paralleler Prozesse führen. Es werden alle Prozesse gezählt, bis der maximale Wert für das übergeordnete Projekt
erreicht ist. Das System stoppt den Start neuer paralleler Prozesse, sobald es den unter Max. Threads angegebenen Wert erreicht hat.
Es wartet, bis die Anzahl der parallelen Prozesse des Projekts unter den unter Max. Threads festgelegten Wert fällt, bevor es die Ausführung fortsetzt.