MSSQL a reconnect

Medo77

  • ***
  • 208
    • Zobrazit profil
    • E-mail
MSSQL a reconnect
« kdy: 18. 05. 2022, 08:59:48 »
Ahoj.
Neriesil prosim niekto taku vec, ze APPka (lokalny exe) sa pripaja na MSSQL server, a rozpadne sa komunikacia po strate connectu ? (aplikacia hodi error, je nutne ju zatvorit a znova pustit).

Programator majuci hlavne slovo tvrdi, ze sa to chova uplne inac na SQL2012 a inac na 2016/2017.
(na 2012 to vraj chodi a nie je nutne do kodu zasahovat). (problem je, ze vecsina instalacii uz je na 2017).
(jedna sa o novy sposob prevadzkovania, tak skusame, co tomu stoji v ceste).
Uz 2 dni sa bortim s klucovymi slovami, ktore by mi povedali, ci sa da nieco nad SQL nastavit, alebo to proste tak spravili, ale je nutne robit pred kazdym ukonom check na dostupnost servera (co je urcita rezia a relativne to zdrzuje, ked zakaznik je citlivy na kazdy sekundu).

Diky za nakopnutie.


RDa

  • *****
  • 1 783
    • Zobrazit profil
    • E-mail
Re:MSSQL a reconnect
« Odpověď #1 kdy: 18. 05. 2022, 11:23:26 »
Neres to pred dotazem, ale po dotazu. Napis si wrapper, ktery pri chybe "connection lost" udela reconnect a znova spusti stejny query. Samozrejme by o tom treba user mel vedet a mit moznost to treba zrusit, at se ti to nezacykli pokud bude delsi vypadek site napr.

e3k

  • ***
  • 130
    • Zobrazit profil
    • E-mail
Re:MSSQL a reconnect
« Odpověď #2 kdy: 19. 05. 2022, 10:22:20 »
alternativne este pri connecte nastavit nejaky nizsi keep alive.

Don.J

Re:MSSQL a reconnect
« Odpověď #3 kdy: 20. 05. 2022, 07:24:23 »
Chce to víc informací...

SQL běží na stejném PC nebo na PC/Serveru ve stejné síti nebo dokonce internetu? ...jak je PC připojené do sítě?
Jaký je operační systém klientského PC/Serveru? Jaké jsou síťové karty ve strojích?

V čem je apka naprogramovaná? Jaké používáte knihovny pro spojení s SQL?

Medo77

  • ***
  • 208
    • Zobrazit profil
    • E-mail
Re:MSSQL a reconnect
« Odpověď #4 kdy: 20. 05. 2022, 08:01:14 »
Aby som bol uprimny, teraz dostanem poza usi.

V tomto konkretnom pripade sa snazime rozchodit APPku po verejnom nete, kde to bude zabalene do SSH.
(co na veci nemeni nic, ze lokalne po LANke, sa to sprava identicky).

Aj ked je silny predpoklad relativne kvalitnych liniek, musime sa pripravit na vypadky, a toto sa prave snazime osetrit.
Cize vypadok linky, SSH sa sice spameta, ale APPka to uz nerozchodi. (na SQL2012 hej).
Zatial je to cisto platforma WIn, cize cokolvek od W7 vyssie, a minimalne W2012 a vyssie na strane servera.
Vyhradne zatial virtualky, takze vmxnet3 ...
Appka je mix C##, nejakeho hotoveho enginu ( o tom vela neviem), a kniznice by som musel lamat od programatora.

Zatial to nechavam na pleciach programatora, hlava mi neberie, ze vie connection string len pri spusteni app, potom pri lubovolne vyvolanom okne kde su zobrazene komplet vysledky, ale pokial sa to prerusi v okne, kde sa je nacitanych len select top 1000  (lebo aj rychlost aj optimalizacia netahat vsetko na obrazovku) a chcem nascrolovanim okna nacitat dalsie polozky (zatial nezobrazene), vtedy sa to zosype ...

Toto som mal uviest na pravu mieru hned.


Don.J

Re:MSSQL a reconnect
« Odpověď #5 kdy: 20. 05. 2022, 08:23:02 »
To, co popisuješ je ale jiný bug ... Při pokusu o donačtení dalších položek při scrollu okna, tzn. že nemá nejspíš ošetřené souběžné volání na SQL server z Apky, které se vyvolá při každém scrollu.

Zkontrolujte ConnectionString, zda obsahuje "MultipleActiveResultSets=True", pokud ne, doplnit.
Další věc je ošetření toho donačítání tak, aby pokud možno vzal až ten poslední "bod" scrollu a zbytečně nenačítal mezitím.

Medo77

  • ***
  • 208
    • Zobrazit profil
    • E-mail
Re:MSSQL a reconnect
« Odpověď #6 kdy: 20. 05. 2022, 08:52:09 »
To donacitanie scrollu by sa muselo namysliet, ci robit vynimky alebo nie, a ak ano, na zaklade nejakej MAX hodnoty ..
Mozu tam byt stovky, ale aj statisice poloziek a ich nacitavanie uz trochu zaberie casu (a bezna prax je, ze v tomto okne s Top 1000 das vyhladavat, ono to urobi konkrenty select na dany Search, a Enterom otvaras polozku, ktoru chces vidiet, ci editovat ...) .
Ten zvysok pozriem-preposlem. Zatial dik.

Re:MSSQL a reconnect
« Odpověď #7 kdy: 23. 05. 2022, 08:08:17 »
mat priame pripojenie na db mimo lokalnu siet nie je velmi vhodne. DB si tahaju dost dat. Na taketo veci je idealne webapi, a vtedy ti odpada problem aj s padanim spojenia. proste apka da request a bud dostane data, alebo nie. A nemusis kontrolovat pripojenie a usetri sa vela dat.

Medo77

  • ***
  • 208
    • Zobrazit profil
    • E-mail
Re:MSSQL a reconnect
« Odpověď #8 kdy: 23. 05. 2022, 08:23:18 »
APPka taha presne tolko dat, kolko aj cez api, je to len o optimalizacii.
A je ziaduce to mat co najviac realtime, ta APi ,aj ked je relativne rychla, uz su to nejake milisekundy po ceste (pouzivame, ale nie na toto, co potrebujem zlomit).
Kolega uz na tom robi, povedal presnejsie ako sa to chova, a kde vsade da checky, aby app cakal, nez sa spojenie znovu nadviaze ...