AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Firebird 1.5 - Transaction auf Wait setzen. Wie?
Thema durchsuchen
Ansicht
Themen-Optionen

Firebird 1.5 - Transaction auf Wait setzen. Wie?

Ein Thema von Eppos · begonnen am 26. Jun 2008 · letzter Beitrag vom 28. Jun 2008
Antwort Antwort
Eppos

Registriert seit: 7. Aug 2006
Ort: Heilbronn
523 Beiträge
 
Delphi 11 Alexandria
 
#1

Firebird 1.5 - Transaction auf Wait setzen. Wie?

  Alt 26. Jun 2008, 11:34
Datenbank: Firebird • Version: 1.5 • Zugriff über: BDE
Hallo zusammen,

bekomme immer häufiger die Fehlermeldung:

lock conflict on no wait transaction
deadlock
update conflicts with concurrent update.

Ich möchte jetzt die Transaction auf "WAIT" setzen.
Habe auch schon gegoogelt aber keine brauchbare möglichkeit gefunden.

Kann mir jemand sagen`, mit welchem befehl ich das ändern kann?

Vielen Dank!
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Firebird 1.5 - Transaction auf Wait setzen. Wie?

  Alt 26. Jun 2008, 12:00
Ist eine Einstellung der Transaktions-Isolation.
Markus Kinzler
  Mit Zitat antworten Zitat
Eppos

Registriert seit: 7. Aug 2006
Ort: Heilbronn
523 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: Firebird 1.5 - Transaction auf Wait setzen. Wie?

  Alt 26. Jun 2008, 12:02
d.h.?

Wo kann ich das Einstellen?
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Firebird 1.5 - Transaction auf Wait setzen. Wie?

  Alt 26. Jun 2008, 13:48
Bei der BDE äuft das afaik transparent.
Markus Kinzler
  Mit Zitat antworten Zitat
Eppos

Registriert seit: 7. Aug 2006
Ort: Heilbronn
523 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: Firebird 1.5 - Transaction auf Wait setzen. Wie?

  Alt 26. Jun 2008, 14:22
Ich habe jetzt die Delphi TDataBase Komponente auf "TransIsolation = tiRepeatableRead" gesetzt.

Geht das auch?
  Mit Zitat antworten Zitat
Benutzerbild von nachti1505
nachti1505

Registriert seit: 7. Apr 2007
188 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: Firebird 1.5 - Transaction auf Wait setzen. Wie?

  Alt 27. Jun 2008, 09:49
Klar geht das auch... die Isolationsstufe ist sogar noch "härter" als read-committed! Ob das dein WAIT jedoch ermöglicht, glaube ich nicht! Bei den UIB und bei FIBPlus kann man die Direktive WAIT/NOWAIT explizit setzen. Eventuell bietet TDatabase hier auch etwas zu an?
  Mit Zitat antworten Zitat
Benutzerbild von sx2008
sx2008

Registriert seit: 16. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#7

Re: Firebird 1.5 - Transaction auf Wait setzen. Wie?

  Alt 28. Jun 2008, 01:29
Zitat von Eppos:
Ich möchte jetzt die Transaction auf "WAIT" setzen.
Ich glaube nicht, dass das dein Problem lösen wird.
Du musst bei deinen Transactions immer eine feste Reihenfolge einhalten.
Angenommen du schreibst an einer Stelle zuerst in Tabelle A und dann noch in Tab B.
In einer anderen Stelle im Programm schreibst du in Tabelle B, dann in C und dann in A.
So kann dann ein Deadlock entstehen; vorallem dann wenn du zusätzlich bei Leseoperationen mit Select einen Tablock einsetzt.
  Mit Zitat antworten Zitat
bluesbear

Registriert seit: 14. Dez 2005
Ort: Hahnstätten
355 Beiträge
 
Delphi 2007 Enterprise
 
#8

Re: Firebird 1.5 - Transaction auf Wait setzen. Wie?

  Alt 28. Jun 2008, 10:48
Die BDE ist ziemlich buggy bei multi-user-applications. Es funktioniert meistens, aber manchmal nicht. Ich habe darauf verzichtet, das Problem zu ergründen. Ich habe drumherum programmiert.
Klaus M. Hoffmann
  Mit Zitat antworten Zitat
dmagin

Registriert seit: 17. Jan 2003
Ort: Frankfurt
33 Beiträge
 
#9

Re: Firebird 1.5 - Transaction auf Wait setzen. Wie?

  Alt 28. Jun 2008, 12:01
Hi @all,

transactions mit sql db's können recht komplex sein. gerade interbase/firebid haben da etliche kombinationsmöglichkeiten.
ich habe das ganze thema vor ein paar wochen in einem webinar behandelt.

es geht (meine ich jedenfalls) etwa 1,5 stunden. es ist kostenlos hier verfügbar : LINK

dort unter interbase schauen mit dem titel:

Understanding InterBase Transactions

In this session you learn the Transaction Handling with InterBase. Also some live demos with Delphi (you can use all techniques in other languages also) how to work in a perfect was between Client Applications and InterBase Server without having deadlocks, performance Problems, …



ist aber in english, ok mit deutschen dialekt

viel spass

gruss daniel (magin)
Daniel Magin
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:02 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz