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


Odpovedet emailem