Am 27.07.2011 19:34, schrieb Felix Schumacher:
Hi Volker,
Hi Felix,
Am Mittwoch, den 27.07.2011, 13:08 +0200 schrieb Volker:
Hallo Felix,

I considered all tips you gave. Thanks again.

Like mentioned before my configuration was running correctly but I could
not notice that because the http tunneling does need much more time
(first request of the httptunnelingdc-Servlet (I check this out in
Apache?s log-file) than my former configuration with tomcat.
are you still using the invoker servlet, or are you using
httptunnelingdc-Servlet with a url-path?
No, invoker servlet is not used anymore!
Now I wonder how I can tune something (Simultaneously I will install
tomcat 7.x) because I do not know if the slow-performance-problem
depends on tomcat settings or maybe on the Diablo-Java-Settings?
I would bet, that the app is causing the delay.
Well, I guess that too. But since the applet code has not changed it obviously depends on the Java-Plugin-version too!
The combination with tomcat 3.3, apj12, mod_jk, Diablo JRE 1.5 and
apache 1.3 results in opening the chat window via http tunneling in *a
few seconds* if you blocked all ports except port 80 before for Java
(Browser).
With tomcat 4.1 the same procedure needs nearly 3 minutes.

Any idea?
Look at
http://wiki.apache.org/tomcat/FAQ/Troubleshooting_and_Diagnostics and
find the troublemaker :) Common advise is to take a few threadtraces a
few seconds apart. Then find stacktraces which apear to be stuck. Maybe
it just tries to do a dns lookup or connect to some host until it times
out.
No, ist has to do with the applet params for different ports you can define for contacting the chat server. For example defining the ports under which the chat server is listening looks like following:
<param name='ports' value='ports=119,8080,58399'>

The the applet tries to reach the chat server via port 119. If that does not work it continues with port 8080 etc.
If all ports fail, the http tunneling servlet is requested.

If you only define ports=119 which is blocked by your firewall client-sided the http tunneling will be requested after 30 seconds. Defining the 3 ports 119,8080 and 58399 results in nearly 3 minutes if you are blocking those ports with a software firewall.

Best regards

Volker


Regards
  Felix
Thanks and best regards

V o l k e r


Am 26.07.2011 19:54, schrieb Felix Schumacher:
Hi Volker,

Am Dienstag, den 26.07.2011, 16:29 +0200 schrieb Volker:
Hello,

my current system configuration is like following:

- FreeBSD 8.2
- apache-2.2.17_2
- mod_jk-ap2-1.2.31_1 Apache2 JK
- tomcat 4.1.36_2
As you said elsewhere in this thread, that you are willing to upgrade to
a newer tomcat as well, I will assume, that you will use tomcat 6 or
even tomcat 7.
- diablo-jdk1.6.0

In order to provide a http tunneling for a chat server I have been
using*tomcat 3.3*, FreeBSD 5.4, Apache 1.3, mod_jk (ajp12 Connector) and
diablo-jre1.5.0 in combination with a certain http tunneling servlet
*without any problems* for several years.
That http tunneling servlet is passed via a chat applet via "<PARAM
NAME='HttpServlet'
VALUE='http://test.Domain.com/servlet/*HttpTunnelingServletdc*'>
The configuration for that system above _*can be found below*_ *=>
Configuration for tomcat 3.3
That looks like you are using the strongly discouraged dispatcher
servlet. That is still available, but disabled by default. And you
should leave it that way.
...
Thanks a lot and best regards

Volker
*
============================================================================
NOT WORKING
Configuration for Tomcat 4.1.36 (FreeBSD 8.2, Apache 2.2.17,
mod_jk-ap2-1.2.31, Diablo JDK 1.6)
**============================================================================

The servlet classes result in:
*/usr/local/apache-tomcat4.1/webapps/ROOT/WEB-INF/classes*
*/usr/local/apache-tomcat4.1/webapps/ROOT/WEB-INF/classes*/*com/....*
*/usr/local/apache-tomcat4.1/webapps/ROOT/WEB-INF/classes/digi/...
I read that as: There are some files and directories under
WEB-INF/classes in your ROOT webapp and that /usr/local/apache-tomcat4.1
is your CATALINA_BASE and probably CATALINA_HOME too.
...
*
httpd.conf
*JkWorkersFile "/usr/local/etc/apache22/workers.properties"
JkLogFile "/usr/local/apache-tomcat4.1/logs/mod_jk.log"
JkShmFile /var/log/jk-runtime-status
JkLogLevel info
Looks OK.
*
workers.properties
*workers.java_home=/usr/local/diablo-jdk1.6.0
workers.tomcat_home=/usr/local/apache-tomcat4.1
Remove both deprecated config options java_home and tomcat_home. They
are not needed anymore.
worker.list=jsp-hostname
worker.jsp-hostname.port=8009
worker.jsp-hostname.host=127.0.0.1
worker.jsp-hostname.type=ajp13
worker.jsp-hostname.lbfactor=1*

**server.xml*
Copy the server.xml from a fresh tomcat download and replace your
port-numbers in there.

<Service name="Tomcat-Standalone">
...

<!-- Tomcat Root Context -->

<Context path="/ROOT" docBase="ROOT" debug="0" reloadable="true"
crossContext="true">
<Logger className="org.apache.catalina.logger.FileLogger"
prefix="ROOT-http-tunneling_log." suffix=".txt" timestamp="true"/>
</Context>

<!-- Tomcat Examples Context -->
<Context path="/examples" docBase="examples" debug="1" reloadable="true"
crossContext="true">
<Logger className="org.apache.catalina.logger.FileLogger"
prefix="localhost_examples_log." suffix=".txt" timestamp="true"/>
<Ejb   name="ejb/EmplRecord" type="Entity"
                    home="com.wombat.empl.EmployeeRecordHome"
                  remote="com.wombat.empl.EmployeeRecord"/>
Your context descriptions for ROOT and example would be placed in newly
created files named ROOT.xml and example.xml under
$CATALINA_BASE/conf/Catalina/localhost. But I seriously doubt, that you
need example.xml and ROOT.xml is not needed, if all you want to achieve
is logging. Look at http://tomcat.apache.org/tomcat-7.0-doc/logging.html
for more info about simple logging.
*web.xml*
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app
       PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
       "http://java.sun.com/dtd/web-app_2_3.dtd";>
You could update your webapp to a newer version by replacing the above
values, but they should do no harm.
<web-app>
<servlet>
<servlet-name>
        HttpTunnelingServletdc
</servlet-name>
<servlet-class>
*com.diginet.digichat.util.tunnel3.HttpTunnelingServlet*
</servlet-class>
<init-param>
<param-name>Host</param-name>
<param-value>localhost</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>invoker</servlet-name>
<url-pattern>/servlet/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>HttpTunnelingServletdc</servlet-name>
<url-pattern>/HttpTunnelingServletdc</url-pattern>
</servlet-mapping>
Instead of mapping a not configured servlet named invoker to /servlet/*
you should map your servlet named HttpTunnelingServletdc
to /servlet/HttpTunnelingServletdc or alternatively change your applet
configuration from top of your post.

So remove
<servlet-mapping><servlet-name>invoker</servlet-name>...</servlet-mapping>
and change url-pattern in the<servlet-mapping>
from /HttpTunnelingServletdc to /servlet/HttpTunnelingServletdc
</web-app>

...
*description* _The server encountered an internal error () that
prevented it from fulfilling this request._

*exception*

javax.servlet.ServletException
        at 
com.diginet.digichat.util.tunnel3.HttpTunnelingServlet.doGet([DashoPro-V1.3BETA-091199])
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:697)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
...
        at 
org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:895)
        at 
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:685)
        at java.lang.Thread.run(Thread.java:619)

*root cause*

java.lang.NullPointerException
        at 
com.diginet.digichat.util.tunnel3.HttpTunnelingServlet.doGet([DashoPro-V1.3BETA-091199])
Hopefully you have the source code for HttpTunnelingServlet since this
line means, your servlet gets invoked, but it is not happy to work :)
That might come from the fact, that you configured the servlet
HttpTunnelingServletdc, but used the invoker-servlet. Chances are, that
the proposed configuration chages in web.xml fix this.

HTH
   Felix

        at javax.servlet.http.HttpServlet.service(HttpServlet.java:697)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
        at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:199)
        at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:145)
...
------------------------------------------------------------------------


        Apache Tomcat/4.1.3


===================================================================================
*WORKING
Configuration for tomcat 3.3 (FreeBSD 5.4, Apache 1.3.41, Tomcat 3.3.2,
mod_jk 1.2.15, Diablo JRE 1.5)
**============================================================================*
*
SERVER.XML
* (jakarta-tomcat3.3/conf)
<Ajp12Connector port="8007" />

*web.xml*
(/jakarta-tomcat3.3/webapps/ROOT/WEB-INF)
<?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE web-app
       PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
       "http://java.sun.com/dtd/web-app_2_3.dtd";><web-app>
<servlet>
<servlet-name>
        HttpTunnelingServletdc
</servlet-name>
<servlet-class>
        com.diginet.digichat.util.tunnel3.HttpTunnelingServlet
</servlet-class>
<init-param>
<param-name>Host</param-name>
<param-value>localhost</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>HttpTunnelingServlet</servlet-name>
<url-pattern>/HttpTunnelingServlet</url-pattern>
</servlet-mapping>
</web-app>

*workers.properties*
worker.ajp12.type=ajp12
worker.ajp12.port=8007
worker.ajp12.host=localhost
worker.ajp12.lbfactor=1

*mod_jk.conf*
<IfModule !mod_jk.c>
     LoadModule jk_module /usr/local/libexec/apache/mod_jk.so
</IfModule>
JkWorkersFile "/usr/local/jakarta-tomcat3.3/conf/jk/workers.properties"
JkLogFile "/usr/local/jakarta-tomcat3.3/logs/mod_jk.log"
JkShmFile /var/log/jk-runtime-status
JkLogLevel info
JkMount /servlet/* ajp12



---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org




---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org

Reply via email to