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]

Responder a