O Jetty (HTTP Servlet Server em Java) é encerrado inesperadamente

2

Um aplicativo Jetty é implantado em um servidor meu, mas continua terminando, com pouca evidência compreensível do porquê. Qualquer ajuda em resolver isso seria muito apreciada.

Detalhes:

OS:

  Slackware Linux 13.1
  Linux 2.6.32.16 running as Xen guest OS

Java info:

  java version "1.6.0_20"
  Java(TM) SE Runtime Environment (build 1.6.0_20-b02)
  Java HotSpot(TM) Client VM (build 16.3-b01, mixed mode, sharing)

nginx 0.7.67 config (only pertinent items):

    location /app {
      proxy_pass              http://localhost:50013;
      proxy_set_header        X-Real-IP $remote_addr;
      proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header        Host $http_host;
    }

O aplicativo Jetty é iniciado via daemontools em um arquivo de execução contendo:

#!/bin/sh
cd /path/to/app
exec setuidgid userXYZ /usr/lib/java/bin/java -server -verbose -jar ./app.jar

Não há evidência no registro de porque é esporadicamente desativado (depois que o daemontools começa de novo).

Obviamente, ao usar sessões na memória, isso não é ideal, já que os usuários sessões terminam.

Então, eu corri o aplicativo usando strace, sem daemontools e a saída pode ser encontrado aqui:

link

Obrigado Dale

    
por Dale 22.06.2011 / 15:25

1 resposta

2

Primeiro, existe um arquivo chamado "core" em qualquer parte do seu sistema? Isso pode ter sido gerado pelo Jetty quando ele caiu.

Veja algumas possibilidades:

Sua JVM pode estar se debatendo devido às coletas de lixo frequentes. Você pode testar isso usando uma ferramenta como VisualVM. Se essa GUI não for uma opção, você poderá imprimir as estatísticas do GC em um arquivo de log usando switches da JVM.

Sua JVM pode estar ficando sem espaço de heap. A análise do GC também irá esclarecer essa possibilidade. O que acontece se você aumentar o tamanho do heap?

Meu entendimento é que você não pode realmente ajustar o Jetty como você pode ajustar um servidor J2EE, então isso é provavelmente bom.

A possibilidade final de que algo está errado com seu aplicativo. Você pode usar o seguinte tutorial para depurar aplicativos em execução no Jetty: link .

Boa sorte!

    
por 23.06.2011 / 20:58