0

Transaktionen

Alle Trigger bei Datenerstellung oder Änderung sowie alle Scripts innerhalb von do as transaction oder do as server laufen innerhalb einer Transaktion ab, die entweder vollständig ausgeführt wird oder gar nicht, wenn sie abbricht. Eine Transaktion ist schreibend, wenn wenigstens ein Befehl innerhalb des Scripts potentiell Daten ändern könnte (z.B. den Wert eines Datenfeldes ändern).

Ninox führt schreibende Transaktionen seriell aus. Das heißt, Lesezugriffe behindern sich gegenseitig nicht, aber ein schreibender Zugriff kann nachfolgende schreibende Transaktionen blockieren.

Normalerweise bedeutet dies keine Einschränkung, selbst wenn hunderte Nutzer parallel arbeiten. Problematisch wird dieses Verhalten allerdings, wenn eine schreibende Transaktion lange Zeit (mehr als wenige Millisekunden) benötigt.

Vermeiden Sie innerhalb von Transaktionen:

  • Die Abfrage externer APIs
  • Komplexe Abfragen über viele Daten

💡  Nutzerinteraktionen – z.B. dialog(), openTable() – sollten in keinem Fall innerhalb einer Transaktion verwendet werden. Bei serverseitiger Ausführung (zum Beispiel im Web) funktionieren diese schlicht nicht.

Antwort

null