Biuletyn techniczny CDN OPT!MA 11.0. Konfiguracja połączenie z serwerem MSSQL 2000 Copyright 2006 COMARCH SA
Połączenie z serwerem MSSQL 2000 CDN OPTIMA jest aplikacją wykorzystującą technologię SQL. Pod tym jednym pojęciem kryje się kilka rozbudowanych mechanizmów. Jednym z nich jest mechanizm pośredniczący w przenoszeniu zapytań do Sewera MSSQL. PoniŜszy rysunek przedstawia warstwy pośredniczące w przepływie informacji pomiędzy aplikacją a MSSQL Serwerem: *) Opis poszczególnych warstw i moŝliwości ich konfiguracji. Warstwa Aplikacji i interfejsów programistycznych : Program w przekazywaniu informacji do serwera wykorzystuje bezpośrednio dwa interfejsy programistyczne: OLE DB ADODB, który przejmuje większy cięŝar połączenia z bazą ODBC uŝywany przez mechanizmy wydruków Konfiguracja połączenia z serwerem MSSQL 2000 Str. 2
Zarówno warstwa ODBC jak i OLE DB do wymiany danych wykorzystują API Super Socjet Net-Library. Warstwa Net-Library po stronie klienta. Warstwa ta zajmuje się tworzeniem strumienia danych oraz nadzoruje wybór protokołu po którym zostaną przekazane dane do serwera SQL. Jeśli na komputerze klienta nie ma wyspecyfikowanego protokołu, który będzie uŝyty do transmisji danych to nawiązanie połączenia z serwerem będą odbywało się z uŝyciem protokołów w następującej kolejności: TCP\IP; IXP\SPX; Named Pipes Istnieje moŝliwość określenia, poprzez które protokoły sieciowe mają być przekazywane dane do mechanizmami Net-Library po stronie serwera - słuŝy do tego program CLICONFG. Program CLICONFG umoŝliwia zmianę domyślnej kolejności protokołów, w której nawiązywane jest połączenia z SQL serwerem. Ponadto pozwala ona na wybranie i konfigurację konkretnego protokołu dla stworzenia połączenia z wybranym serwerem MSSQL. Konfiguracje pojedynczego protokołu dla potrzeb połączenia z konkretnym serwerem MSSQL wykonuje się na zakładce Alias: Ustalenie określonego protokołu dla połączenia z serwerem MSSQL moŝe mieć znaczenie w sieciach z zainstalowaną większą ilością protokołów sieciowych lub przy problemach z ich ustawieniami. Konfiguracja połączenia z serwerem MSSQL 2000 Str. 3
Warstwa protokołów sieciowych. Warstwa Net-Library dla protokołów TCP\IP i IPX\SPX odwołuje się bezpośrednio do mechanizmów komunikacji sieciowej poprzez API Windows Socket 2. W przypadku pozostałych protokołów np. Named Pipes wywoływane są dodatkowe warstwy pośredniczące. Zapora ogniowa. W przypadku połączenia do serwera na którym zainstalowana jest zapora ogniowa konieczne jest dodanie wyjątków do zapory pozwalający na komunikację z serwerem MSSQL. Informacje o protokołach i portach jakie wykorzystuje serwer znaleźć moŝna w pliku ERRORLOG instancji serwera. W przypadku pracy serwera MSSQL na komputerze z systemem Windows XP SP2 system ten jest wyposaŝony standardowo w zaporę ogniową. Zapora ta wymaga równieŝ konfiguracji w celu dodania do niej wyjątków dla połączenia z serwerem MSSQL. Pełną konfigurację zapory ogniowej z Windows XP SP 2 wykona automatycznie program konfigurujący serwer MSSQL ( Instalacja serwisu klucza HASP ) z płytki instalacyjnej programu lub instalator programu CDN Optima dla instalacji jednostanowiskowej przy załączeniu parametru: Udostępnij bazę na inne stanowiska. Warstwa Net-Library po stronie serwera. Net-Library po stronie serwera pośredniczy w odbieraniu strumienia danych do serwera SQL. Domyślnie mechanizm Net-Library wykorzystuje wszystkie aktywne protokoły zainstalowane na komputerze serwera. MoŜna jednak skorygować listę uŝywanych protokołów. SłuŜy do togo program narzędziowy SVRNETCN. Znajduje się on w binariach narzędzi serwera w katalogu:..\microsoft SQL Server\80\Tools\Binn. Przykładem uŝycia programu moŝe być zmiana domyślnych ustawień w obrębie konkretnego protokołu, Np. dla protokołu TCP\IP istnieje moŝliwość zmiany portu, którym dana instancja wykorzystuje. Konfiguracja połączenia z serwerem MSSQL 2000 Str. 4
Dodatkowym miejscem, w którym moŝna znaleźć informacje dotyczące protokołów oraz ich ustawień jest pliku ERRORLOG serwera SQL ( katalog LOG w katalogach związanych z instancją serwera ) Rozwiązywanie Problemów przy połączeniu do MSSQL serwera. Program podczas uruchomienia odczytuje z kluczy związanych z programem informację o: nazwie bazy konfiguracyjnej nazwie serwera na którym znajduje się baza konfiguracyjna. Informacje te są przechowywane w kluczach: HKCU\Software\CDN\CDN Opt!ma\CDN Opt!ma\Login\KonfigConnectStr. W przypadku błędu w trakcie nawiązywania połączenia, reakcją ze strony programu będzie wyświetlenie wizarda Przygotowanie do uruchomienia serwera. Po wykluczeniu tego, Ŝe błąd jest spowodowany wprowadzeniem nieprawidłowej nazwy serwera lub zatrzymaniem serwera moŝemy przystąpić do diagnozowania problemu. Naszym celem jest utworzenie połączenia poprzez protokół, który pracuje prawidłowo na stanowisku sieciowym oraz na Serwerze. Kroki jakie naleŝy wykonać: 1. Sprawdzić jakie protokoły wykorzystują mechanizmy Net-Library serwera. plik ERRORLOG program SVRNETCN 2. Sprawdzić czy na serwerze (lub brie-u) nie pracuje zapora ogniowa blokująca dostęp do serwera komputerom z sieci lokalnej. 3. Określić jakie protokoły sieciowe są zainstalowane na komputerze klienta. 4. Metodą niezaleŝną nawiązujemy połączenia do serwera MSSQL np. zakładając źródło ODBC. 5. Wykonanie korekty ustawienia protokołów sieciowych w szczególności TCP\IP. 6. W razie konieczności zakładamy odpowiednio skonfigurowany Alias dla połączenia do serwera. 7. Ponownie nawiązujemy połączenie z serwerem SQL za pomocą OPTIMY. Przykład korekty ustawień klienta przy nawiązania połączenia z bazą MSSQL. Dysponujemy prawidłowo funkcjonującym serwera MSSQL o nazwie KOMPUTER\CDN_OPTIMA. Jedna z końcówek mimo podania prawidłowej nazwy serwera nie nawiązuje z nim połączenia. Wykonujemy procedurę zgodną z podaną w akapicie: Rozwiązywanie Problemów przy połączeniu do MSSQL serwera. 1. Z pliku ERRORLOG serwera znajdujemy protokoły, po których nasłuchuje serwer.. 2002-06-26 08:23:36.62 server SQL server listening on TCP, Shared Memory 2002-06-26 08:23:36.62 server SQL server listening on 10.8.2.163:1030, 127.0.0.1:1030. Konfiguracja połączenia z serwerem MSSQL 2000 Str. 5
Z powyŝszego fragmentu errorlog-a dowiadujemy się, Ŝe serwer nasłuchuje połączeń lokalnych poprzez Shared Menory i TCP ( urządzenia Loop back ) oraz z uŝyciem protokołu TCP/IP dla portu 1030 na adresie IP 10.8.2.163. 2. Komputer lokalny posiada jedynie zainstalowany protokół TCP 3. Tworzymy źródło ODBC do serwera MSSQL. Dla skonfigurowania DSN (Data Source) w źródłach ODBC wywołujemy ich manager z Panel Sterowania \ Narzędzia administracyjne \ Źródła danych ODBC dla win 98 i ME Panel Sterowania \ Źródła danych ODBC I za pomocą wizarda konfigurujemy źródło DSN Driver : SQL serwer Nazwa : Cwiczenia Serwer : Pełana nazwa serwera np. KOMPUTER\CDN_OPTIMA Autentykacja : SQL Login : SA Hasło : Login bezpośrednio po instalacji MSDE nie jest zabezpieczony hasłem. Po wpisaniu loginu i przejścia do kolejnego okna wizard nawiązuje połączenia z serwerem MSSQL. Jeśli komunikacja z serwerem nie jest moŝliwa to pojawi się błąd, najczęściej źródłem błędu będzie DBNETLIB. 4. W celu sprawdzenie stanu połączenia z serwerem SQL uruchamiamy komendę PING, podając nazwę komputera na którym jest zainstalowany serwer MSSQL: PING KOMPUTER W naszym przypadku zwraca ona nieprawidłowe rezultaty. Wykonujemy kolejny raz komendę PING podając zamiast nazwy NETBIOSOWEJ adres IP serwera: PING 10.8.2.163 Komenda zwraca prawidłowy rezultat. A więc problem w naszym przypadku związany jest ze złym funkcjonowaniem protokołu NETBIOSA na stacji roboczej. W takim razie rozwiązaniem problemu było by poprawienie konfiguracji otoczenia sieciowego lub skonfigurowanie Net-Library konfigurując na stałe połączenie z tym serwerem. Dla celów naszego przykładu skonfigurujemy Net-Libray klienta konfigurując odpowiednio Alias dla połączenia. Konfiguracja połączenia z serwerem MSSQL 2000 Str. 6
5. Konfiguracje klienta Net-Library moŝemy wykonać bezpośrednio z wizarda podłączenia źródeł ODBC. SłuŜy do tego button Client Configuration Wywołuje on ekran konfigurujący ALIAS połączenia identyczny z tym, który moŝemy wywołać w programie CLICONFG. W oknie tym ustawiamy: Nazwę Aliasu : KOMPUTER\CDN_OPTMA Protokół : TCP\IP Nazwę serwera : podajemy jego adres IP 10.8.2.163 Wyłączamy dynamiczne wybieranie portu. Nr Portu : 1030 Lub Nazwę Aliasu : KOMPUTER\CDN_OPTMA Protokół : TCP\IP Nazwę serwera : podajemy jego adres IP 10.8.2.163\CDN_OPTMA Załączamy dynamiczne wybieranie portu. Po zamknięciu okna konfigurującego ALIAS przechodzimy do kolejnego okna wizarda. Pozostawiając domyślne ustawienia; nie mają one znaczenia dla naszego testu. Na zakończenie wykonujemy testowanie załoŝonego źródła DNS. Prawidłowo wykonany test daje nam pewność, Ŝe warstwa Net-Library jest przygotowana. 6. Po złoŝeniu źródła ODBC do serwera mechanizmy Net-Library zostały skonfigurowane moŝemy więc bez przeszkód uruchomić program. Net-Library uŝyje tych samych ustawień dla drivera OLE DB w nawiązywaniu połączenia z MSSQL serwerem co w przypadku ODBC. Dodatkowe materiały związane z tematem artykułu moŝna znaleźć na stronie : http://msdn.microsoft.com/sql/ SQL Server Book s online *) Przy transmisji danych do serwera zainstalowanego na tym samym komputerze warstwa NET-Library wykorzystuje transmisje poprzez bufor w pamięci operacyjnej. Mechanizmy sieciowe nie są wykorzystywane. Transmisja taka jest znaczenie szybsza niŝ przekazywanie danych poprzez warstwę protokołów sieciowych. Konfiguracja połączenia z serwerem MSSQL 2000 Str. 7