Komunikat ID -2147467259 „[DBNETLIB][ConnectionWrite] (send) Błąd połączenia.”
Prawdopodobnym źródłem problemu jest zerwanie połączenia sieciowego lub niedostępność jednego z zainstalowanych na komputerze/serwerze interfejsów sieciowych (dodatkowa karta sieciowa USB, ExpressCard, PCI itp). Rozwiązaniem w tym przypadku jest utworzenie aliasu dla instancji silnika bazy dedykowanej dla Comarch ERP Optima.
Jak skonfigurować alias do serwera SQL przedstawiono w pytaniu Nie mogę się połączyć z serwerem SQL – co zrobić ?
Ponadto problem ten może mieć następujące przyczyny:
- Rozłączenie wynikające z chwilowej utraty połączenia (niestabilna praca sieci).
Rozwiązanie polega na wyeliminowaniu nieprawidłowości w pracy sieci:
– zaniki sygnału w przypadku sieci radiowych (straty pakietów mogą doprowadzić do utraty połączenia),
– uszkodzone kable, uszkodzona karta sieciowa,
– błędy w działaniu urządzeń sieciowych takich jak router i switch,
– braki w zasilaniu urządzeń sieciowych,
– zmiany w konfiguracji urządzeń sieciowych itp. - Timeout połączenia.
Można zwiększyć timeout połączeń do serwera w konfiguracji programu Comarch ERP Optima w menu Start/Konfiguracja w gałęzi Stanowisko/ Użytkowe/ Parametry – pole: Limit czasu żądania SQL (Command Timeout). - Rozłączenia połączenia sieciowego, nawet jeżeli serwer pracuje lokalnie.
W tym wypadku można zastosować rozwiązanie polegające na założeniu „lokalnego” aliasu, który sprawi, że program będzie zawsze łączyć się z serwerem na konkretny adres.
Przykładowo, jeżeli na komputerze adres IP ma wartość 10.132.28.38 i łączymy się do serwera SQL, to połączenie może używać właśnie tego adresu chociaż tak naprawdę jest ono wykonywane lokalnie. Dlatego rozłączenie sieci spowoduje utratę adresu sieciowego 10.132.28.38 i co za tym idzie połączenia z serwerem SQL. W aliasie (sposób tworzenia aliasu został przedstawiony w artykule Nie mogę się połączyć z serwerem SQL – co zrobić?) możemy podać adres 127.0.0.1, który jest lokalnym adresem wirtualnym i niezależnym od podłączenia do sieci, wtedy mimo rozłączenia sieci nie następuje rozłączenie połączenia SQL. - Problem może być związany z włączoną funkcją TCP Chimney Offload.
Zalecamy jej wyłączenie (po stronie systemu i karty sieciowej).
Po stronie systemu można ją wyłączyć za pomocą polecenia:netsh int tcp set global chimney=disabledDodatkowo można wykonać polecenie, które wyłączy funkcję RSS (Skalowanie)
netsh interface tcp set global RSS = disabledPo stronie karty sieciowej powyższe funkcje można wyłączyć w poniższy sposób:1. Klikamy przycisk Start, klikamy polecenie Uruchom (lub używamy pola Wyszukaj programy i pliki), wpisujemy polecenie ncpa.cpl, a następnie klikamy przycisk OK (lub ikonę lupki).
2. Klikamy prawym przyciskiem myszy kartę sieciową, a następnie klikamy polecenie Właściwości.
3. Klikamy przycisk Konfiguruj, a następnie klikamy zakładkę Zaawansowane.
4. Na liście Właściwość klikamy pozycję Skalowanie po stronie odbierającej, klikamy opcję Wyłącz na liście Wartość, a następnie klikamy przycisk OK.
5. Na liście Właściwość klikamy pozycję Odciążanie TCP/IP (Uwaga: Różni producenci mogą używać różnych określeń dotyczących odciążania przy użyciu technologii TCP Chimney), klikamy opcję Wyłącz na liście Wartość, a następnie klikamy przycisk OK.
6. Powtarzamy kroki od 2 do 5 dla każdej karty sieciowej.
Więcej informacji:
http://support.microsoft.com/kb/951037
http://technet.microsoft.com/en-us/library/gg162709(v=ws.10).aspx
http://support.microsoft.com/kb/927168/pl - Zarządzanie energią dla karty sieciowej.
We właściwościach karty sieciowej (ścieżka dostępu podana we wcześniejszym punkcie) na zakładce Zarządzanie energią jest zaznaczony (domyślnie) parametr umożliwiający przejście karty sieciowej w stan uśpienia – Zezwalaj komputerowi na wyłączanie tego urządzenia w celu oszczędzania energii. Takie ustawienie może powodować utratę połączenia. Parametr można odznaczyć (zostawić pusty) – dzięki temu karta będzie włączona bez przerwy podczas pracy komputera.