Skocz do zawartości

Blokada bazy danych a migracja do nowszej wersji

Polecane posty

Dodaliście Państwo jakoś z którąś z ostatnich wersji funkcję blokady bazy danych.
Nie wiem czy dobrze rozumiem celowość dodania tej funkcji więc proszę mnie utwierdzić lub wyprowadzić z błędu.
Zakładam, że służy ona do zablokowania dostępu do bazy próbującym się dobić a tych którzy są połączeni powinna skutecznie wylogować po 5 minutach?
Mając na uwadze powyższe, rozumiem, że taka blokada może się przydać np. przed dokonaniem aktualizacji, szczególnie gdy nie możemy się skontaktować z jakimś użytkownikiem i poprosić go o to aby wyłączył program?

Chcielibyśmy się z migrować z 27.0.0 na 27.0.2.
1. Zablokowałem bazę o 18:13 (zablokowała się do 18:43), bazę zablokowałem z poziomu serwera, logując się z mojej stacji poprzez pulpit zdalny kontem administratora domenowego.
3. Mimo, że minęło ponad 10 minut (zatem mamy 18:24) w programie serwisowym widzę, że aktywne połączenie do bazy ma nadal księgowa (w kolumnie status jest: sleeping).
Pracuje ona na zdalnym pulpicie, wbijając się na nasz serwer z zewnątrz. Loguje się do domeny. 
4. Pomyślałem, że może program serwisowy źle pokazuje i podjąłem próbę aktualizacji, wpisałem konto Administratora itd.
5. Program przewijał pasek "Przygotowywanie Bazy danych...." prawie 20 minut (baza ma ponad 20GB) następnie wyświetlił komunikat jak niżej.
Tam gdzie wykreśliłem na zielono pojawiło się (moje) konto administratora domenowego poprzez które wbiłem się na serwer zdalnym pulpitem.
 

nexo_blad.thumb.jpg.691960008ee37c78696f11fae1ef8cb0.jpg

PYTANIE 1:
W tym czasie miałem otwarty program serwisowy - czy to mogło być problemem?

PYTANIE 2:
Czy aktywny program do wysyłania archiwum (ten z paska systemowego) gdy wysyłam akurat archiwum na chmurę od INSERT będzie przeszkodą podczas aktualizacji?

TYLKO INFORMACYJNIE (to wygląda na 2 problemy):
I. Z jakiegoś powodu księgowa nie jest wylogowywana. Dziś niestety nie mogłem się do niej dodzwonić aby zapytać co ma na ekranie.
Ostatnio jednak (gdy migrowałem się do ver. 27.0.0) wystąpił jakiś podobny motyw. Nie mogłem dokonać aktualizacji, mimo że zablokowałem bazę i odczekałem z 10 minut.
Wtedy to wyświetliło komunikat, że księgowa ma aktywne połączenie i blokuje aktualizację. Gdy do niej zadzwoniłem, zajrzała do laptopa i powiedziała, że wyświetliły jej się jakieś komunikaty o wylogowaniu, wylogowało ją faktycznie. Program nie został jednak zamknięty. Może właśnie fakt "nie domknięcia" programu jest tutaj problematyczny, że księgowa niby wylogowana ale wg. programu serwisowego nadal zalogowana? 

II. Ten komunikat z kolei sugeruje (o ile dobrze rozumiem), że ja to nie ja. A przecież to ja zablokowałem bazę i to ja dokonuje jej aktualizacji.
Reasumując login i domena użytkownika blokującego w programie serwisowym jest identyczna z tym z w/w komunikatu - więc ja to ja :)

SUGESTIA:
Tak jak wspomniałem w punkcie 5, sprawdzenie, czy ktoś jest połączony z bazą zajęło okło 20 minut.
To bardzo długie i od zawsze to tyle trwa... Może jakoś idzie to ogarnąć (przebudować program) aby ten komunikat wyskoczył wcześniej?

 

 

Edytowane przez Użytkownik GT/NEXO
Link to postu

Odpowiedź na pytanie 1:
Tak, to pewnie program serwisowy. Blokada bazy jest "przypisana" do procesu. Więc jeśli proces 123 na komputerze X blokuje bazę, to tylko ten proces na tym komputerze ma do niej dostęp. Jeśli ten proces zostanie zakończony, to baza staje się dostępna dla innych procesów na tym komputerze (ale z innych komputerów ciągle nie można się łączyć). 

Pisząc "procesy" mam na myśli procesy związane z programami nexo, a nie dowolne. 

 

Odpowiedź na pytanie 2:
Może być. Dla świętego spokoju lepiej go wyłączyć na czas aktualizacji. 

 

I. Gdy blokuje Pan bazę na jednym komputerze, użytkownicy na innych komputerach dostają informację o tym, że program zostanie zamknięty za pewien okres czasu. Jeśli nie potwierdzą tej informacji, to program się nie zamknie (bo nie chcemy, żeby użytkownik, który np. odszedł na chwilę od komputera, stracił niezapisaną pracę). Program musi być zamknięty, żeby nexo na pewno nie łączyło się z bazą. 

II. Gdyby ten komunikat zawierał numer procesu, to wszystko byłoby jasne - nie może Pan aktualizować bazy w procesie X, bo została zablokowana przez Pana w procesie Y. 

 

Jeśli chodzi o długi czas sprawdzania, czy ktoś jest połączony - tak naprawdę to odbywa się bardzo szybko, a te 20 minut to raczej czas tworzenia automatycznej kopii zapasowej przed aktualizacją. Sugeruje to rozmiar bazy. Możliwe, że w przyszłych wersjach będziemy sprawdzać połączenia przed wykonaniem kopii. 

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

"Odkpię" temat, ponieważ przy ostatniej aktualizacji do 46.0.1 miałem ten sam problem.

Zablokowałem bazę na w programie serwisowym (logowanie zdalne na serwer) a pomimo tego użytkownicy nie zostali rozłączeni z bazą danych i proces aktualizacji nie mógł być zakończony. Jeden z userów nie wyłączył programu na stacji roboczej i dopiero po jego zamknięciu proces ruszył. A nie zamknął, bo nie było go przy komputerze - normalna sytuacja, zdarza się. 

Restartowanie SQL'a nie pomaga bo wygląda na to że taka "zagubiona" stacja robocza z włączonym programem automatycznie nawiązuje połączenie z serwerem.

 

Jak możemy uniknąć takiej sytuacji ? Planują Państwo fix'a na ten problem ?  

Link to postu

Poniżej wklejam zrzut ekranu z programu serwisowego - takie ustawienie blokady spowoduje, że wszystkie stacje robocze wyłączą się same bez pytania po 5 minutach, pod warunkiem, że komputer nie jest uśpiony.

Jeśli zaznaczy się opcję 'wyświetl komunikat', to program na końcówce wyświetli komunikat i będzie czekał, aż użytkownik kliknie OK. Jeśli się tej opcji nie zaznaczy, to wyłączenie nastąpi bez interakcji z użytkownikiem.

Sądzę, że to rozwiązuje problem. Jeśli ustawił Pan blokadę w taki sposób i nie zadziałała, to proszę o przysłanie logów z komputera, na którym ustawiono blokadę, oraz z tej stacji roboczej, która się nie zamknęła, żebyśmy mogli zdiagnozować, co poszło nie tak. 

Tutaj znajdzie Pan informacje o tym, jak zebrać logi: https://www.insert.com.pl/dla_uzytkownikow/e-pomoc_techniczna/2158,insert-nexo-–-jak-wygenerowac-dane-diagnostyczne.html.

image.png.38d80f5a26249f215866c3e16fbb9448.png

Link to postu
41 minut temu, Katarzyna Rozmarynowska napisał:

Jeśli zaznaczy się opcję 'wyświetl komunikat', to program na końcówce wyświetli komunikat i będzie czekał, aż użytkownik kliknie OK. Jeśli się tej opcji nie zaznaczy, to wyłączenie nastąpi bez interakcji z użytkownikiem.

IMO strasznie mylące te opisy.

Nie sądzi Pani że jeśli ktoś zaznaczy obie opcje to będzie oczekiwał że komunikat zostanie wyświetlony a potem, bez względu na ewentualna reakcję użytkownika (czy jej brak), program zostanie zamknięty?

 

44 minuty temu, Katarzyna Rozmarynowska napisał:

takie ustawienie blokady spowoduje, że wszystkie stacje robocze wyłączą się same bez pytania po 5 minutach, pod warunkiem, że komputer nie jest uśpiony.

A  co jeśli komputer jest uśpiony? Czekamy aż się użytek zlituje i włączy komputer?

Czy naprawdę nie da się tego zrobić "po prostu", bez żadnego "pod warunkiem"?

 

Link to postu
2 godziny temu, Andrzej Kubik napisał:

IMO strasznie mylące te opisy.

Zgadzam się, że mogłyby być bardziej jednoznaczne. 

2 godziny temu, Andrzej Kubik napisał:

A  co jeśli komputer jest uśpiony? Czekamy aż się użytek zlituje i włączy komputer?

Jeśli komputer jest uśpiony, to przeszkodą są tylko ewentualne sesje aplikacyjne w nexo uruchomionym na takim uśpionym komputerze. Sesje aplikacyjne wygasają po 6 minutach, więc po upływie tego czasu uda się zrobić konwersję. Gdy uśpiony komputer zostanie wybudzony, nexo na tym komputerze wykryje, że jest w innej wersji niż wersja bazy i się zamknie. 

Link to postu
12 minut temu, Katarzyna Rozmarynowska napisał:

Jeśli komputer jest uśpiony, to przeszkodą są tylko ewentualne sesje aplikacyjne w nexo uruchomionym na takim uśpionym komputerze. Sesje aplikacyjne wygasają po 6 minutach, więc po upływie tego czasu uda się zrobić konwersję. Gdy uśpiony komputer zostanie wybudzony, nexo na tym komputerze wykryje, że jest w innej wersji niż wersja bazy i się zamknie. 

No właśnie o tym mówię. Czy te sesje muszą tak wisieć?

Nie da się postawić sprawy jasno - ja tu rządzę, sesje idą precz?

Tak żeby było jasne - zablokowana znaczy zablokowana, a nie "zablokowana, pod warunkiem że..."

Link to postu

@Katarzyna RozmarynowskaJeśli sesje wygasają po 6 minutach to tak naprawdę bez sensu ustawiać krótszy czas w programie serwisowym :/ Nie jestem w stanie kontrolować kilkudziesięciu stacji roboczych, w tym kilku zdalnie. czy aby na pewno ktoś przed nim siedzi......  Za @Andrzej Kubik - nie możecie po prostu zrobić prostego warunku: zrzucania połączeń z bazy i nie pozwalania na ponowne łączenie jeśli blokada jest aktywna ?

Link to postu
21 godzin temu, Andrzej Kubik napisał:

Nie da się postawić sprawy jasno - ja tu rządzę, sesje idą precz?

Moglibyśmy wyrzucać takie sesje z bazy, gdybyśmy wiedzieli, że końcówka, z której pochodzą, jest uśpiona albo w jakiś inny sposób nieaktywna, bo inaczej ryzykujemy, że program będzie się wysypywał z powodu brakujących sesji. Aktualnie nexo nie jest w stanie tego sprawdzić i nie sądzę, żeby w najbliższych wersjach się to zmieniło. 

1 godzinę temu, IT DeMi Poland napisał:

nie możecie po prostu zrobić prostego warunku: zrzucania połączeń z bazy i nie pozwalania na ponowne łączenie jeśli blokada jest aktywna ?

Nie, aktualnie nie jesteśmy w stanie tego zrealizować. 

Link to postu
×
×
  • Dodaj nową pozycję...