Skocz do zawartości

Jak sprawdzić czy Sello pobiera dane (jest zajęte) ?

Polecane posty

Czy da się zapytaniem SQL sprawdzić czy aktualnie Sello pobiera dane?

Do tej pory odczytywałem wartości z tablicy jb__JOB ale tam czasami zawiesi się wpis i się nie aktualizuje. Może jest inna metoda? Chodzi o to, że chciałbym wiedzieć kiedy Sello jest wolne (czyli nie pobiera transakcji)

Link to postu

Przy synchronizacji jest zakładana blokada bazodanowa, wraz z nią wpis w tabeli ins_Blokada o identyfikatorach

obtype = 726 (synchronizacja)

obextra:

10 - odbierz parametry
11 - serwisy aukcyjne, odbierz
12 - serwisy aukcyjne, wyślij

Możesz spróbować po tym sprawdzać, czy jest taki wpis.

 

 

Link to postu

Dzięki za odpowiedź.

Sprawdziłem to i w trakcie pobierania formularzy czy też transakcji po wywołaniu zapytania

SELECT * FROM ins_Blokada where obtype = '726'

dostaje wynik, gdzie wszystkie wpisy mają obextra = 0 (nawet jak usunę warunek 'where obtype = '726' to wszystkie wyniki i tak maja obextra = 0)

Jakieś wskazówki?

Mam jeszcze pytanie - co jeżeli nagle komputer odłączy się od sieci w trakcie synchronizacji? przypuszczam, że wpis w tabeli ins_Blokada zostaje. Kiedy on zniknie?

Link to postu

Ten wpis w tabeli ins_blokada jest tylko po to, żeby inne instancje mogły wyświetlić kto na którym komputerze zablokował obiekt. Tak naprawdę zakładana jest bazodanowa blokada (application lock w tabelach systemowych). Jeśli zerwie się połączenie to ten lock może pozostać w bazie - co objawia się wtedy w programie permanentną blokadą obiektu, pomimo, że nikt fizycznie w danej chwili nie blokuje obiektu. Blokady znikają po restarcie serwera SQL, bo są założone na sesję.

Z tym obextra, możliwe, że ten id blokady konkretnej synchronizacji trafia do tej blokady bazodanowej, a tutaj jest 0, ponieważ jest to sztuczny, nieistniejący obiekt tak naprawdę.

Link to postu
  • 5 tygodni później...

Przyjrzałem się tematowi ponownie.

jb__Job - kiedyś to dobrze działało, wpisy były aktualne ale od jakiegoś czasu potrafią się zawiesić (nie znikają po ukończeniu czynności np pobierania transakcji). Czy nowe wersje Sello mogły wpłynąć na działanie tej tablicy? Czy wyczyszczenie tej tablicy ręcznie w przeszłości mogło spowodować błędne jej działanie? Chodzi o wykonanie takiego zapytania:

truncate table jb_message truncate table jb__Job

ins_blokada - tak jak pisałem, w obextra wszędzie mam zero ale w obid mam wpis o wartości 10 i 11 dla obtype 726. @Bartosz RosaCzy nie pomyliło Ci się  wcześniej obextra z obid? Bo mi się to teraz zgadza, wpis z obtype 726 gdzie obid 10 dotyczy odbierania parametrów a obtype 726 gdzie obid 11 to odbieranie (znowu wpis gdzie obtype 726 i obid 12 nigdy się nie pojawia, nawet jak wysyłam zmiany do aukcji)

Dziwne jest to, że podczas pobierania transakcji/aukcji/formularzy wpis gdzie obtype 726 i obid 11 aktualizuje locktime z czasem rozpoczęcia tego procesu i zwiększa counter np. z wartości 110 na 111 ale jak ukończy pobieranie to cofa counter 110 - to normalne?

W kolumnie workstation jest nazwa komputera i potem w nawiasie jakiś numer - co to jest?

Edytowane przez • maniootek •
Link to postu

W nowych wersjach raport będzie mocno przebudowany, możliwe, że zmienią się te tabele, lub znikną całkowicie.

Tabelę można czyścić.

Co do ins_blokada, to jest to mechanizm frameworka, na którym oparte jest Sello. Nie zgłębiałem nigdy dokładnie szczegółów jego działania na tyle, aby potwierdzić czy tak być powinno. Jest on również używany w programach linii GT i niektóre dane w tych tabelach mogą być stricte związane z tymi programami, niekoniecznie z Sello.

Ten numer przy komputerze to jest prawdopodobnie identyfikator procesu Sello.exe.

Link to postu
  • 2 tygodnie później...
Dnia 11.04.2019 o 12:33, Bartosz Rosa napisał:

potwierdzić czy tak być powinno

Chyba tak powinno być bo nawet o tym pisałeś wcześniej na forum

po skończeniu synchronizacji, w Twoim przypadku pole counter zmieniło się z 3 na 2. Można by sprawdzać czy pole counter wynosi 2 (wolne) czy 3 (zajęte) ale niestety ten counter się zwiększa jak zostanie przerwane połączenie i uruchomimy synchronizację od nowa.

Udało mi się wczytać z UI czy jest jakiś tekst w tej dolnej belce obok przycisku "X" oraz obracającego się kółeczka i na tej postawie sprawdzam czy sello jest wolne chociaż to nie jest idealny sposób bo zawsze ktoś może na innej stacji włączyć jakąś synchronizacje i wtedy już lipa. W moim przypadku na razie mi to wystarczy.

Link to postu

Uprzedzam, że w 1.31 ta dolna belka będzie przebudowana. Każdy wątek synchronizujący (aukcje, maile, Subiekt, przesyłki) będzie miał swój własny wskaźnik działania z własnym kółeczkiem i Xem. Teoretycznie będzie wtedy łatwiej stwierdzić który wątek aktualnie działa, aczkolwiek zupełnie od nowa zbudowaliśmy sposób synchronizowania, oparty na pojedynczych zadaniach i kolejkach priorytetowych.

Link to postu
1 godzinę temu, Bartosz Rosa napisał:

Uprzedzam, że w 1.31 ta dolna belka będzie przebudowana. Każdy wątek synchronizujący (aukcje, maile, Subiekt, przesyłki) będzie miał swój własny wskaźnik działania z własnym kółeczkiem i Xem. Teoretycznie będzie wtedy łatwiej stwierdzić który wątek aktualnie działa, aczkolwiek zupełnie od nowa zbudowaliśmy sposób synchronizowania, oparty na pojedynczych zadaniach i kolejkach priorytetowych.

Ok w porządku, jak coś to się dostosuje no chyba, że dowiesz się jak dokładnie działa ta tabela ins_blokada np. skąd wiadomo czy dany counter jest w fazie "pobierania" czy nie (bo w facie "pobierania" jest zwiększany a potem pomniejszany)

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

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