Szukam sposobu określenia niestandardowego poziomu transakcji w DBX Delphi za pomocą sterownika firebird. Używam Delphi XE.Niestandardowy poziom transakcji w Firefly DBX Delphi
W edytorze parametrów komponentu TSQLConnection mogę ustawić różne wartości TransIsolation i używam wartości domyślnej ReadCommited
. Właściwość WaitOnLocks
ustawiono na True
. Oczekuję tego używa następującej konfiguracji Firebird transakcji, ale nie jestem pewien:
READ WRITE + WAIT + SNAPSHOT
(patrz http://www.firebirdsql.org/refdocs/langrefupd20-set-trans.html)
Chciałbym użyć LOCK TIMEOUT [seconds]
zamiast WAIT
. Ale nie mogę znaleźć, jak lub gdzie to określić. Sprawdziłem w plikach źródłowych DBX i istnieje kod dla niestandardowych poziomów transakcji (wyszukiwanie dla xilCUSTOM
), ale wydaje się, że nie został ukończony/nieużywany.
Powodem tego jest fakt, że czasami mamy do czynienia z impasem w naszej aplikacji dla wielu użytkowników i myślę, że dzieje się tak, ponieważ jedna transakcja czeka na inną (prawdopodobnie martwą) transakcję. Wolimy, aby transakcja została przerwana po kilku sekundach, niż całkowite zawieszenie się klienta w nieskończoność.
Następująca dokumentacja 'Dodatkowo, TSQLConnection pozwala określić specyficzne dla bazy danych niestandardowe poziomy izolacji. Indywidualne poziomy izolacji są definiowane przez sterownik dbExpress. Aby uzyskać szczegółowe informacje, zobacz dokumentację sterownika. " – JustMe
Czy rozważasz zakup udokumentowanego sterownika bazy danych? Lub użyć bardziej natywnego rozwiązania, takiego jak IBDAC lub IB Objects (+ wydajność + zgodność + wsparcie)? – JustMe