![]() |
Datenbank: Firebird • Version: 1.5 • Zugriff über: -
Stored procedure thread-safe
Hallo zusammen,
tja, wie der Titel sagt :) Mich würde interessieren, ob SPs unter FB thread-safe sind. Also im Prinzip so: Ein User ruft eine SP auf, ein anderer ruft die selbe SP auf, bevor die erste abgearbeitet ist. Wird jetzt die erste erst fertig abgearbeitet oder gibt es hier auch eine Art Multi-Threading? Hab zwar schon die FB-Refetenz gewälzt, aber nix passendes gefunden. |
Re: Stored procedure thread-safe
Sollte schon sein, da für jeder Datenbankverbindung beim Superserver (Windows) auf Serverseite ein eigener Thread verwendet wird. Beim Classic Server (Linux) wird sogar ein eigener Proccess verwendet.
|
Re: Stored procedure thread-safe
War vielleicht bissel unglücklich formuliert... Aber wenn jede Connection ihren eigenen Thread hat, dann kann es doch sein, das die Abarbeitung von Thread1/SP unterbrochen wird und die SP in Thread2 abgearbeitet wird? Vielleicht steht auch nur gerade jemand auf meiner Leitung und ich verstehs einfach nicht :stupid:
|
Re: Stored procedure thread-safe
Hi,
wenn SP1 abgebrochen wird, kann doch SP2 ohne Probleme weiter laufen, denn beide sind innerhalb einer Transaktion und kommen sich daher erst mal nicht in die Quere. Erst wenn beide auf denselben Datensatz zugreifen kann es "kritisch" werden, da dann evtl. ein Deadlockfehler (je nach Transaktionsparameter) kommt. Die Daten werden in jedem Fall nicht beschädigt! Lemmy |
Re: Stored procedure thread-safe
Zitat:
|
Re: Stored procedure thread-safe
Da unterscheidet sich eien SP nicht von einem normalen Query. Wenn die Transaktionseinstellungen nicht geradee auf dirty-read stehen., siht SP2 die Änderungen von SP1 nicht. Auf den selber Datensatz kann normalerweise nicht zugegriffen werden. ( SP2 wird normalerweise angehalten bis SP1 beendet ist). Das einzige Problem das ih sehe ist das es zu deadlocks kommen kann, wenn die Timeout-Einstellungen zu groß gewählt sind.
|
Re: Stored procedure thread-safe
Hi,
ich hole mir die Nummern auch immer über eine SP. Das ganze wird in einer Wait Transaction gekapselt. Such mal nach LockWait oder so in der Transaction. Cu, Frank |
Re: Stored procedure thread-safe
Habe ich das richtig verstanden, die liest den letzen Datensatz, schaust dir die letzte Auftragsnummer an und addierst dann eins drauf um die neue Auftragsnummer zu erhalten???
|
Re: Stored procedure thread-safe
Zitat:
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:23 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz