konto usunięte

Temat: Linked Server do FireBird


Witam,

Z wykorzystaniem Microsoft OLE DB Provider for ODBC Drivers oraz drivera ODBC FireBird
utworzyłem linked server do bazy FireBird. Linked server wykorzystuję w jednym z triggerów, posługując się OPENQUERY. Po odpaleniu triggera otrzymuję błąd


OLE DB provider "MSDASQL" for linked server "FIREBIRD" returned message "Nie można uruchomić więcej transakcji w tej sesji."..


Po pojawieniu się błędu i odczekaniu ok. minuty, trigger przesyła dane bez żadnych zgrzytów.

Proszę o podpowiedzi jak ów obejść. Czy jest to problem po stronie konfiguracji FireBird ?

Pzdr,
M

Mateusz H. edytował(a) ten post dnia 21.06.12 o godzinie 13:58
Daniel N.

Daniel N. Senior IT Architect,
DBA

Temat: Linked Server do FireBird

Hej,
Zgodnie z:
http://support.microsoft.com/kb/177138/EN-US

INFO: Nested Transactions Not Available in ODBC/OLE DB/ADO

Użycie linked servera w triggerze powoduje rozpoczęcie transakcji w kontekście transakcji z serwera 'lokalnego'. Mógłbyś zobrazować co wykonujesz pokazując kod (może być przykładowy - nie oryginalny)

===
Pozdrawiam,
DanielDaniel N. edytował(a) ten post dnia 21.06.12 o godzinie 22:45

konto usunięte

Temat: Linked Server do FireBird

mniej wiecej....


IF UPDATE(ZcN_Stan)
BEGIN
BEGIN TRANSACTION
INSERT OPENQUERY ([FIREBIRD], ' SELECT DATACZAS, UZYTKOWNICY_ID, ASORTYMENT_ID, KOD, NAZWA, LINIA FROM RECEPTURY')
VALUES (GETDATE(), NULL, NULL, @TWRNUMER, @TWRNAZWA + '_'+ @SYMBOL,2);

COMMIT TRANSACTION
END

konto usunięte

Temat: Linked Server do FireBird

taki mały hint

INSERT OPENQUERY ([FIREBIRD], ' SELECT DATACZAS, UZYTKOWNICY_ID, ASORTYMENT_ID, KOD, NAZWA, LINIA FROM RECEPTURY WHERE 1=0')
VALUES (GETDATE(), NULL, NULL, @TWRNUMER, @TWRNAZWA + '_'+ @SYMBOL,2);

masz możliwość dodania danych ale nie ciągniesz całego zbioru do MSSQL-a

konto usunięte

Temat: Linked Server do FireBird

Przemysław R.:
taki mały hint

INSERT OPENQUERY ([FIREBIRD], ' SELECT DATACZAS, UZYTKOWNICY_ID, ASORTYMENT_ID, KOD, NAZWA, LINIA FROM RECEPTURY WHERE 1=0')
VALUES (GETDATE(), NULL, NULL, @TWRNUMER, @TWRNAZWA + '_'+ @SYMBOL,2);

masz możliwość dodania danych ale nie ciągniesz całego zbioru do MSSQL-a

nie kumam...

konto usunięte

Temat: Linked Server do FireBird


jest tak,

Wykonuję event przechwytywany przez trigger, dane są przesyłane ok. Ponowne "odpalenie" triggera zwraca błąd. Odczekanie jakiejś minuty, pozwala na ponowne wysłanie danych itd...

Mateusz H. edytował(a) ten post dnia 22.06.12 o godzinie 09:33

konto usunięte

Temat: Linked Server do FireBird

SELECT DATACZAS, UZYTKOWNICY_ID, ASORTYMENT_ID, KOD, NAZWA, LINIA FROM RECEPTURY

pobiera cały zbiór danych a później sobie dodajesz nowe dane

SELECT DATACZAS, UZYTKOWNICY_ID, ASORTYMENT_ID, KOD, NAZWA, LINIA FROM RECEPTURY WHERE 1=0

nie pobiera żadnych danych i później dodajesz sobie nowe dane

chodzi o to że fakt pobierania danych selectem może być naprawdę czasochłonny w zależności od tego ile dana tabela ma danych i jak szybkie łącze masz do bazy

konto usunięte

Temat: Linked Server do FireBird

Przemysław R.:
SELECT DATACZAS, UZYTKOWNICY_ID, ASORTYMENT_ID, KOD, NAZWA, LINIA FROM RECEPTURY

pobiera cały zbiór danych a później sobie dodajesz nowe dane

SELECT DATACZAS, UZYTKOWNICY_ID, ASORTYMENT_ID, KOD, NAZWA, LINIA FROM RECEPTURY WHERE 1=0

nie pobiera żadnych danych i później dodajesz sobie nowe dane

chodzi o to że fakt pobierania danych selectem może być naprawdę czasochłonny w zależności od tego ile dana tabela ma danych i jak szybkie łącze masz do bazy

niestety nie pomaga ów warunek...

konto usunięte

Temat: Linked Server do FireBird

pojawia się też taka wiadomość

The operation could not be performed because OLE DB provider "MSDASQL" for linked server "FIREBIRD" was unable to begin a distributed transaction.
Mateusz H. edytował(a) ten post dnia 22.06.12 o godzinie 13:30
Daniel N.

Daniel N. Senior IT Architect,
DBA

Temat: Linked Server do FireBird

Masz MSDTC skonfigurowane?
Zobacz sobie ten wątek:
http://www.goldenline.pl/forum/2929798/linked-server-n...
Łukasz Kowalik

Łukasz Kowalik Technical Support
Lead at Dassault
Systemes DELMIA
Apriso

Temat: Linked Server do FireBird

Właśnie Mateuszu! Zerknij w tamtem wątek. Skoro wtedy udało Ci się uruchomić prawidłowo połączenie to teraz być może też się uda.
Danielu dziękujemy za pomoc!

konto usunięte

Temat: Linked Server do FireBird

Daniel N.:
Masz MSDTC skonfigurowane?
Zobacz sobie ten wątek:
http://www.goldenline.pl/forum/2929798/linked-server-n...
To już przerabiałem z kolegą Łukaszem, przy wcześniejszym projekcie ;) Problem zapewne leży w standardowym sterowniku ODBC dostarczanym przez FireBird.
IBProvider, dostarcza biblioteki rozwiązujące problem http://www.ibprovider.com, niestety są one płatnę, weryfikuję jeszcze działanie na darmowych ;)

konto usunięte

Temat: Linked Server do FireBird

Daniel N.:
Masz MSDTC skonfigurowane?
Zobacz sobie ten wątek:
http://www.goldenline.pl/forum/2929798/linked-server-n...

Darmowa wersja IBProvidera v3 rozwiązuje nasz problem

konto usunięte

Temat: Linked Server do FireBird

w przypadku standardowego sterownika ODBC

należy ustawić IMPLICIT_TRANSACTIONS na ON

SET IMPLICIT_TRANSACTIONS ON


Następna dyskusja:

MSSQL 2005 linked server IB...




Wyślij zaproszenie do