Forum Użytkownikow Subiekt GT
InsERT GT => Subiekt GT => Wątek zaczęty przez: retolak w Wrzesień 26, 2017, 12:03:45
-
Witam wszystkich forumowiczów,
zarejestrowałem się na tym forum, ponieważ mam problem, którego nie umiem rozwiązać od dłuższego czasu. Mianowicie praktycznie zawsze po równych 2 godzinach Subiekt traci połączenie z bazą. Można wszystko przeglądać, ale gdy chce się coś wprowadzić, np. nowy wzorzec wydruku, zamówienie od klienta, fakturę itp. pojawiają się błędy typu: "Nieokreślony błąd", "Błąd zapisu do bazy danych", "Nie można nadać identyfikatora" itp. W takiej sytuacji pomaga wyłączenie i włączenie Subiekta (czasem kilkukrotnie). Jest to dosyć meczące, ponieważ trzeba pamiętać o resetowaniu Subiekta co 2 godziny. Dzieje się tak zarówno na komputerach klienckich, które łączą się z serwerem (w sieci LAN po kablu) jak i na serwerze lokalnie. Na początku myślałem, że to jakiś problem z antywirusem, bo zaczęło się tak dziać jakiś czas po instalacji ESET Endpoint Security 6 na serwerze. Jednak dodałem reguły w firewallu dla sqlservr.exe oraz dla sqlbrowser.exe i problem dalej nie ustępował. Odinstalowałem nawet ESETa, ale to nic nie pomogło (teraz ESET jest zainstalowany ponownie).
Dlatego też napisałem w tej sprawie do InsERTu, zrobiłem wszystko co kazali:
- kontrola danych oraz odbudowa indeksu w Programie serwisowym.
- analiza rozwiązań zewnętrznych. Mamy zielony PLUS dla InsERT GT oraz Sferę dla Subiekta. Jeśli chodzi o dodatki, mieliśmy wersję demo potwierdzenia sald (ale to już dawno) i była ona programem zewnętrznym. Używamy kilku wzorców wydruków zewnętrznych oraz własnych (ale to chyba nie ma znaczenia?) oraz mamy wtyczkę do raportu nierozliczonych należności. Ale jest to zestawienie (bodajże SQL), które jest tylko w Zestawieniach. Wszystkie te rozwiązania mieliśmy już przynajmniej od kilku miesięcy w Subiekcie, a problem jest od kilku tygodni, więc myślę, że to nie to.
- sprawdzenie czy na komputerach klienckich zainstalowany jest SQL 2005 BC.
Jednak nadal problem nie ustąpił. Zaproponowali, żeby wysłać do nich naszą bazę i ją przeanalizują.
Na serwerze postawiony jest system Windows Serwer 2003 SBS, dlatego też wersja Subiekta to 1.47 SP2, bo od marca InsERT nie wspiera już tego systemu, dlatego nie instalowałem nowszych wersji Subiekta. SQL - Microsoft SQL Server 2005.
Co do SQLa - dwie sprawy:
1. Nie za bardzo znam się na bazach danych, ale w SQL Server Management Studio w Activity Monitor zauważyłem, że gdy ktoś jest połączony z Subiektem, w Activity Monitor jest 5 wpisów dotyczących danego hosta (4 hosty to nazwa komputera, a 1 host to jakaś kombinacja liter i cyfr, Subiekt chyba ją generuje). Gdy pada połączenie z danym użytkownikiem, z 5 hostów robią się 4 (3 hosty z nazwą komputera i 1 z tą kombinacją liter i cyfr). Wtedy dany użytkownik musi zresetować Subiekta, aby mógł coś dodać do bazy.
2. W kilku wątkach pisano, aby skorzystać z Profilera w celu sprawdzenia czy coś jest nie tak z bazą danych. Powinien być on w zakładce Tools, ale u mnie nie go tam nie ma. A z tego co widzę, SQL nie jest w wersji Express.
Już nie mam pomysłów co może być nie tak, szukałem również rozwiązań na tym forum, jednak żadne z nich nie zażegnało problemu. W związku z tym wszystkim mam dwa pytania:
1. Czy ktoś ma jeszcze jakąś radę odnośnie tego problemu? Jeśli pominąłem jakąś informację, proszę napisać i ją podam.
2. Czy ktoś z forumowiczów wysyłał bazę do InsERT w celu jej analizy? Wiadomo, że baza ma wrażliwe i poufne dane, dlatego trochę boję się wysyłać ją do InsERTu. Ewentualnie podpisywał ktoś z nimi jakąś umowę poufności dotyczącą swojej bazy?
Będę wdzięczny za wszelką pomoc. Pozdrawiam serdecznie.
-
Zrobił bym kilka rzeczy:
1. Podniósł wersję Servera SQL do najwyższej możliwej. SQL w wersji Express jest bezpłatny. Tylko trzeba to zrobić wg określonej procedury, bo pójście na żywioł i "jakoś to będzie" potrafi bardzo zaboleć.
2. Skontrolował bym poprawnoś i spójność bazy, można narzędziami SQL.
3. Nie wiem czy nie powinno być jako pkt. 1 - kontrola sieci, bo wygląda to na problemy z połączeniami sieciowymi.
4. Ewentualnie mogą być problemy wydajnościowe i tu są istotne parametry komputera świadczącego usługi serwerowe.
To tyle na początek.
-
Ad. 1
Jak pisałem, nie jestem zaawansowanym użytkownikiem odnośnie baz danych, mógłbyś napisać coś więcej odnośnie procedury ew. podrzucić jakiś link?
Ad. 2
Mógłbyś rozwinąć o jakie narzędzia chodzi? I czy kontrola danych oraz odbudowa indeksu z Programu serwisowego nie sprawdza właśnie spójności bazy?
Ad. 3
Też brałem to pod uwagę, ale w takim przypadku zalogowanie się do Subiekta lokalnie na serwerze nie powinno chyba zrywać połączenia? A tam też zrywa.
Ad. 4
Ale jeśli kilka lat wszystko działało dobrze i zużycie procesora i pamięci RAM nie jest nagle pod obciążeniem, to może być i tak to? sqlservr.exe zużywa jakieś 500 mb pamięci a ReportingServicesService.exe (to chyba też od bazy) z 75 mb.
BTW dzięki za zainteresowanie tematem.
-
Ad. 1
Jak pisałem, nie jestem zaawansowanym użytkownikiem odnośnie baz danych, mógłbyś napisać coś więcej odnośnie procedury ew. podrzucić jakiś link?
To może trzeba skorzystać z pomocy kogoś kto się na tym zna?
Nie wszystko da się załatwić pisaniem postów, niektóre rzeczy trzeba po prostu zrobić na miejscu.
-
candy, najpierw chciałbym jednak sprawdzić wszystkie możliwości, które jestem w stanie zrobić, bo jak podał Aldo, jest kilka powodów, dlaczego zrywa połączenie. Z drugiej strony, piszesz o skorzystaniu z pomocy kogoś kto się na tym zna - dlatego też biorę pod uwagę wysłanie bazy do InsERTu do analizy, żeby sprawdzili to mądrzejsi ode mnie w tym zakresie, ale jak wspominałem wcześniej, chciałbym wiedzieć czy ktoś z forumowiczów wysyłał InsERTowi swoją bazę i jakie ma z tym doświadczenia?
-
candy, najpierw chciałbym jednak sprawdzić wszystkie możliwości, które jestem w stanie zrobić, bo jak podał Aldo, jest kilka powodów, dlaczego zrywa połączenie. Z drugiej strony, piszesz o skorzystaniu z pomocy kogoś kto się na tym zna - dlatego też biorę pod uwagę wysłanie bazy do InsERTu
Rób jak chcesz.
Dla mnie wysyłanie archiwum bazy do insertu by stwierdzić dlaczego regularnie co 2 godziny program traci z nią połączenie, jest na tyle abstrakcyjnym pomysłem że w tym temacie sobie teraz już pomilczę.
-
Zawsze można wysłać bazę danych wraz z serwerem, siecią i końcówkami żeby było łatwiej zdiagnozować problem.
Czasem Insert naprawia bazy po przesłaniu do nich, ale biorąc pod uwagę przeczucie/doświadczenie staramy się Ci powiedzieć, że w tym przypadku to raczej nic nie da, bo najpierw wypadałoby wykluczyć inne prawdopodobne powody zrywania połączenia.
Jak chcesz samemu to diagnozować, to postaw sobie na dwóch nowych kompach serwer i końcówkę i po wgraniu bazy testuj, czy nadal się rozłącza. Tylko nie wpadnij na pomysł, by na tym normalnie pracować, bo pewnie nie uda Ci się wgrać tego z powrotem na stary serwer.
-
Ad. 1
Jak pisałem, nie jestem zaawansowanym użytkownikiem odnośnie baz danych, mógłbyś napisać coś więcej odnośnie procedury ew. podrzucić jakiś link?
Nie, bo jeśli się na tym nie znasz, to zrobisz więcej szkody niż pożytku.
Ad. 2
Mógłbyś rozwinąć o jakie narzędzia chodzi? I czy kontrola danych oraz odbudowa indeksu z Programu serwisowego nie sprawdza właśnie spójności bazy?
W większości przypadków to wystarcza, ale nie we wszystkich. Jak nie pomaga, to trzeba pogrzebać głębiej.
Ad. 3
Też brałem to pod uwagę, ale w takim przypadku zalogowanie się do Subiekta lokalnie na serwerze nie powinno chyba zrywać połączenia? A tam też zrywa.
Sprawdził bym trywialną rzecz - czy przypadkiem we właściwościach komputera-zasilanie lub samej karty sieciowej nie jest ustawione oszczedzanie energii i związane z tym usypianie. Na serwerze raczej nikt nie stuka w klawiaturę i może to być potraktowane przez system jako sygnał do uśpienia. Co by pasowało do dosyć regularnych przerw - ok. 2 godz.
Ad. 4
Ale jeśli kilka lat wszystko działało dobrze i zużycie procesora i pamięci RAM nie jest nagle pod obciążeniem, to może być i tak to? sqlservr.exe zużywa jakieś 500 mb pamięci a ReportingServicesService.exe (to chyba też od bazy) z 75 mb.
A skąd to wiesz?
BTW dzięki za zainteresowanie tematem.
Proszę bardzo.
-
Jak chcesz samemu to diagnozować, to postaw sobie na dwóch nowych kompach serwer i końcówkę i po wgraniu bazy testuj, czy nadal się rozłącza. Tylko nie wpadnij na pomysł, by na tym normalnie pracować, bo pewnie nie uda Ci się wgrać tego z powrotem na stary serwer.
Dzięki za podpowiedź, by nie przenosić bazy. Odnośnie końcówki - chodzi Ci o klientów końcowych, tj. np. komputer użytkownika, który łączy się z serwerem?
Sprawdził bym trywialną rzecz - czy przypadkiem we właściwościach komputera-zasilanie lub samej karty sieciowej nie jest ustawione oszczedzanie energii i związane z tym usypianie. Na serwerze raczej nikt nie stuka w klawiaturę i może to być potraktowane przez system jako sygnał do uśpienia. Co by pasowało do dosyć regularnych przerw - ok. 2 godz.
Zapomniałem o tym napisać. Wyłączyłem oszczędzanie energii w kartach sieciowych w menedżerze urządzeń jakiś czas temu i niestety to nie pomogło.
Ad. 4
Ale jeśli kilka lat wszystko działało dobrze i zużycie procesora i pamięci RAM nie jest nagle pod obciążeniem, to może być i tak to? sqlservr.exe zużywa jakieś 500 mb pamięci a ReportingServicesService.exe (to chyba też od bazy) z 75 mb.
A skąd to wiesz?
Skąd wiem ile zużywa? Jeśli o to Ci chodziło - kilka razy patrzyłem w menedżerze zadań i Process Explorerze na zużycie pamięci i procesora i przeważnie jest takie zużycie.
-
[Sprawdził bym trywialną rzecz - czy przypadkiem we właściwościach komputera-zasilanie lub samej karty sieciowej nie jest ustawione oszczedzanie energii i związane z tym usypianie. Na serwerze raczej nikt nie stuka w klawiaturę i może to być potraktowane przez system jako sygnał do uśpienia. Co by pasowało do dosyć regularnych przerw - ok. 2 godz.
Zapomniałem o tym napisać. Wyłączyłem oszczędzanie energii w kartach sieciowych w menedżerze urządzeń jakiś czas temu i niestety to nie pomogło.
Sprawdziłeś same karty sieciowe. A co się będzie działo jak serwer uśpi dyski?
Sprawdź wszystkie parametry komputera.
-
Jak chcesz samemu to diagnozować, to postaw sobie na dwóch nowych kompach serwer i końcówkę i po wgraniu bazy testuj, czy nadal się rozłącza. Tylko nie wpadnij na pomysł, by na tym normalnie pracować, bo pewnie nie uda Ci się wgrać tego z powrotem na stary serwer.
Dzięki za podpowiedź, by nie przenosić bazy. Odnośnie końcówki - chodzi Ci o klientów końcowych, tj. np. komputer użytkownika, który łączy się z serwerem?
Bierzesz dwa nowe komputery. Na jednym instalujesz SQL + Insert GT(wersja serwer), na drugim tylko InsertGT(wersja klient). Na serwerze wgrywasz za pomocą Archiwizatora kopię bazy danych z kłopotliwego serwera i testujesz na drugim komputerze czy wystąpią problemy.
Takie podejście, do przetestowania bazy danych jest mocno na wyrost, ale może w Twoim wypadku się sprawdzi.
-
Nie widzę powodu, dla którego baza danych miałaby być przyczyną problemu, ale jednocześnie można to prosto wykluczyć - wystarczy założyć nowy podmiot demo i zobaczyć co się stanie...