You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by bu...@apache.org on 2006/03/06 22:41:21 UTC

DO NOT REPLY [Bug 38869] - mod_jk does not send keep_alives on solaris 8 or solaris 10

DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG�
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://issues.apache.org/bugzilla/show_bug.cgi?id=38869>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND�
INSERTED IN THE BUG DATABASE.

http://issues.apache.org/bugzilla/show_bug.cgi?id=38869


rainer.jung@kippdata.de changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|                            |INVALID




------- Additional Comments From rainer.jung@kippdata.de  2006-03-06 21:41 -------
It works. I tried with Solaris 10, mod_jk 1.2.15 (!) and apache 2.0.55.

The name of the attribute for a worker in workers.properties file (set by
JkWorkersFile) is socket_keepalive, like in

worker.list=single
worker.single.type=ajp13
worker.single.host=mytomcat
worker.single.port=21109
worker.single.socket_keepalive=1

If I set it like that and connect a httpd process (apache I used 2.0.55) to
tomcat, then I can see in Solaris pfiles:

...
  17: S_IFSOCK mode:0666 dev:294,0 ino:47164 uid:0 gid:0 size:0
      O_RDWR
        SOCK_STREAM
        SO_KEEPALIVE,SO_SNDBUF(49152),SO_RCVBUF(49152)
        sockname: AF_INET 192.168.0.220  port: 33689
        peername: AF_INET 192.168.0.220  port: 21109

I use Solaris 10. Please note "SO_KEEPALIVE", so the socket option is set
correctly. Please very for your setup using pfiles.

Also note, that you should check in your mod_jk.log using JkLogLevel debug or
better trace, that during apache startup you find:

[Mon Mar 06 22:08:43 2006] [3832:0001] [trace] init::jk_ajp13_worker.c (47): enter
[Mon Mar 06 22:08:43 2006] [3832:0001] [trace] ajp_init::jk_ajp_common.c (1879):
enter
[Mon Mar 06 22:08:43 2006] [3832:0001] [debug] ajp_init::jk_ajp_common.c (1895):
setting socket keepalive to 1
...

and during connect:

[Mon Mar 06 22:11:14 2006] [3838:0001] [trace] ajp_send_request::jk_ajp_common.c
(1166): enter
[Mon Mar 06 22:11:14 2006] [3838:0001] [trace]
ajp_connect_to_endpoint::jk_ajp_common.c (856): enter
[Mon Mar 06 22:11:14 2006] [3838:0001] [trace] jk_open_socket::jk_connect.c
(308): enter
[Mon Mar 06 22:11:14 2006] [3838:0001] [debug] jk_open_socket::jk_connect.c
(328): socket TCP_NODELAY set to On
[Mon Mar 06 22:11:14 2006] [3838:0001] [debug] jk_open_socket::jk_connect.c
(341): socket SO_KEEPALIVE set to On

You can check the keep alive interval by:

myapache% ndd -get /dev/tcp tcp_keepalive_interval
7200000

This is the default for Solaris 8, 9 and 10. The unit is milliseconds, so by
default keep alive packets are not send before expiration of 7200 seconds = 2
hours. Maybe someone tuned that parameter on your old system.

I manually set the interval to a very short value to check:

# ndd -set /dev/tcp tcp_keepalive_interval 20000
# ndd -get /dev/tcp tcp_keepalive_interval
20000

After restarting apache and conecting to tomcat I sniffed the connection and voila:

  1 22:36:7.66269      myapache -> mytomcat     TCP D=21109 S=33730 Push
Ack=1181356454 Seq=256221097 Len=1 Win=49640
  2 22:36:7.66288      mytomcat -> myapache     TCP D=33730 S=21109
Ack=256221098 Seq=1181356454 Len=0 Win=49561
  3 22:36:27.67494     myapache -> mytomcat     TCP D=21109 S=33730 Push
Ack=1181356454 Seq=256221097 Len=1 Win=49640
  4 22:36:27.67514     mytomcat -> myapache     TCP D=33730 S=21109
Ack=256221098 Seq=1181356454 Len=0 Win=49561
  5 22:36:47.68717     myapache -> mytomcat     TCP D=21109 S=33730 Push
Ack=1181356454 Seq=256221097 Len=1 Win=49640
  6 22:36:47.68737     mytomcat -> myapache     TCP D=33730 S=21109
Ack=256221098 Seq=1181356454 Len=0 Win=49561

If you need to discuss mod_jk configuration further please use tomcat-users.
Concerning Solaris and TCP-Tuning you should use another appropriate forum.

-- 
Configure bugmail: http://issues.apache.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org