🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.delphi.bazy-danych
Article #82662

Re: Pomocy - "Połączenie jest zajęte wynikami dla innego hstmt"

#82662
From: wloochacz
Date: Wed, 02 Mar 2016 10:53
67 lines
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-mail
References: <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