Frage

Ich versuche, einen Daten-Upload zu verarbeiten, in dem ich versuche, die Nachrichten über PeopleSoft über Integration Broker asynchron in einer Anwendungsmaschine zu veröffentlichen. Der gesamte Punkt ist, mehrere Nachrichten senden zu können und sie in demselben Knoten zu verbrauchen. Bevor ich die Nachrichten sende, speichern Sie die Daten auf einer Tabelle (sagen T1), um alle Feldwerte in der Upload-Datei zu speichern.

Während des Verbrauchs versuche ich, jede Nachricht an der Komponentenschnittstelle auszusetzen, und die Ausnahmen werden auf derselben Tabelle T1 angemeldet. Lassen Sie uns zu jeder Transaktion sagen, dass wir das Tabellenfeld kennzeichnen (sagen proced_flag= 'y').

Ich brauche einen Mechanismus, an dem ich nur warten könnte, bis alle asynchronen Nachrichten abgeschlossen sind. Ich denke an die Überprüfung der T1-Tabelle, wenn auf der TA-Tabelle TA-Tabelle Zeilen vorhanden sind, in der Prozessd_Flag 'n' ist, lassen Sie den Thread nur für mehr Zeit aufnehmen. Während alle Nachrichten nicht verarbeitet werden, halten Sie es schlafen und lassen Sie den Application Engine nicht abschließen.

Der einzige Nutzen, den ich bekommen kann, ist, dass ich nicht auf mehrere Instanzen warten muss oder nicht den synchronen Anruf tätigen muss. Die gesamte Idee ist, das Bauteil durch verschiedene Transaktionen zu nutzen (als ob sie von Say 100 Personen -> 100 Transaktionen verwendet wurde).

Es sei denn, diese 100 Transaktionen sind abgeschlossen, wir werden sicherstellen, dass der T1-Tisch eine Aufzeichnung von dem Ein- und Ausschalten des T1 hält. Wenn etwas nicht stimmt, kann es die von der CI gefangen genommenen Ausnahmen protokollieren.

Alle Kommentare zu diesem Ansatz würden erkennen. Vielen Dank im Voraus!

War es hilfreich?

Lösung

Wir nehmen einen anderen Ansatz. Selbst wenn wir in der Lage sind, die Daten auf den Tabellen, bevor die App-Engine abgeschlossen sind, ist die gesamte Idee, die Nachrichten, die asynchron zu senden, nicht nützlich. In diesem Fall wäre die Verwendung von synchronen Nachrichten besser und führen die Prozesse parallel aus.

Wir haben uns also entschieden, die Application Engine alle Datenstücke durch Meldungen abzuschließen und zu veröffentlichen, und stellen Sie sicher, dass die Nachrichten vollständig in demselben Knoten verbraucht werden.

    .
  1. Wir werden die Tabelle T1 aktualisieren, für alle verarbeiteten / erfolgreichen / fegescheiterten Zeilen, während wir die Nachrichten verbrauchen und nach Bedarf verwenden.

  2. Wir halten ein Audit oder einen Zähler für alle veröffentlichten und verbrauchten Zeilen. Da dieselbe Komponente für mehrere Transaktionen freigeben würde, wäre ein großer Auswirkungen auf die Leistung. Wir möchten sicherstellen, dass es besser funktioniert, als ob 50 Benutzer die gleichen Tabellen hinter der Komponente mit derselben CI (natürlich unterschiedlichen Instanzen) aktualisieren. Ich werde meinen Begriff des Konzepts abschließen, und hoffentlich wird es viel besser sein, als die Prozesse parallel zu laufen.

  3. Ich hoffe, dass dies jedem helfen kann, der sich mit diesen Upload-Problemen befasst. Danke!

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top