Search  
Friday, May 25, 2012 ..:: Forum ::.. Register  Login
 Forum Minimize
Pentru a putea posta mesaje trebuie să vă înregistraţi.
Notă: Mesajele cu conţinut jignitor sau ilegal (inclusiv cereri de soft piratat) nu sunt acceptate şi vor fi şterse imediat .

Pentru a primi raspunsuri rapide si corecte, scrieti in mesaj ce intentionati sa faceti, ce mesaj de eroare primiti, in ce context si in urma caror actiuni. De asemenea, mentionati versiunea de FoxPro in care lucrati!
Dacă nu specificați versiunea, se consideră VFP 9.0 SP2.

SearchForum Home
  Visual FoxPro  Client/Server  Blocaje si debl...
 Blocaje si deblocari
 
 12/18/2006 7:21:17 AM
User is offlineAlin Berce
371 posts
3rd




Blocaje si deblocari
 (Romania)
Salut baieti, as vrea sa va cer parerea pentru urmatorul lucru:
Se dau doua aplicatii diferite care lucraza pe aceeasi baza de date sql server 7. Sunt sanse ca la un momentdat atat dintr-o aplicatie cat si din cealalta sa se ceara aceeasi linie dintr-o tabela sau orice alta situatie asemanatoare care ar putea duce la un blocaj. Deci, daca apar blocaje pe server (cele doua instante ale aplicatiilor sunt blocate) cum as putea face ca una dintre aplicatii sa renunte la cerere? Daca renunta aplicatia la aceasta cerere se deblocheaza serverul ? In aplicatiile voastre cum tratati aceste aspecte ? Querytimeout.... ?
Orice parere e mai mult decat binevenita :)

VFP, C#, SQL Server 2005/2008
"Proud to be a ProFox member".
 12/18/2006 10:11:36 AM
User is offlineaflorin
840 posts
1st


Re: Blocaje si deblocari
 (N/A)
Daca cererea de date se refera doar la Read, nu ar trebui sa apara blocaje - insa trebuie vazut ce ai pe Transaction Isolation Level.
Pentru scriere insa, treburile sunt mai gingase - inca studiez si eu aspectele astea.

Florin Aparaschivei - Iasi
 12/18/2006 10:38:09 AM
User is offlineAlin Berce
371 posts
3rd




Re: Blocaje si deblocari
 (Romania)
Intr-adevar, Florin, la READ 'no problemo' insa la WRITE (cand vor sa scrie pe aceiasi linie) apar blocajele. Pe masura ce studiez mai mult problema vad si eu cat de gingase sunt treburile... Cand o sa inteleg pe deplin, o sa ma imbat de bucurie :). Poate primim ceva sfat si de la maestrii de pe forum sau macar ceva link-uri mai greu de gasit... ca de citit nu mi-e frica.
VFP, C#, SQL Server 2005/2008
"Proud to be a ProFox member".
 12/18/2006 10:49:54 AM
User is offlineanonymous
0 posts


Re: Blocaje si deblocari
 (Romania)
Probleme pot sa apara si la READ pentru ca SqlServer are o serare care sa-ti garanteze ca daca faci de doua ori acelasi select cand esti in tranzactie iti da acelasi set de date.   
 12/18/2006 1:14:15 PM
User is offlineaflorin
840 posts
1st


Re: Blocaje si deblocari
 (N/A)
Eu pe SQL 2005 folosesc Transaction Isolation Level Snapshot care pare sa ma scape de belele pe Read

la scriere, momentan sistemul e cam asa:
- trimit un SqlExec() cu fraza de Insert/Update/Delete
- daca serverul zice ca nu, ii dau mesaj user-ului ca nu pot salva datele, dar il las in aceeasi interfata, urmind ca el sa reincerce sau sa renunte.

Asta este valabil dupa ce setul de date a trecut RI + restrictii business

pe setez lock_timeout de 2000 ms

Florin Aparaschivei - Iasi
 12/18/2006 1:56:08 PM
User is offlineAlin Berce
371 posts
3rd




Re: Blocaje si deblocari
 (Romania)
Eu pe sql server 7 nu am acel Transaction Isolation Level Snapshot... Modul in care faci scrierea mi se pare foarte OK. Ceva in genul asta incercam si eu sa fac. Acest lucru functioneaza bine atata timp cat folosesc SPT.
Dar ce se intampla daca folosesc Remote View-uri ? Ceea ce nu mi-e mie in clar e cum pot face ca unul dintre cei care blocheaza sa se autoinchida ? Eventual sa dau posibilitatea user-ului sa reincerce, insa intre timp ceilalti sa-si poata continua treaba...

VFP, C#, SQL Server 2005/2008
"Proud to be a ProFox member".
 12/19/2006 11:17:57 AM
User is offlineaflorin
840 posts
1st


Re: Blocaje si deblocari
 (N/A)
Vad ca nu se arunca nimeni sa isi dea cu parerea pe threadul asta, probabil din cauza sarbatorilor. Asa ca am sa mai arunc eu o parere.

Eu personal am renuntat atit la varianta RV, cat si la cea CA, tocmai pentru ca mi s-a parut (e posibil sa ma insel insa) ca nu am suficient control asupra a ceea ce se intampla cu datele si, mai ales, CAND se intimpla. Si am sa dau si un exemplu.

Dupa ce aduc datele dintr-un nomenclator pe local, am nevoie de indecsi pe acel cursor, pentru a putea sa folosesc clasa de cautare (care se bazeaza pe SEEK). Indecsii cer Row Buffering. Pe row buffering, un TableUpdate poate sa plece si singur, daca din greseala se muta cursorul. Si deja am un posibil punct generator de dureri de cap.

In plus, intrucat eu vreau ca aplicatia mea sa functioneze atit cu BD Fox, cat si MsSql, singura solutie gasita de mine a fost o clasa pentru manipulare date (ce va fi in doua variante, pentru cele doua SGBD-uri) care sa imi puna la dispozitie niste metode pentru adus date si pentru facut actualizari in BD. Ori aici merge doar SPT.

In rest ... Sarbatori Fericite!

Florin Aparaschivei - Iasi
 12/19/2006 11:44:23 AM
User is offlineAlin Berce
371 posts
3rd




Re: Blocaje si deblocari
 (Romania) Modified By Alin Berce  on 12/19/2006 12:46:23 PM)
Din pacate cunostintele mele actuale nu imi permit sa renunt la RV, insa ceea ce spui tu imi place, asa ca o sa incep sa ma documentez. Oricum, de cand frecventez forum-ul am inceput sa trec pe SPT, si mie mi se pare mai flexibil. Apropo, daca faci o cerere catre server (Read sau Write) prin SPT (sqlexec....) pot sa ii spun ca dupa 10 secunde in care nu s-a executat (terte cauze) sa renunte si sa redea controlul aplicatiei ? In legatura cu dualismul BD Fox si MsSQL ceea ce ai spus, mie imi seamana a 3tier, lucru pe care mi-am promis ca o sa il studiez cand... o sa am timp liber (se adauga listei cu C#, Framework...).
Mersi mult de raspunsuri... si Sarbatori Fericite!

VFP, C#, SQL Server 2005/2008
"Proud to be a ProFox member".
 12/19/2006 12:20:13 PM
User is offlineDorin Vasilescu
1366 posts
1st




Re: Blocaje si deblocari
 (N/A) Modified By Dorin Vasilescu  on 12/19/2006 1:20:57 PM)
As avea niste observatii
 Dupa ce aduc datele dintr-un nomenclator pe local, am nevoie de indecsi pe acel cursor, pentru a putea sa folosesc clasa de cautare (care se bazeaza pe SEEK). Indecsii cer Row Buffering. Pe row buffering, un TableUpdate poate sa plece si singur, daca din greseala se muta cursorul. Si deja am un posibil punct generator de dureri de cap.


Dupa parerea mea, ar trebui despartite cautarile in nomenclator de actualizarea acestuia. Plus ca poate fi foarte mare, mii sau zeci de  mii de inregistrari.
Avand in vedere ca datele sunt locale, poti folosi cu incredere SELECT in loc de seek, mai ales daca ai indexat cursorul. Astfel, inregistrarea curenta nu se va mai muta, nici macar din greseala
O alta sugestie pentru limitarea traficului ar fi sa aduci doar ce e nevoie, dupa preluarea unor date de filtrare in loc sa aduci totul si sa aplici cautare/filtrare ulterior.

Just my 2c

 




 12/19/2006 1:54:15 PM
User is offlineaflorin
840 posts
1st


Re: Blocaje si deblocari
 (N/A)
Pt Alin:
SqlSetProp(0, "ConnectTimeOut", 10) ar trebui sa rezolve problema cu cele 10 secunde de asteptare. Vad ca default este 15

Pt Dorin:
Observatiile sunt corecte si mi le-am insusit.
Asa am gandit eu cautarea, sub forma unui grid in care il pozitionez pe om pe inregistrarea care este cel mai aproape de sirul de caractere introdus de el de la tastatura (evident, cu setarea SET NEAR corespunzatoare). Este vorba aici de cautarea la culegere (ex. cautarea unui partener la emiterea facturii)

Florin Aparaschivei - Iasi
 12/19/2006 2:33:43 PM
User is offlineDorin Vasilescu
1366 posts
1st




Re: Blocaje si deblocari
 (N/A)
Corect, doar ca lumea e atat de obisnuita cu google, yahoo, etc, incat nu o sa se supere nimeni daca afisezi rezultatul la selectarea unui buton "Cauta" dupa ce s-au introdus  cateva  caractere
Pentru ceva asemanator cu Google suggest am postat eu un fel de combo care e poate functiona si asincron SpecialCombo



  Visual FoxPro  Client/Server  Blocaje si debl...

Search  Forum Home         

 Google Ads Minimize

    

Copyright 2002-2010 Profox   Terms Of Use  Privacy Statement