Omluvám se za češtinu, nejsem zřejmě ještě moc při smyslech i když už není tak brzy :)
Při vyřešení chyby mě původně nakopl poslední odstavec: http://www.onjava.com/pub/a/onjava/2004/03/10/quartz.html Přikládám ještě malý kousek kódu, důležitý je řádek timer = new Timer(true); ---------------------------------------------------- SchedulerTimerTask task = (SchedulerTimerTask) Class.forName((String)properties.get("ClassName")).newInstance(); task.setTaskID(taskID.toString()); task.setGroupID(currentGroupID); task.setPeriod(period); task.setDatasource(datasource); task.setUserID(getUserID(cntx)); task.setApplicationName(applicationName); long delay = startTime - System.currentTimeMillis(); if (delay < 0) { if (period == 0) { delay = 0; } else { long periodInMillis = period*60000L; delay = periodInMillis - (Math.abs(delay) % periodInMillis); } } timer = new Timer(true); if (period == 0) { timer.schedule(task,delay); Logger.getLogger("cz.ecommerce").log(Level.FINE, "Scheduler init: task id="+taskID+" created"); } else { timer.scheduleAtFixedRate(task, delay, period*60000L); Logger.getLogger("cz.ecommerce").log(Level.FINE, "Scheduler init: task id="+taskID+" created"); } S pozdravem Tomáš Polešovský -----Original Message----- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Tomáš Polešovský Sent: Tuesday, October 18, 2005 8:48 AM To: Java Subject: RE: Volá se finalize() při undeployi ? Dobry den. Také jsme měli tento problém, pracujeme na Oracle 10g AS, ale předpokládám, že se jedná o obecný princip. Problém je v tom, že vlákno není nastaveno, že má běžet jako daemon, tzn. při ukončení nebo containeru se neukončuje a JVM čeká na dokončení běhu vlákna. Více viz: http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Thread.html#setDaemon(boolean) S pozdravem Tomáš Polešovský -----Original Message----- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Roman Pichlík Sent: Tuesday, October 18, 2005 7:56 AM To: Java Subject: Re: Volá se finalize() při undeployi ? [EMAIL PROTECTED] napsal(a): > Máme j2ee aplikaci, která používá Toplink, Struts, ADF. Chtěli jsme mít 'v > pozadí' několik automatizovaných úloh (vyčítání čteček karet, ...). > Vytvořili jsme thready, které jsou spouštěny v momentu deploye z > ActionServletu (nemusí být generována žádná jsp stránka). Ale něco je > špatně. První deploy (nebo deploy po restartu OC4J) na aplikačním serveru > Oracle AS 10g je v pořádku. Ale když uděláme undeploy, vidíme v logu, že > thread stále běží, i když je aplikace z disku už smazaná a to způsobuje > problémy (Toplink chyby) při dalších deployích. > > Zkoušel jsem zápis do logu ve finalize ActionServletu, ale nic to > neudělalo. Ptám se, zda je volána někde metoda finalize() při undeployi > nebo zda můžu někde moment undeploye v aplikaci odchytit. Kdyby to šlo, > možná bych dokázal nějak ten zbytek threadu lépe uklidit. zkuste destroy metodu servletu, ta se vola s kazdym ukoncenim (reload, undeploy, stop) kontextu ve kterem servlet bezi. -- S pozdravem Roman "Dagi" Pichlik /* http://www.sweb.cz/pichlik/ Blog pro kodery */
