Yeah, the difference is that Httpd calls:
  apr_socket_opt_set(s, APR_SO_REUSEADDR, one);
on the Socket before binding it.  That allows it to bind even though there 
are still half-closed sockets on systems like Solaris.

About the only work-around is to hack the tcnative code, and recompile it.

"Fenlason, Josh" <[EMAIL PROTECTED]> wrote in message 
news:[EMAIL PROTECTED]
I added the Listener you mentioned to server.xml, but I'm still seeing
the issue.  The problem is happening when run the shutdown.sh.  I can
understand if things aren't all clean and tidy if Tomcat crashed, but
you shouldn't have to wait 4 minutes to restart Tomcat after a planned
shutdown.  Apache doesn't work like that.  Any other suggestions on how
to get this to shutdown properly?  Thanks in advance.
,
Josh.

> -----Original Message-----
> From: Mladen Turk [mailto:[EMAIL PROTECTED]
> Sent: Friday, January 27, 2006 1:24 AM
> To: Tomcat Users List
> Subject: Re: APR Connector Shutdown Problem
>
>
> Fenlason, Josh wrote:
> > I'm running into a problem with the APR connector not shutting down
> > properly.  Tomcat runs fine and there are no errors on
> shutdown, but if
> > I shut Tomcat down and start it up again I get a socket bind failed
> > error in the catalina log (attached).  I have to wait for several
> > minutes between shutdown and startup for Tomcat to be able
> to startup
> > correctly.  If I run Tomcat without the APR connector, I
> don't have this
> > issue.  This does not occur on Windows, but does on Solaris and AIX.
> > Has anyone else seen this?
> > One thing I noticed is that the first thing logged on
> shutdown is an
> > "AjpAprProtocol pause" entry, but there is no shutdown,
> stop or destroy.
> > Is there any chance the APR connector is just getting
> paused and nothing
> > is actually stopping it?
> > Any help would be greatly appreciated.  Thanks in advance.
>
>
> I suppose you have:
> <Listener className="org.apache.catalina.core.AprLifecycleListener" />
> in your server.xml
>
> But of course it doesn't guarantee it will be executed in all cases,
> if the JVM crashes for example.
> On Solaris it can take up to 4 minutes until the OS recycles the
> zombie socket.
> You can use:
> ndd -set /dev/tcp tcp_time_wait_interval 60000
> To lower that value.
>
> APR does not try to fool the OS like JVM, but rather behaves like
> Apache httpd.
>
> Regards,
> Mladen.
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 




---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to