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: konference-boun...@java.cz [mailto:konference-boun...@java.cz] 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 
<kamil.podle...@gmail.com<mailto:kamil.podle...@gmail.com>>
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 <tstu...@gmail.com<mailto:tstu...@gmail.com>>:
> 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