Announcement

Collapse
No announcement yet.

tomcat shutdown

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • tomcat shutdown

    Für das starten/stoppen eines Tomcat 5.0.28 mit unterschiedlichem Catalina_home bzw. base unter Win2000 SP4 JDK1.5.0 verwende ich einen Service Wrapper von http://wrapper.tanukisoftware.org
    . Ich verwende die Klasse WrapperStartStopApp.

    Das starten funktioniert wunderbar, aber das Stoppen des Dienstes geht über den wrapper.jvm_exit.timeout=30. Um dieses Verhalten mit den mitgelieferten start/stop Scripts zu untersuchen verwende ich startup und shutdown im bin Verzeichnis.

    Beim startup geht eine cmd Box auf.

    Beim shutdown reagiert der Tomcat (in der cmb Box) und beendet den Tomcat. Als letzte Ausgabe ist INFO: Stoping JMX zu sehen. Aber die cmd Box wird nicht geschlossen. Ich glaube das ist auch das Problem vom Service Wrapper.

    Muß ich was machen(einstellen), daß die cmd Box nach dem shutdown schließt! Habe schon im Mailarchive der tomcat Liste gesucht, aber nichts gefunden.

    Bin für jeden Tip dankbar

    lg Dietmar

  • #2
    Hey Dietmar,

    im Java Magazin 10/04 steht in meiner TomC@ Kolumne ein Beispiel für den Einsatz eines Tomcat
    5.0.27 und dem Java Service Wrapper 3.1.1 bereit.

    http://tomcat.objektpark.org/kolumne/kolumneArchiv.html

    Tschau
    Pete

    Comment


    • #3
      Danke Peter,

      kann den Artikel kenn ich schon und habe auch den Wrapper in einer älteren Version im Einsatz. Abgesehen von wrapper.java.additional.5=-Dcatalina.config.file=..\conf\catalina.properties
      und dem SecurityManager sieht meine Config sehr ähnlich aus. Die -Dcatalina.config-config habe ich dazugegeben, aber keine Änderung im Verhalten.

      Hier ein Auszug aus dem log vom Wrapper.

      <pre>
      INFO | jvm 1 | 2004/12/03 11:53:04 | 03.12.2004 11:53:03 org.apache.catalina.core.StandardHostDeployer remove
      INFO | jvm 1 | 2004/12/03 11:53:04 | INFO: Removing web application at context path
      INFO | jvm 1 | 2004/12/03 11:53:04 | 03.12.2004 11:53:03 org.apache.catalina.logger.LoggerBase stop
      INFO | jvm 1 | 2004/12/03 11:53:04 | INFO: unregistering logger Catalina:type=Logger,host=kbhsrv04
      INFO | jvm 1 | 2004/12/03 11:53:04 | 03.12.2004 11:53:03 org.apache.catalina.logger.LoggerBase stop
      INFO | jvm 1 | 2004/12/03 11:53:04 | INFO: unregistering logger Catalina:type=Logger
      INFO | jvm 1 | 2004/12/03 11:53:04 | 03.12.2004 11:53:03 org.apache.coyote.http11.Http11Protocol destroy
      INFO | jvm 1 | 2004/12/03 11:53:04 | INFO: Stopping Coyote HTTP/1.1 on http-1084
      INFO | jvm 1 | 2004/12/03 11:53:04 | 03.12.2004 11:53:03 org.apache.jk.common.JkMX destroy
      INFO | jvm 1 | 2004/12/03 11:53:04 | INFO: Stoping JMX
      ERROR | wrapper | 2004/12/03 11:53:36 | Shutdown failed: Timed out waiting for signal from JVM.
      ERROR | wrapper | 2004/12/03 11:53:36 | JVM did not exit on request, terminated
      STATUS | wrapper | 2004/12/03 11:53:37 | <-- Wrapper Stopped
      STATUS | wrapper | 2004/12/03 11:53:38 | --> Wrapper Started as Service
      STATUS | wrapper | 2004/12/03 11:53:38 | Launching a JVM...
      INFO | jvm 1 | 2004/12/03 11:53:38 | Wrapper (Version 3.1.2) http://wrapper.tanukisoftware.org
      INFO | jvm 1 | 2004/12/03 11:53:38 |
      INFO | jvm 1 | 2004/12/03 11:53:39 | 03.12.2004 11:53:39 org.apache.coyote.http11.Http11Protocol init
      INFO | jvm 1 | 2004/12/03 11:53:39 | INFO: Initializing Coyote HTTP/1.1 on http-1084
      INFO | jvm 1 | 2004/12/03 11:53:39 | 03.12.2004 11:53:39 org.apache.catalina.startup.Catalina load
      INFO | jvm 1 | 2004/12/03 11:53:39 | INFO: Initialization processed in 937 ms
      </pre>

      Aber warum wird die cmd Box bei einem Start / Stop über die scripts nicht geschlossen?

      Danke und lg Dietmar

      ps.: du hast einen Typo beim wrapper.conf in Zeile 29 bei Spalte 4

      Comment


      • #4
        Hmm,

        also bei mir funktioniert der Service Wrapper mit XP wunderbar und ich sehe auch keine cmd Boxen....

        Ich tippe auf ein Anpassungsproblem von Windows 2000 und dem Service Wrapper.

        Pete

        Comment


        • #5
          Sorry Peter, ich glaube ich habe jetzt ein wenig Verwirrung gestiftet, aber ich bin einen Schritt weiter.

          Der Grund ist in meinen Anwendungen zu suchen. Es schein irgend ein Thread nicht richtig enden zu wollen und aus diesem Grund fährt der Tomcat nicht richtig herunter.

          Jetzt stellt es mit dir die Frage, wie finde ich meinen Thread?

          Wie ist es bei einer Tomcat Applikation? Wenn ich einen Thread habe, der beim Starten der App gestartet wird, muß ich diesem explizit beim Stoppen der Applikation (destroy Context) beenden? (klingt jetzt blöd und very basic, aber ich bin mir jetzt total unsicher)

          Danke und lg Dietma

          Comment


          • #6
            Hallo Dietmar,

            vielleicht darf man deshalb keine Threads starten?

            Soweit ich mich noch an die Thread-Thematik erinnere, muss ein "normaler" Thread explizit beendet werden, damit die Applikation als ganzes beendet werden kann.
            Allerdings gibt es auch noch die Daemon-Threads, die automatisch beendet werden, wenn keine "normaler" Thread mehr läuft.

            Da Du aber, wenn ich Dich richtig verstanden habe, den Thread auch beenden möchtest, wenn denn Context "destroyst", wäre ein explizites Beenden die ordentlichere Lösung.

            Imr

            Comment


            • #7
              Derzeit beende ich meine Threads nicht und ich vermute, daß so ein 'laufender' Thread den Tomcat nicht richtig beenden läßt.

              Ich versuchen erst einmal , die von mir gestarteten Threads mit dem context destroy zu beenden.

              Dietma

              Comment


              • #8
                Mit der jconsole(1.5.0) habe ich sehr gut erkennen können, daß die Threads,
                die ich geöffnet habe, nicht beendet worden sind.

                Jetzt habe ich meine Anwendung umgebaut, sodaß mit dem ContextListener meine gestarteten Threads beendet werden.
                Dies habe ich dann auch beobachten können.

                Wenn ich jetzt den Tomcat mit der Konsole starte und mit shutdown beende,
                dann fährt der Tomcat regulär nieder.

                Wenn ich mit dem Wrapper den Tomcat beende, dann beendet der Wrapper
                den Tomcat immer noch aufgrund eines timeout beim herunterfahren.

                Hat jemand eine Idee?

                lg Dietma

                Comment

                Working...
                X