Article View: pl.comp.lang.delphi.bazy-danych
Article #82662Re: Pomocy - "Połączenie jest zajęte wynikami dla innego hstmt"
From: wloochacz
Date: Wed, 02 Mar 2016 10:53
Date: Wed, 02 Mar 2016 10:53
67 lines
4379 bytes
4379 bytes
W dniu 2016-03-02 o 09:00, bolocorp99@gmail.com pisze: >> Dlatego, ze próbujesz otwierać dwa niezależne zestawy danych używając >> tego samego połączenia. >> Ale to już wiesz, bo przeczytałeś tekst wyjątku ;-) > Wiem, ale... inne aplikacje dzialaja tak samo, jedno polaczenie do bazy i kilkanascie otwartych query i dziala bez zastrzezen! Ale zmienił się AnyDAC i działanie MARSA ma pewne ograniczenia i niedogodności, poczytaj sobie na MSDN. Kluczową sprawą jest włączenie *set nocount on*. >>> MARS w ustawieniach FireDAC'a jest wlaczony, nie ma zadnych cudow - ot kilka ADQuery, otwieranych w zaleznosci od potrzeb. >> Tak, ale jak są otwierane i jak dokładnie dla każdego z nich jest >> ustawione Connection i FetchOptions? > Wszystkie sa podpiete pod jedno Connection, FetchOptions bylo OnDeman - zmienilem na All, zaczelo dzialac. To może działać poprawnie tylko i wyłącznie w jednym przypadku - kiedy w tym samym czasie dla tego samego połączenia masz tylko jeden otwarty kursor na serwerze. SQL Profiler Twoim przyjacielem. >>> A tnie sie niesamowicie - dodatkowo uruchomienie procedury skladowanej powoduje deadlock!! >> A to już Twój problem, a nie FireDAC/MSSQL. > No chyba jedna nie do konca moj :) bo... Nie ma bo; mam wrażenie, że nie do końca rozumiesz jak to działa. I tak, zważywszy na to że MSSQL działa tak a nie inaczej, to jest to Twój błąd :) >> wszystko zależy co ta procedura robi, jak to robi i jak jest odpalana z >> aplikacji - chodzi o transakcje. > Procedura robi update na jedenj tabeli, jest "opakowana" transakcjaNie >> Masz w tej procce set nocount on? > Nie mam :/ ale nigdy nie bylo i D2007 dzialo bez problemow... > Pokombinuje jeszcze z tym ZAWSZE musisz mieć to włączone przy MARS. >> Ta procka aktualizuje dane w tabelach, na których są triggery? >> Czy triggery mają set nocount on? > Nie ma trigerow na tej tabli, nie sa potrzebne > >> I jeszcze jedno; jak masz ustawione FetchOptions.CursorKind, > Domyslna wartosc ckAutomatic Zostaw. >> ResourceOptions.DirectExecute, i jeszcze coś było z odpowiedzią serwera, >> ale nie pamiętam co :/ > DirectExecute jest wylaczony Włącz. >>> Jedyne rozwiaznie jakie znalazlem to instalacja nowego klienta SQL ale czy to jest rozwiaznie? >> Na pewno nie zaszkodzi, bo MARS zadziała Ci tylko z NativeClient - nie z >> czystym ODBC. > Fakt, ze nie zaszkodzi - na kilku stanowiskach bez zmian w aplikacji (wylaczone FetchAll) pomoglo. Teraz jest wlaczone FetchAll i na innych bez upgradeu zaczelo dzialac, ale upgrade zrobie chyba na wszystkich. Tylko, ze FetchAll to obosieczny miecz... >> Podpowiedzi; >> 1) FetchAll zawsze załatwia sprawę, ale musi być tryb blokujący do >> otwierania dataseta > W tej chwili jest FetchAll i tryb nie blokujacy i jakos dziala > >> 3) ConnectionPooling powinien zawsze załatwić sprawę. > Hmm...opcja do przemyslenia i poczytania, nie uzywalem tego ale moze trzeba zaczac :) > > Dzieki za podpowiedzi > Bolo > -- wloochacz
Technical Details
Message-ID:
<56d6c624$0$22821$65785112@news.neostrada.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!newsfeed.fsmpi.rwth-aachen.de!newsfeed.straub-nv.de!feed.xsnews.nl!fbe001.ams.xsnews.nl!peer01.fr7!news.highwinds-media.com!newsfeed.neostrada.pl!unt-exc-02.news.neostrada.pl!unt-spo-b-01.news.neostrada.pl!news.neostrada.pl.POSTED!not-for-mailReferences:
<1222dadd-2341-4630-9f1d-2c3cad746e5f@googlegroups.com> <56d46a2d$0$690$65785112@news.neostrada.pl> <893b74f9-3071-4903-acc4-571e6dda81fd@googlegroups.com>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!newsfeed.fsmpi.rwth-aachen.de!newsfeed.straub-nv.de!feed.xsnews.nl!fbe001.ams.xsnews.nl!peer01.fr7!news.highwinds-media.com!newsfeed.neostrada.pl!unt-exc-02.news.neostrada.pl!unt-spo-b-01.news.neostrada.pl!news.neostrada.pl.POSTED!not-for-mail Subject: Re: Pomocy - "Połączenie jest zajęte wynikami dla innego hstmt" Newsgroups: pl.comp.lang.delphi.bazy-danych References: <1222dadd-2341-4630-9f1d-2c3cad746e5f@googlegroups.com> <56d46a2d$0$690$65785112@news.neostrada.pl> <893b74f9-3071-4903-acc4-571e6dda81fd@googlegroups.com> From: wloochacz <wloochacz@no.spam.gmail.com> Date: Wed, 2 Mar 2016 11:53:19 +0100 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:38.0) Gecko/20100101 Thunderbird/38.6.0 MIME-Version: 1.0 In-Reply-To: <893b74f9-3071-4903-acc4-571e6dda81fd@googlegroups.com> Lines: 67 Message-ID: <56d6c624$0$22821$65785112@news.neostrada.pl> Organization: Telekomunikacja Polska NNTP-Posting-Host: 80.50.142.202 X-Trace: 1456916005 unt-rea-a-02.news.neostrada.pl 22821 80.50.142.202:48555 X-Complaints-To: abuse@news.neostrada.pl X-Received-Bytes: 4164 X-Received-Body-CRC: 846713620 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit