MSDTC =?ISO-8859-2?Q?k=B3opoty_z_komunikacj=B1?=
Piotr Porzucek - 13-05-2007 00:18
MSDTC =?ISO-8859-2?Q?k=B3opoty_z_komunikacj=B1?=
Witam, mam następujący problem, z którym nie mogę sobie poradzić:
Sieć lokalna z 2 serwerami:
A) SQL Server 2005 Express Edition (WindowsXP Sp2) B) SQL Server 2005 Standard Edition (Windows 2003 Server Sp2)
Próbuje wykonać transakcję rozproszoną z A -> B. Otrzymuję komunikat:
"Transakcja została już jawnie lub niejawnie przekazana lub przerwana".
Próbuje wykonać transakcję rozproszoną z B -> A. Otrzymuję komunikat:
"No transaction is active."
Transakcja jest bardzo prosta, w stylu:
begin distributed tran SELECT * FROM SerwerA.testowa.dbo.tabela; commit
Na obu komputerach są włączone MSDTC, odpowiednio skonfigurowane (do pracy w sieci), nie ma żadnych firewalli (sieć lokalna), nazwy serwerow są poustawiane (w pliku hosts). O co może chodzić??
Pozdrawiam, Piotr
Marcin A. Guzowski - 13-05-2007 00:18
Piotr Porzucek wrote: > Witam, mam następujący problem, z którym nie mogę sobie poradzić: > > Sieć lokalna z 2 serwerami: > > A) SQL Server 2005 Express Edition (WindowsXP Sp2) > B) SQL Server 2005 Standard Edition (Windows 2003 Server Sp2) > > Próbuje wykonać transakcję rozproszoną z A -> B. Otrzymuję komunikat: > > "Transakcja została już jawnie lub niejawnie przekazana lub przerwana". > > Próbuje wykonać transakcję rozproszoną z B -> A. Otrzymuję komunikat: > > "No transaction is active." > > Transakcja jest bardzo prosta, w stylu: > > begin distributed tran > SELECT * FROM SerwerA.testowa.dbo.tabela; > commit > > Na obu komputerach są włączone MSDTC, odpowiednio skonfigurowane (do > pracy w sieci), nie ma żadnych firewalli (sieć lokalna), nazwy serwerow > są poustawiane (w pliku hosts). O co może chodzić??
O szereg rzeczy (niestety). Ogólnie rzecz biorąc różne wersje koordynatorów niekoniecznie się ze sobą lubią (wersje na różne systemy operacyjne).
Najpierw sprawdź network issues. Nie chodzi tutaj tylko o firewalle/sieć. MSDTC tak na prawdę śmiga po RPC, więc czasem w tej usłudze może być coś nie tak. Kompleksowo testy możesz załatwić sobie fajnym narzędziem - DTCPingiem:
http://www.microsoft.com/downloads/d...displaylang=en
Jeżeli doprowadzisz do sytuacji, że narzędzie to wykaże prawidłową komunikację, to na 95% wszystko pójdzie prawidłowo przy prawdziwej transakcji rozproszonej.
Drugą sprawą jest prawidłowa konfiguracja obydwu MSDTC. Mówiąc, że masz to odpowiednio skonfigurowane, możesz być w dużym błędzie, zwłaszcza na XP, gdzie domyślnie wszystko jest powyłączane. Poczytaj, posprawdzaj:
http://support.microsoft.com/?id=817066 http://blogs.msdn.com/florinlazar/ar...18/159127.aspx
Microsoft się do tego nie przyznaje, ale już mi się zdarzyła sytuacja, że dwie konkretne wersje MSDTC za żadne skarby nie chciały ze sobą współpracować.. też i tak bywa (ale szanse na to, że tak jest w Twoim przypadku, to ok 1/1000).
-- Pozdrawiam, Marcin Guzowski http://guzowski.info
Piotr Porzucek - 13-05-2007 00:18
Marcin A. Guzowski napisał(a): > > > O szereg rzeczy (niestety). Ogólnie rzecz biorąc różne wersje > koordynatorów niekoniecznie się ze sobą lubią (wersje na różne systemy > operacyjne). > > Najpierw sprawdź network issues. Nie chodzi tutaj tylko o > firewalle/sieć. MSDTC tak na prawdę śmiga po RPC, więc czasem w tej > usłudze może być coś nie tak. Kompleksowo testy możesz załatwić sobie > fajnym narzędziem - DTCPingiem: > > http://www.microsoft.com/downloads/d...displaylang=en > > > Jeżeli doprowadzisz do sytuacji, że narzędzie to wykaże prawidłową > komunikację, to na 95% wszystko pójdzie prawidłowo przy prawdziwej > transakcji rozproszonej. > > Drugą sprawą jest prawidłowa konfiguracja obydwu MSDTC. Mówiąc, że masz > to odpowiednio skonfigurowane, możesz być w dużym błędzie, zwłaszcza na > XP, gdzie domyślnie wszystko jest powyłączane. Poczytaj, posprawdzaj: > > http://support.microsoft.com/?id=817066 > http://blogs.msdn.com/florinlazar/ar...18/159127.aspx > > Microsoft się do tego nie przyznaje, ale już mi się zdarzyła sytuacja, > że dwie konkretne wersje MSDTC za żadne skarby nie chciały ze sobą > współpracować.. też i tak bywa (ale szanse na to, że tak jest w Twoim > przypadku, to ok 1/1000). > > >
OK, dziękuje za odpowiedź. Z problemem w sieci lokalnej sobie poradziłem - transakcje rozproszonę śmigają, DTCTester poprawnie się uruchamia w obie strony. Teraz, chciałbym uruchomić transakcję z zewnętrznym serwerem (nie działają niestety). Mam znowu 2 serwery:
A) SQL Server 2005 Standard Edition (Windows 2003 Server Sp2) (mój w sieci lokalnej) B) SQL Server 2005 (zewnętrzny)
Pomiędzy nimi *firewall*. Mam dostęp jedynie do serwera A. Zapytania rozproszone działają bez problemu w obie strony.
Próbuje wykonać transakcję rozproszoną z *A* -> *B*. Otrzymuję komunikat:
"No transaction is active."
Próbuje wykonać transakcję rozproszoną z *B* -> *A*. Otrzymuję komunikat:
"Transakcja została już jawnie lub niejawnie przekazana lub przerwana".
Biorąc pod uwagę, że w sieci lokalnej serwer *A* działa dobrze to wnioskuję, że coś może być nie tak z portami. Serwer B podobno jest poprawnie skonfigurowany. Na firewallu mam ustawione, żeby forwardować porty 1433 i 135 (RPC). O czym zapomniałem?
Pozdrawiam, Piotr
Marcin A. Guzowski - 13-05-2007 00:18
Piotr Porzucek wrote: > (..) > Biorąc pod uwagę, że w sieci lokalnej serwer *A* działa dobrze to > wnioskuję, że coś może być nie tak z portami. Serwer B podobno jest > poprawnie skonfigurowany. Na firewallu mam ustawione, żeby forwardować > porty 1433 i 135 (RPC). O czym zapomniałem?
Na pewno co najmniej o tym, żeby się dowiedzieć, jak działa usługa RPC.
Na porcie 135 chodzi tylko tzw. epmap (RPC End Point Mapper). To usługa dynamicznego przydzielania docelowego portu RPC. Rzeczywista komunikacja RPC (np. transakcja rozproszona) wcale nie idzie na zasadzie
HostA:135 <-> HostB:135
tylko odbywa się na wyższych portach.
AFAIK domyślnie zakres przydzielania na Windows 2003 obejmuje porty 1024 - 5000. Teoretycznie zakres ten da się modyfikować za pomocą RPC Configuration Tool (rpccfg.exe) i tylko te przepuszczać na firewallach, w praktyce podobno nie jest tak pięknie i nie da się zmienić domyślnego zakresu (tak się kiedyś dowiedziałem od sieciowców u mnie w firmie).
-- Pozdrawiam, Marcin Guzowski http://guzowski.info
Piotr Porzucek - 14-05-2007 00:03
Marcin A. Guzowski napisał(a):
> Na pewno co najmniej o tym, żeby się dowiedzieć, jak działa usługa RPC. > > Na porcie 135 chodzi tylko tzw. epmap (RPC End Point Mapper). To usługa > dynamicznego przydzielania docelowego portu RPC. Rzeczywista komunikacja > RPC (np. transakcja rozproszona) wcale nie idzie na zasadzie > > HostA:135 <-> HostB:135 > > tylko odbywa się na wyższych portach. > > AFAIK domyślnie zakres przydzielania na Windows 2003 obejmuje porty 1024 > - 5000. Teoretycznie zakres ten da się modyfikować za pomocą RPC > Configuration Tool (rpccfg.exe) i tylko te przepuszczać na firewallach, > w praktyce podobno nie jest tak pięknie i nie da się zmienić domyślnego > zakresu (tak się kiedyś dowiedziałem od sieciowców u mnie w firmie). >
Dzięki za odpowiedź. Wyeliminowałem firewall i teraz jestem bezpośrednio podłączony do Internetu. Czyli teraz nie powinno być problemów z RPC. A jednak nie... Dostaję ten sam komunikat. Czy problemem może być to, że korzystam z dynamicznych DNS-ów (mam neostradę)? Gdzieś czytałem, że Sql Servery muszą znać swoje nazwy DNS/Netbios podczas komunikacji.
Pozdrawiam, Piotr
zanotowane.pldoc.pisz.plpdf.pisz.pleffulla.pev.pl
|
Wydajność baz danych w zależności od poziomu izolacji ANSI/ISO
Czy zna (obsługuje) ktoś program Iso Draw ?
MYSQL - kodowanie w ISO-PL
strona plus baza w iso do utf-8
Kodowanie: z iso na utf
Konwesja znaków w dump'ie bazy danych - ISO -> utf-8 -> ISO -> utf-8
=?iso-8859-2?q?Co_oznacza_b=B3=B1d_Warning:_mysql=5Fconnect() _[function.mysql-connect]:_Can't_connect_to_local_MySQL_server_through_sock et_'/var/run/mysqld/mysqld.sock'_(2)_in?=
=?iso-8859-2?q?Ati_Mobility_Radeon_X300_W_Notebooku_Jak_Zwi=E Akszy=E6_Ilo=B6=E6_Grafiki_Poprzez_Wsp=F3=B3dziele nie_Z_Ramu=3F=3F=3F?=
=?ISO-8859-2?Q?=AFegnam_si=EA=2E=2E=2E?=
Manager =?ISO-8859-2?Q?font=F3w=2E=2E=2E?=
zanotowane.pldoc.pisz.plpdf.pisz.plnatalia97.htw.pl
Cytat
Decede mihi sole - nie zasłaniaj mi słonca. Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści Hoc fac - tak czyń. A tergo - od tyłu; z tyłu. I czarne włosy posiwieją. Safona |
|