Mysli Vam to podobne ako mne. Dakujem za vsetky prispevky.
Holý Jiří wrote / napísal(a):
Flag se musí v db updatovat prostě jinou transakcí. Zároveň se hodí
přidat timestamp atribut, do kdy je ten zámek aktivní - v praxi pak
spuštěný timer může ten timestamp updatovat (prodlužovat jeho
platnost, aby nedošlo k opětovnému spuštění). Podmínkou pro spuštění
„nového“ timeru je neexistující zámek, nebo vyexpirovaný (tj. ošetření
případu, že server spadne a zámek existuje).
Jiří Holý
*From:* [email protected] [mailto:[email protected]]
*On Behalf Of *Tomas Studva
*Sent:* Monday, September 06, 2010 1:24 PM
*To:* Java
*Subject:* Re: Jeden beziaci proces
Asi myslite explicitny DB zamok. To sa mi nezda celkom idealne, lebo
taky zamok je viazany na tranzakciu a teda ta by musela byt otvorena
po celu dobu. Tomuto som sa vyhol, lebo sa neda zarucit dlzka behu
toho procesu, v zlom pripade to moze bezat aj 30 minut. No na druhej
strane, nemam ziadne ine proti :).
Moje riesenie cez flag teda stlpec v tabulke ma inu nevyhodu, ktora je
ale ovela viacej bolestivejsia. Ked sa restartne server alebo vypadne
elektrina pocas behu procesu, tak sa flag nezmeni na false.
Dakujem, zvazim to.
2010/9/6 Kamil Podlesak <[email protected]
<mailto:[email protected]>>
Dobrý den,
Zámek v databázi má výhody:
- bude fungovat i v clusteru
- lze ho sledovat administračními nástroji databáze a případně i
násilně zrušit
Kamil Podlešák
2010/9/6 Tomas Studva <[email protected] <mailto:[email protected]>>:
> Dobry den,
> v nasej aplikacii mame periodicky spustany proces. Tento proces je
> schedulovany Jbossom, a moze trvat od niekolko sekund az po niekolko
minut.
> Spustany je asi kazde tri minuty. Potrebujem zarucit aby bezal iba 1 na
> celom servery. Momentalne to riesim flagom v databaze, ak je flag
true, tak
> proces sa hned ukonci.
>
> Chcem sa spytat, ci nie je aj jednoduchsie riesenie a ako by to bolo s
> implementaciou. Ten zamok naozaj suvisi s datami, teda s databazou a
> aplikaciou. Ako druhe riesenie mi napada lockovat sa na nejakom
objekte v
> aplikacii.
>
> Tomas Studva