Chuck & André -
Back about this time last year, I noticed this on my first Windows 2008 Server
install.
It was Tomcat 5.5.27 with Native libraries 1.1.16 and Sun JDK 1.6.0_13 (all
64-bit). I really think it has something to do with APR, though I haven't
tested it without the native lib. My solution was to specify the IPv4 address.
Add to that the server.xml only has the one <Connector> entry, so I think it's
setting up only on the one address.
Here are the relevant portions of the server.xml:
<Server port="8005" shutdown="SHUTDOWN">
<!-- Comment these entries out to disable JMX MBeans support used for the
administration web application -->
<Listener className="org.apache.catalina.core.AprLifecycleListener" />
<Listener className="org.apache.catalina.mbeans.ServerLifecycleListener" />
<Listener
className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
<Listener
className="org.apache.catalina.storeconfig.StoreConfigLifecycleListener"/>
<!-- Global JNDI resources -->
<GlobalNamingResources>
<!-- Test entry for demonstration purposes -->
<Environment name="simpleValue" type="java.lang.Integer" value="30"/>
<!-- Editable user database that can also be used by
UserDatabaseRealm to authenticate users -->
<Resource name="UserDatabase" auth="Container"
type="org.apache.catalina.UserDatabase"
description="User database that can be updated and saved"
factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
pathname="conf/tomcat-users.xml" />
</GlobalNamingResources>
<!-- Define the Tomcat Stand-Alone Service -->
<Service name="Catalina">
<!-- Define a non-SSL HTTP/1.1 Connector on port 8080 -->
<Connector
port="8080" maxHttpHeaderSize="8192"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true" />
<!-- Define an AJP 1.3 Connector on port 8009 -->
<Connector port="8009"
enableLookups="false" redirectPort="8443" protocol="AJP/1.3" />
And here's the relevant netstat output:
C:\Users\Administrator>netstat -an
Active Connections
Proto Local Address Foreign Address State
TCP 0.0.0.0:25 0.0.0.0:0 LISTENING
TCP 0.0.0.0:135 0.0.0.0:0 LISTENING
TCP 0.0.0.0:445 0.0.0.0:0 LISTENING
TCP 0.0.0.0:1311 0.0.0.0:0 LISTENING
TCP 0.0.0.0:1688 0.0.0.0:0 LISTENING
TCP 0.0.0.0:3389 0.0.0.0:0 LISTENING
TCP 0.0.0.0:5357 0.0.0.0:0 LISTENING
TCP 0.0.0.0:8087 0.0.0.0:0 LISTENING
TCP 0.0.0.0:49152 0.0.0.0:0 LISTENING
TCP 0.0.0.0:49153 0.0.0.0:0 LISTENING
TCP 0.0.0.0:49154 0.0.0.0:0 LISTENING
TCP 0.0.0.0:49155 0.0.0.0:0 LISTENING
TCP 0.0.0.0:49158 0.0.0.0:0 LISTENING
TCP 0.0.0.0:49159 0.0.0.0:0 LISTENING
TCP 0.0.0.0:49160 0.0.0.0:0 LISTENING
TCP 0.0.0.0:49177 0.0.0.0:0 LISTENING
TCP 0.0.0.0:49818 0.0.0.0:0 LISTENING
TCP 0.0.0.0:49819 0.0.0.0:0 LISTENING
TCP 127.0.0.1:8005 0.0.0.0:0 LISTENING
TCP [::]:135 [::]:0 LISTENING
TCP [::]:445 [::]:0 LISTENING
TCP [::]:1311 [::]:0 LISTENING
TCP [::]:1688 [::]:0 LISTENING
TCP [::]:3389 [::]:0 LISTENING
TCP [::]:5357 [::]:0 LISTENING
TCP [::]:8009 [::]:0 LISTENING
TCP [::]:8080 [::]:0 LISTENING
TCP [::]:8087 [::]:0 LISTENING
TCP [::]:49152 [::]:0 LISTENING
TCP [::]:49153 [::]:0 LISTENING
TCP [::]:49154 [::]:0 LISTENING
TCP [::]:49155 [::]:0 LISTENING
TCP [::]:49158 [::]:0 LISTENING
TCP [::]:49159 [::]:0 LISTENING
TCP [::]:49160 [::]:0 LISTENING
TCP [::]:49177 [::]:0 LISTENING
TCP [::]:49818 [::]:0 LISTENING
TCP [::]:49819 [::]:0 LISTENING
Notice that the Server port went specifically to localhost, but the other two
went to the IPv6-any address. The same occurred for the 32-bit version.
When I started the 32-bit setup with the APR 1.1.4 that was initially
downloaded, the Connectors went only to the IPv4-any address. I guessing that
1.1.4 doesn't support IPv6 at all.
When I started the 32-bit setup without the APR native binaries, then I saw the
behavior you state should be occuring:
C:\Users\Administrator>netstat -an
Active Connections
Proto Local Address Foreign Address State
TCP 0.0.0.0:25 0.0.0.0:0 LISTENING
TCP 0.0.0.0:135 0.0.0.0:0 LISTENING
TCP 0.0.0.0:445 0.0.0.0:0 LISTENING
TCP 0.0.0.0:1311 0.0.0.0:0 LISTENING
TCP 0.0.0.0:1688 0.0.0.0:0 LISTENING
TCP 0.0.0.0:3389 0.0.0.0:0 LISTENING
TCP 0.0.0.0:5357 0.0.0.0:0 LISTENING
TCP 0.0.0.0:8009 0.0.0.0:0 LISTENING
TCP 0.0.0.0:8080 0.0.0.0:0 LISTENING
TCP 0.0.0.0:8087 0.0.0.0:0 LISTENING
TCP 0.0.0.0:49152 0.0.0.0:0 LISTENING
TCP 0.0.0.0:49153 0.0.0.0:0 LISTENING
TCP 0.0.0.0:49154 0.0.0.0:0 LISTENING
TCP 0.0.0.0:49155 0.0.0.0:0 LISTENING
TCP 0.0.0.0:49158 0.0.0.0:0 LISTENING
TCP 0.0.0.0:49159 0.0.0.0:0 LISTENING
TCP 0.0.0.0:49160 0.0.0.0:0 LISTENING
TCP 0.0.0.0:49177 0.0.0.0:0 LISTENING
TCP 0.0.0.0:49818 0.0.0.0:0 LISTENING
TCP 0.0.0.0:49819 0.0.0.0:0 LISTENING
TCP 127.0.0.1:8005 0.0.0.0:0 LISTENING
TCP [::]:135 [::]:0 LISTENING
TCP [::]:445 [::]:0 LISTENING
TCP [::]:1311 [::]:0 LISTENING
TCP [::]:1688 [::]:0 LISTENING
TCP [::]:3389 [::]:0 LISTENING
TCP [::]:5357 [::]:0 LISTENING
TCP [::]:8009 [::]:0 LISTENING
TCP [::]:8080 [::]:0 LISTENING
TCP [::]:8087 [::]:0 LISTENING
TCP [::]:49152 [::]:0 LISTENING
TCP [::]:49153 [::]:0 LISTENING
TCP [::]:49154 [::]:0 LISTENING
TCP [::]:49155 [::]:0 LISTENING
TCP [::]:49158 [::]:0 LISTENING
TCP [::]:49159 [::]:0 LISTENING
TCP [::]:49160 [::]:0 LISTENING
TCP [::]:49177 [::]:0 LISTENING
TCP [::]:49818 [::]:0 LISTENING
TCP [::]:49819 [::]:0 LISTENING
So my conclusion is that the APR library, at least at 1.1.16, only opens one
connection per connector. Or perhaps Tomcat is only opening 1 connection when
it takes the APR support code path.
Jeff
Note: I didn't try the no-native 64-bit because I have other production
instances using the same Catalina_base/bin directory.
-----Original Message-----
From: André Warnier [mailto:[email protected]]
Sent: Friday, May 07, 2010 9:50 AM
To: Tomcat Users List
Subject: Re: Re : Re : Re : Tomcat 5.5.29 does not accept connections from
outside
Eyrignoux Marc wrote:
>
> Hi Charles,
>
>> You can try setting the address attribute of your <Connector>
> elements to "0.0.0.0" to force IPv4.
>
> It works, thank you !!!!
> NB: Other people might experience the same problem. I don't know where it
> comes from, may be from an interaction between Windows Server 2008 and Tomcat
> 5.5.29 ?
>
May I jump in to add somewhat to the question ?
Thank you.
Can someone explain this a little bit more in detail, or point to some
rough explanation page somewhere ?
Basically :
- why did that Tomcat 5.5.29 "listen only on IPv6" until it was forced
to IPv4 by specifying "0.0.0.0" in the Connector ?
- why, when Tomcat is listening (only) on IPv6 [::]:8080, does it not
accept telnet connections on port 8080 ?
- why, when Tomcat was listening (only) on IPv6 [::]:8080, did HTTP:8080
connections from a browser on localhost work, but not the ones from
other stations ?
- can you set Tomcat to listen on /both/ IPv4 and IPv6 on port 8080 at
the same time ?
Thanks for any pointers.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
******************************* NOTICE *********************************
This message is intended for the use of the individual or entity to which
it is addressed and may contain information that is privileged,
confidential, and exempt from disclosure under applicable law. If the
reader of this message is not the intended recipient or the employee or
agent responsible for delivering this message to the intended recipient,
you are hereby notified that any dissemination, distribution, or copying
of this communication is strictly prohibited. If you have received this
communication in error, please notify us immediately by reply or by
telephone (call us collect at 512-343-9100) and immediately delete this
message and all its attachments.