Ola Francisco, O load on startup do tomcat 4.0.4 sempre esteve meio zoado. Pode colocar qualquer numero ai dentro que voce vai ver ele fazer a mesma coisa. Na verdade ele iniciou a mesma duas vezes, em ClassLoaders diferentes (por isso a variavel estatica parece nao incrementar, pq tem 2 dela !!! Acho que no 4.0.6 ainda � assim. Atualiza pra uma 4.1.x que vai funcionar BELEZINHA.
O tomcat 4.0.4 cria dois contexts diferentes, cada um com uma WebappClassLoader (que eh o classloader do tomcat para loadar classes de cada webapp). Nao sei o porque. ====================== Paulo Eduardo Azevedo Silveira Grupo de Usu�rios Java http://www.guj.com.br/ On Fri, 3 Jan 2003 16:16:48 -0300, "Fco. Deisimar Nobre Jr." <[EMAIL PROTECTED]> escreveu : > De: "Fco. Deisimar Nobre Jr." <[EMAIL PROTECTED]> > Data: Fri, 3 Jan 2003 16:16:48 -0300 > Para: <[EMAIL PROTECTED]> > Assunto: [enterprise-list] Servlet em background > > > > criei esse servlet: > > package meuPacote; > import javax.servlet.*; > > import java.util.Timer; > import java.util.TimerTask; > > public class servletBackground extends GenericServlet { > > private static int id = 0; > private int myId; > private static int intervalo; > private Timer timer = new Timer(); > > public void init(ServletConfig config){ > intervalo = > Integer.parseInt(config.getInitParameter("intervalo")); > id = id + 1; > myId = id; > System.out.println("ServletConfig - " + myId + " - Iniciou"); > System.out.println("Intervalo = " + intervalo + " segundos"); > timer.schedule(new tarefa(), 0, intervalo * 1000); > } > > public void finalize(){ > System.out.println("ServletConfig - " + myId + " - Fim"); > } > > public void service(ServletRequest request, ServletResponse > response){ > } > > class tarefa extends TimerTask { > private int count = 0; > public void run() { > count = count + 1; > System.out.println("ServletConfig - Executou pela " + > count + " vez."); > // timer.cancel(); //Terminate the timer thread > } > } > > } > > No arquivo web.xml eu adicionei o seguinte trecho? > > <servlet> > <servlet-name>freteBackground</servlet-name> > <servlet-class>meuPacote.servletBackground</servlet-class> > <init-param> > <param-name>intervalo</param-name> > <param-value>60</param-value> > </init-param> > <load-on-startup>3</load-on-startup> > </servlet> > > Agora vem a minha d�vida: depois de reiniciar o > servi�o(Tomcat 4.0.4) tenho a seguinte saida no arquivo stdout.log: > > ServletConfig - 1 - Iniciou > Intervalo = 60 segundos > ServletConfig - Executou pela 1 vez. > ServletConfig - 1 - Iniciou > Intervalo = 60 segundos > ServletConfig - Executou pela 1 vez. > ServletConfig - Executou pela 2 vez. > ServletConfig - Executou pela 2 vez. > ServletConfig - Executou pela 3 vez. > ServletConfig - Executou pela 3 vez. > ServletConfig - Executou pela 4 vez. > ServletConfig - Executou pela 4 vez. > > > Isso esta me fazendo concluir que esta sendo criada duas > inst�ncias do servlet, e o mais curioso � que n�o sei porque > que o myId n�o mudou. Algu�m pode me explicar o que de fato > esta acontecendo??? e como resolver?? > Obrigado!! > > =========================================== > Francisco Deisimar Nobre J�nior > Analista de Sistemas - CIT - M. Dias Branco > =========================================== > > > > --------------------------------------------------------------------- > Para cancelar a subscri��o, envie mensagem para: >[EMAIL PROTECTED] > Para comandos adicionais, envie mensagem para: [EMAIL PROTECTED] > > > > --------------------------------------------------------------------- Para cancelar a subscri��o, envie mensagem para: [EMAIL PROTECTED] Para comandos adicionais, envie mensagem para: [EMAIL PROTECTED]
