Skocz do zawartości

[1.2.0] Sello gubi auto-sync przy dłuższym czasie pracy

Polecane posty

Sytuacja taka sama jak w poprzednich wersjach:

 

Jest serwer, który uruchamia MSSQL dla subiekta i sello. Jakoze włączony jest 24h/dobe odpalony jest na nim również klient Sello, który pełni funkcję automatycznego synchronizatora (odbieranie transakcji i komentarzy, tworzenie nowych wiadomości do transakcji, wysyłanie automatycznych wiadomości).

 

Serwisy aukcyjne: tylko odbieraj - 10 minut

Strefa Sello: nie synch.

Wiadomości: wysyłaj i odbieraj - 3 minuty

Subiekt GT: nie synch.

Użytkownik upowazniony do synchronizacji automatycznej: serwer

 

Klient sello odpalony na serwerze jest oczywiscie zalogowany jako uzytkownik "serwer". Nikt wiecej nie loguje sie na to konto.

 

Problem i zachowanie:

Sello "serwer" uruchomiony o godzinie 10 rano. Synchronizuje wszsytko ładnie. O 16 koniec pracy, reszta klientow sello jest wyłączana, pozostaje tylko "serwer" na serwerze :]. Odpalam o 10 rano nastepnego dnia sello na moim kompie i dopiero moje sello wysyła wiadomosci o nowych transakcjach do uzytkownikow. Sprawdzam wiadomości/wysłane i okazuje sie ze serwer wysyłał wiadomosci o nowych transakcjach np. do godziny 20:13. Czyli przypuszczam że mniej wiecej po tym czasie musiało nastapic zapętlenie. Wchodze na serwer, maksymalizuje sello i widze ze na pasku stanu sello przeskakują informacje typu Obieranie wiadomosci/ Wysylanie wiadomosci/ Pobieranie transakcji itp. Zmieniaja sie w szybkim tempie (ktore w tej wersji mozna ustawic w opcjach). Nie widnieje obok krzyzyk ktorym sie zatrzymuje trwajaca operacje - wskazuje to na to ze sello poprostu nie wykonuje nic w tym czasie. Zapetlilo sie w wyswietlaniu tych napisow i zapomialo o automatycznej synchronizacji.

 

Sytuacja zdaza sie przynajmniej 4 razy w tygodniu. Nie mam pojecia co ją wywołuje. Czasami potrafi działać jak nalezy przez 4 dni, czasami raptem pare godzin. Od dzisiaj zaczne dochdzenie w tej sprawie - bede przed wyjsciem z pracy restartowal sello o 16 na serwerze i obserwował jak sobie radzi przez obserwacje raportu oraz godzin wysylek utowrzonych automatycznie wiadomosci.

 

Jakies przypuszczenia co to moze byc? Spotkal sie ktos z takim problemem?

 

Jest to dość istotne, bo jak klient kupi sobie towar np o 1 w nocy, to dostaje maksymalnie po 10 minutach maila z wszystkimi danymi, instrukcjami do dokonczenia zakupów itp. i moze to od reki zrobic. W momencie gdy serwer sie zapetli, klienci zasypuja mailami z prosbami o konto, lub ile trzeba zaplacic itp. itd. i dopiero o 10 rano wysyłam im te wiadomosci gdy odpale swoje sello (jeszcze gorzej sytuacja wyglada w weekend - jesli serwer sie zapetli w piatek wieczorem to wiadomosci klienci dostana dopiero o 10 w poniedzialek, jako ze w week nie pracujemy).

Link to postu

Oczywiście, jak to w życiu bywa, u nas takiej sytuacji nie było ;). Aczkolwiek parę razy słyszałem/widziałem logi, że synchronizacja trochę wariowała. Samo wywoływanie synchronizacji jest raczej proste i zbyt wielu błędów zrobić się tam nie da. Więc zapewne na takie zachowanie ma wpływ jakiś czynnik zewnętrzny (na razie strzelam):

- połączenie z internetem zostało przerwane

- któraś synchronizacja strasznie zaczęła "mulić" (np serwer poczty był chwilowo niedostępny/obciążony)

 

inne możliwości nie przychodzą mi do głowy teraz. Trzeba będzie popatrzyć na to, ale bez pomocy w formie jakichś informacji od Was może być to ciężkie do powtórzenia.

Link to postu

Więc zapewne na takie zachowanie ma wpływ jakiś czynnik zewnętrzny (na razie strzelam):

- połączenie z internetem zostało przerwane

- któraś synchronizacja strasznie zaczęła "mulić" (np serwer poczty był chwilowo niedostępny/obciążony)

 

Masz racje Bartek. Tez uważam że przyczyną są czynniki zewnętrzne. Jednak możnaby wprowadzić procedury sprawdzające w czasie synchronizacji. Sello jednak powinno być przygotowane i wiedzieć co zrobić gdy np. nie mozna nawiazac połączenia z serwerem pocztowym, czy jeśli wogóle nie dostaje odpowiedzi od serwera DNS gdy net jest rozłączony z jakiejs przyczyny (co sie czasami zdarza). Wprowadzić jakis dodatkowy error handle i w wypadku niemożliwosci wykonania operacji zaprzestać danej synchornizacji i czekać najnormalniej w świecie na kolejną. Jeszcze prościej możnaby to rozwiązać wprowadzając najzwyklejszy timeout danej operacji. Dodatkowo do raportu przydałoby się dodać jakieś dodatkowe informacje z jakiego powodu wystąpiły błędy w synchronizacji. Przy jakim poleceniu itp. Łatwiej bedzie to debugować i dla usera tez bedzie to bardzo pomocne.

 

Jednym słowem nie zadbałeś dostatecznie o obsługe błedów pisząc ten moduł ;)

Link to postu

teoretycznie Sello jest na to przygotowane. A błędy tego typu zazwyczaj wynikają z jakichś złożeń kilku czynników, które nawet ciężko zasymulować. Na szczęście to nie ja pisałem ten moduł ;D. Pisałem obsługę strefy Sello (od nowa) i starałem się aby tam wyłapać wszelkie możliwe błędy i dokładnie je opisać w logu, żeby zawsze było wiadomo co się dzieje - żeby nie było błędów w stylu: Wystąpił błąd :). Jak to się sprawdzi, czas pokaże.

Link to postu
  • 2 tygodnie później...

jak narazie nie poradzilem sobie w zaden konwencjonalny sposob z problemem zapetlajacego sie sello. czesto zdazalo sie ze zostawala sama ikonka w trayu, a aplikacja byla poprostu wylaczona (tez nie wiadomo z jakiego powodu). jedyne rozwiazanie jakie przyszlo mi do glowy to zautomatyzowane restarty sello np. 2 razy w ciagu dnia zeby dzialalo po 12 godzin jako "swieze".

 

ja uzywam rozwiazania darmowego, prostego i skutecznego, moze sie komus przyda:

 

1. Pobieramy darmową wersje System Scheduler'a http://www.splinterware.com/download/ssfree.exe - zaplanowane zadania (harmonogram) w win xp to ogromna porazka. Instalujemy go oczywiście.

2. Pobieramy darmowy, bardzo uzyteczny programik NirCmd http://www.nirsoft.net/utils/nircmd.zip

3. Po rozpakowaniu NirCmd, wrzucamy plik nircmdc.exe do katalogu C:\WINDOWS

4. Ten krok jest elastyczny - można go zrobic na kilka sposobów. Jeden z nich to utworzyć plik typu BAT (np. selloclose.bat). Wrzucamy np. do C:\WINDOWS i edytujemy:

 

nircmd.exe closeprocess sello.exe

 

5. Odpalamy System Schedulera. Wybieramy Action->New event.

 

Title: Zamykanie Sello

Event Type: Run Application

Application: C:\WINDOWS\selloclose.bat

State: Normal

Schedule type: Every hour/Selected minutes

user choosen hours -> 4,16,23

user chooden minutes -> 15

 

Nastepny event:

 

Title: Uruchamianie Sello

Event Type: Run Application

Application: C:\Program Files\InsERT\Sello\Sello.exe

State: Minimized

Schedule type: Every hour/Selected minutes

user choosen hours -> 4,16,23

user chooden minutes -> 45

 

6. Oba eventy oznaczamy jako enabled i po sprawie. Sello bedzie się wyłączało 3 razy dziennie na 30 minut, po czym będzie włączane ponownie. W moim przypadku jest to przerwa 30 minutowa i 3 razy dziennie akurat o tych godzinach a nie innych, gdyż w tym czasie wykonywane są automatyczne backupy różnych baz MSSQL (Sello, Subiekt GT i inne) oraz pare innych rutynowych czynności (przez ktore całkiem mozliwe ze Sello sie zapetlało - nie wiadomo).

 

 

Jak pisalem wczesniej - rozwiazanie prostackie, ale skuteczne.

Link to postu

pomyslalem sobie ze warto bedzie zalozyc nowy topic jak wykonac zautomatyzowany i darmowy backup bazy sello i subiekta, wiec tam zobaczysz dokladniej jak to przebiega.

 

w zasadzie to pomyslalem sobie teraz ze problem zapetlania sello wystepowal zanim zrobilem te backupy, jednak byla to wowczas wersja 1.1.2 no ale moze cos z tego wymyslisz.

Link to postu

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.
Uwaga: Twój wpis zanim będzie widoczny, będzie wymagał zatwierdzenia moderatora.

Użytkownik forum
Odpowiedz...

×   Wklejono zawartość z formatowaniem.   Usuń formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

×
×
  • Dodaj nową pozycję...