Skocz do zawartości

dane ze strony sello - dziwne

Polecane posty

Witajcie,

 

Opiekuję się 4 kompami pracującymi z sello w sieci. Handlowcy raz na jakiś czas zgłaszają mi, że klienci piszą, że zmienili np. adres na stronie sello, ale paczka poszła pod domyślny adres z allegro. Handlowcy zarzekają się, że czerwonego wykrzyknika nie było.

Dziś znów miałem taki przypadek. Sprawdziłem dokładnie i faktycznie klient na stronie miał wpisane nowe dane (data zmiany czwartkowa), a w sello znalazłem jego paczkę już wysłaną do zupełnie innego miasta na zwykły adres allegrowy (obrobiona transakcja i paczka w piątek, więc doba różnicy, więc musiało być w tym czasie conajmniej kilka wyślij/odbierz dane).

Kazałem sello awaryjnie pobrać wszystkie dane ze stron sello i po 2 godzinach dzwonią do mnie handlowcy, że ich zasypało czerwonymi wykrzyknikami!!! Czyli to by oznaczało, że wiele takich danych nie było pobieranych.

Ustawienia automatycznego pobierania są OK 100% - co dwie godziny.

 

Pytanie - jaki jest algorytm pobierania danych ze strony sello. W jakiej sytuacji sello może zacząć pomijać te dane, np. odbierając najnowsze bez problemu. Czy np. uwalenie się kompa lub sieci w momencie pobierania danych ze stron, może skutkować tym, że nie pobrane przez uwałkę dane będą już na amen pomijane. No chyba, że się da awaryjne pobranie?

 

Sutyacja ogromnie niewygodna, bo nigdy nie wiemy, czy wysyłamy paczki pod właściwy adres, a jak się okazuje wysyłamy je... w kosmos.

 

---

ARTi

Link to postu

Algorytm jest taki, że Sello wybiera transakcje, które są trwające i odpytuje serwer o zmiany na stronach tych transakcji. Jedyny błąd jaki mi się w tej chwili nasuwa to taki, że Sello źle wybiera transakcje przy pewnych warunkach. Samo wybieranie transakcji o jakie trzeba zapytać serwer strefy jest opatrzone kilkoma warunkami (muszę zajrzeć do kodu a teraz nie mam dostępu, żeby powiedzieć jakie dokładnie).

 

Druga sprawa to taka, że jeśli przy odpytywaniu się o zmiany wystąpi jakiś błąd, to serwer strefy nie zwróci żadnych danych - proszę zwrócić uwagę czy występuje błąd przy sprawdzaniu zmian na stronach przy synchronizacji.

 

Jeśli nie ma błędu, to proszę z kilku transakcji, które nie uaktualniały danych ze stron podesłać historie.

Link to postu

Druga sprawa to taka, że jeśli przy odpytywaniu się o zmiany wystąpi jakiś błąd, to serwer strefy nie zwróci żadnych danych - proszę zwrócić uwagę czy występuje błąd przy sprawdzaniu zmian na stronach przy synchronizacji.

 

Jeśli nie ma błędu, to proszę z kilku transakcji, które nie uaktualniały danych ze stron podesłać historie.

 

Poczekam aż ponownie handlowcy zwrócą się z tym problemem (jak mówię wystąpił on już kilka razy) i spróbuję przeanalizować dokładniej co się działo (log) oraz wyszukać konkretne przykłady.

 

Sugestia nasuwająca mi się teraz: oddział, gdzie pracują handlowcy na sello jest w innym mieście. Ja w zasadzie łączę się z sello z serwerem  zdalnie od czasu do czasu aby np. coś poustawiać, odświeżyć, czy popatrzeć w logi. Nie mniej zdalne łączenie miewa czasem to do siebie, że łącze czasem padnie. Właśnie miałem taki przypadek, że w trakcie wyślij/odbierz wszystko (jako końcówkę) padło mi połączenie. I teraz:

1. Czy taka sytuacja nie spowoduje właśnie pomijania w późniejszych pobraniach danych stron sello, których pobieranie zostało przerwane.

2. Widzę właśnie (Ooo!) w raporcie, że niektórych operacji żadna końcówka nie może wysłać/odebrać bo są zablokowane przeze... mnie, a dokładniej przez połączenie, które zostało urwane, a którego już nie ma!!!

Ad 2. W jaki sposób mogę usunąć taką nienaturalną blokadę?

Ad 2 cd. Zamknięcie wszystkich końcówek i przeładowanie bazy danych nic nie dało. Nadal 4 zadania "wiszą" w raporcie jako "w trakcie" przez użytkownika, który nie jest podłączony do bazy.

 

Upps... sorry za chaos w liście ale pisałem na bieżąco zaglądając w 5 komputerów, które stoją w innym mieście ;)))

 

Link to postu

Spróbuję jeszcze raz mniej chaotycznie:

1. Użytkownik A łączy się sello z serwerem. Rozpoczyna wyślij/odbierz (W/O).

2. Sello użytkownika A zakłada blokady w bazie danych na operacje, które aktualnie wykonuje (pobranie stron, pobranie aukcji, transakcji ect.), wykonuje daną operację i zdejmuje blokadę. Blokada jest po to by inne końcówki nie zrobiły tego samego w tym samym czasie. Wszystko jest jak na razie OK.

3. Po założeniu blokady na operację X i rozpoczęciu tej operacji użytkownik A pada (wiesza mu się komp, pada łącze jak u mnie, sąsiad zalewa mu mieszkanie ect..). Najwazniejsze, że nie ma zdjęcia blokady oraz połączenie użytkownika dla serwera przestało istnieć.

4. Użytkownik B włącza Sello, łaczy się z bazą i rozpoczyna W/O. Sello robi kolejne operacje W, Y, Z, chce zrobić operację X, patrzy ! a tu cholewka blokada. Znaczy jakiś inny łoś robi to zadanie to se odpuszczę. I zadanie X zostaje pominięte.

5. Użytkownik A odzyskał świadomość, osuszył mieszkanie i ponownie uruchomił Sello. Łaczy się z serwerem, z bazą, uruchamia W/O. I... sytuacja identyczna jak w pkt.4 bo mimo, że jest nadal tym samym użytkownikiem A i nie przechodził operacji plastycznych, to jednak dla serwera jego połączenie jest już zupełnie inną instancją. A blokada na operacji X w bazie jak wisiała tak wisi.

 

W efekcie jeśli nikt nie zauważy, teoretycznie zadanie X może w ten sposób zostać zablokowane do końca świata a nawet o jeden dzień dłużej.

 

Dobrze to sobie wykombinowałem?

 

Link to postu

No i jeszcze jeden i jeszcze raz i na dzisiaj dość pisania ;)

 

Właśnie kuknąłem w tabelę ins_blokada.

Wszystkie trzy włosy na głowie mi się zjeżyły bo wiszą tam 3 blokady

z 13 maja (dzisiejsza)

z 5 maja

z 23 kwietnia

Wszystkie oczywiście z nazwiskami winowajców ect...

 

Niezłe nie? Tylko, że ani jedno sello w tym momencie nie jest uruchomione i podpięte do bazy.

 

Heeeeeeeeeelpppp

 

Link to postu

Gdyby każdy tak opisywał problem podając od razu wyjaśnienie to był by raj :).

 

Jakie wartości są w tej tabeli zwłaszcza obtype i obid?

 

Same wpisy tej tabeli nie są groźne, jeśli jest tam jakiś wpis to nie uniemożliwia on założenie kolejnej blokady na ten sam obiekt. Same blokady zakładane są przez serwer SQL i w przypadku nagłej utraty połączenia (zwłaszcza przy pracy zdalnej) serwer SQL może nie zauważyć, że jeden z klientów się rozłączył trzymając w ten sposób sesję, na którą założona jest blokada. Stąd najprostszym rozwiązaniem powinien być restart serwera SQL. Czy to pomaga na zaistniałą sytuację?

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

Gdyby każdy tak opisywał problem podając od razu wyjaśnienie to był by raj :).

 

Jakie wartości są w tej tabeli zwłaszcza obtype i obid?

 

Same wpisy tej tabeli nie są groźne, jeśli jest tam jakiś wpis to nie uniemożliwia on założenie kolejnej blokady na ten sam obiekt. Same blokady zakładane są przez serwer SQL i w przypadku nagłej utraty połączenia (zwłaszcza przy pracy zdalnej) serwer SQL może nie zauważyć, że jeden z klientów się rozłączył trzymając w ten sposób sesję, na którą założona jest blokada. Stąd najprostszym rozwiązaniem powinien być restart serwera SQL. Czy to pomaga na zaistniałą sytuację?

 

Sam jestem informatykiem stąd długie i monotonne opisywanie tematu ;))) A dokładniej - sam próbuję zdiagnozować i rozwiązać problem zanim zacznę krzyczeć, że jest be.

Restart serwera ms chyba pomaga, bądź potrzeba mu dłuższego czasu (godzin/dni) od zniknięcia klienta. Bo wpisy faktycznie po jakimś czasie znikają.

Co do wartości obtype i obid to ich niestety nie spisałem. Ale jak będzie okazja i problem będzie się pojawiał to nieomieszkam.

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ę...