Announcement

Collapse
No announcement yet.

Apache / Tomcat via JNI

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

  • Apache / Tomcat via JNI

    Hallo,
    <BR><BR>
    ich versuche nun schon eine Weile erfolglos, Apache und Tomcat miteinander zu verbinden. Ich habe mich an diesem Artikel orientiert: http://tomcat.objektpark.org/howto/tomcatjni.html , aber tomcat startet bei mir nicht.
    <BR><BR>
    Ich verwende tomcat 5.0.20, apache 2.0.48 unter Windows XP. Wenn ich apache starte, wird ein fehler geloggt (s.u.); stderr.log und stdout.log im Apache-conf-Verzeichnis sind leer - tomcat scheint also nicht zu starten.<br><br>

    In den workers2.properties war ich nicht sicher, was ich für OPT=-Dcatalina.base setzen sollte. Das zeigt jetzt auf mein tomcat_home. Ansonsten kann ich nichts entdecken, was ich falsch mache.<br><br>
    Wäre nett, wenn mir jemand helfen könnte.<br><br>

    Danke!<br>
    Martin

    <pre>
    -------------------------------------------
    jk2.properties:
    -------------------------------------------
    # Just to check if the the config is working
    shm.file=C:/Programme/Apache Group/Apache2/logs/jk2.shm

    # In order to enable jni use any channelJni directive
    channelJni.disabled = 0

    # For Connecting to Tomcat outprocess
    # apr.jniModeSo=/opt/apache2/modules/mod_jk2.so

    # If set to inprocess the mod_jk2 will Register natives itself
    # This will enable the starting of the Tomcat from mod_jk2
    apr.jniModeSo=inprocess

    -------------------------------------------
    workers2.properties:
    -------------------------------------------
    [logger]
    level=DEBUG

    [config:]
    file=${serverRoot}/conf/workers2.properties
    debug=0
    debugEnv=0

    [uriMap:]
    info=Maps the requests. Options: debug
    debug=0

    [shm:]
    info=Scoreboard. Required for reconfiguration and status with multiprocess servers
    file=${serverRoot}/logs/jk2.shm
    size=1000000
    debug=0
    disabled=0

    [workerEnv:]
    info=Global server options
    timing=1
    debug=0

    [lb:lb]
    info=Default load balancer.
    debug=0

    [channel.jni:jni]
    info=The jni channel, used if tomcat is started inprocess

    [status:]
    info=Status worker, displays runtime informations

    [vm:]
    info=Parameters used to load a JVM in the server process
    #OPT=-Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,address=8000,server=y ,suspend=n
    OPT=-Xmx32m
    OPT=-Xms32m
    OPT=-Djava.home=C:/lib/j2sdk1.4.1_02
    OPT=-Dcatalina.config=file:../conf/catalina.properties
    OPT=-Dcatalina.home=C:/Programme/Apache Group/jakarta-tomcat-5.0.20
    OPT=-Dcatalina.base=C:/Programme/Apache Group/jakarta-tomcat-5.0.20
    OPT=-Djava.class.path=C:/lib/j2sdk1.4.1_02/lib/tools.jar;C:/Programme/Apache Group/jakarta-tomcat-5.0.20/server/lib/tomcat-jni.jar;C:/Programme/Apache Group/jakarta-tomcat-5.0.20/common/lib/jmx.jar;C:/Programme/Apache Group/jakarta-tomcat-5.0.20/bin/bootstrap.jar

    disabled=0

    [worker.jninStartup]
    info=Command to be executed by the VM on startup. This one will start tomcat.
    class=org/apache/jk/apr/TomcatStarter
    ARG=startd
    disabled=0
    stdout=${serverRoot}/logs/stdout.log
    stderr=${serverRoot}/logs/stderr.log

    [worker.jninShutdown]
    info=Command to be executed by the VM on shutdown. This one will stop tomcat.
    class=org/apache/jk/apr/TomcatStarter
    ARG=stopd
    disabled=0

    [uri:/jkstatus/*]
    info=Display status information and checks the config file for changes.
    group=status:

    #[uri:/myapps/*]
    #info=Map the whole webapp

    #[uri:/manager/*]
    #info=Map the whole webapp

    [uri:/jsp-examples/*]
    info=Map the whole webapp

    -------------------------------------------
    Apache error.log:
    -------------------------------------------
    //... vorher alles ok, nur notices
    [Mon Aug 30 19:44:52 2004] [notice] config.update(): done uri:/jsp-examples/*
    [Mon Aug 30 19:44:52 2004] [notice] shm.create() Created head 640008 size 8192
    [Mon Aug 30 19:44:53 2004] [notice] Child 1072: Child process is running
    [Mon Aug 30 19:44:53 2004] [notice] jk2_init() Setting scoreboard slot 0 for child 1072
    [Mon Aug 30 19:44:53 2004] [notice] vm.init(): Jni lib: C:\Programme\Java\j2re1.4.1_02\bin\client\jvm.dll
    [Mon Aug 30 19:44:54 2004] [notice] vm.open2() done
    [Mon Aug 30 19:44:54 2004] [error] workerEnv.initChannel() init failed for channel.jni:jni
    [Mon Aug 30 19:44:54 2004] [notice] workerJni.Init() Skipping initialization for the 1072 1072
    [Mon Aug 30 19:44:54 2004] [error] workerEnv.initWorkers() init failed for worker.jninStartup
    [Mon Aug 30 19:44:54 2004] [notice] workerJni.Init() Skipping initialization for the 1072 1072
    [Mon Aug 30 19:44:54 2004] [error] workerEnv.initWorkers() init failed for worker.jninShutdown
    [Mon Aug 30 19:44:54 2004] [notice] workerEnv.init() ok C:/Programme/Apache Group/Apache2/conf/workers2.properties
    [Mon Aug 30 19:44:54 2004] [notice] mod_jk2 child 1072 initialized
    [Mon Aug 30 19:44:55 2004] [notice] Child 1072: Acquired the start mutex.
    [Mon Aug 30 19:44:55 2004] [notice] Child 1072: Starting 250 worker threads.
    </pre>

  • #2
    Hmm,

    also ich habe das letzte mal eine JNI Integration
    mit Apache 2.0.28, mod_jk2 2.0.4 und Tomcat
    5.0.24 durchgeführt.

    Mit welcher mod_jk2 Version hast Du getestet ?

    Tschau
    Pete

    Comment


    • #3
      Also aktuell geht Apache/JNI wohl leider nicht mehr.

      Mit Windows XP, 5.0.27, mod_jk2 2.0.4, JKd 1.4.2_03
      Apache 2.0.49 habe ich die selbe Fehlermeldung,
      dass der JNI Channel nicht mehr initialisiert wird.

      Aus meinem letzten Test hatte ich noch eine
      2.0.4 dev DLL ( Stand 10.03.2004) und
      den Test mit Tomcat 5.0.22 wiederholt und sieh da, es läuft. Freude und Leid liegen halt nah bei einander !

      Vielleicht schreibst Du zu Deinen Erfahrungen einen Bugreport, aber aktuell habe ich nicht viel Hoffung, das man schnell mit einer Lösung rechnen kann. Die Connector Committer konzentrieren ihre Energie auf die Entwicklung auf das neue mod_ajp-Modul und die Weiterentwicklung des JK2 ruht erstmal.

      Ich werde mal mit Günter Knauf darüber reden, ob er für das Problem eine Lösung weiß.

      Sehr, sehr schade!
      pete

      Comment


      • #4
        ja, das ist wirklich schade ;( Ich habe es übrigens mit mod_jk2 2.04 versucht - der kompilierten Version von apache. Kann immer noch keinen Fehler finden, unter linux geht es genauso wenig.
        <br><br>
        Sieht so aus, als müsste ich einen anderen Weg finden, das Problem ist, dass ich schon mehrere Anleitungen erfolglos probiert habe. Kann mir vielleicht jemand einen Tipp geben, wo ich eine Anleitung finde?
        <br><br>
        Was ich suche ist ein Connector für Apache 2.0.48 und eine 5er Tomcat Version. Ich muss die Verbindung unter Redhat 9 linux herstellen, wenn alles auch unter Win XP funktioniert, wäre es umso schöner. Wichtig ist neben dem uri-mapping, dass tomcat automatisch aus apache gestartet wird.
        <br><br>
        Wäre schön, wenn jemand eine Idee hätte.<br><br>
        Danke!<br>
        Marti

        Comment


        • #5
          Ich denke was Du brauchst ist,
          das der Tomcat als Service im Betriebsystem mit gestartet
          wird. In der aktuellen Ausgabe 09/04 des JM findest Du die Anleitung für Windows und in der kommenden TomC@ Kolumne 10/04 die Beschreibung für UNIX.

          Dann kannst Du die Installation Apache 2.0.50 und Tomcat 5.0.28 mit mod_jk2 oder mod_jk und Sockets durchführen.

          Tschau
          Pete

          Comment


          • #6
            Den Commons daemon kann ich persönlich nicht empfehlen. Der Java Service Wrapper den wir in
            der TomC@ Kolumne beschreiben und
            im Centaurus-Projekt einsetzten hat
            sich als wesentlich leistungsfähiger herausgestellt.

            Tschau
            Pete

            Comment

            Working...
            X