Hi all,

while reading the thread "Tomcat 5.5.28 on 64 bit windows server 2008.", I was 
experimenting with various Tomcat versions and noticed that IPv6 support seems 
to have been dropped in the Windows version (32 bit as well as 64 bit) of TC 
Native 1.1.22 (which is included in Tomcat 7.0.20).
I tested on Windows 7 (32 bit), Sun/Oracle JDK 1.7.0.

1. When I downloaded Tomcat 7.0.20, I edited the server.xml and added 
address="[::]" attribute to the HTTP <Connector> element:

    <Connector port="8080" protocol="HTTP/1.1" 
               connectionTimeout="20000" 
               redirectPort="8443"
               address="[::]" />

2. After starting Tomcat, the following is displayed: 

Aug 23, 2011 5:57:40 AM org.apache.catalina.core.AprLifecycleListener init
INFO: Loaded APR based Apache Tomcat Native library 1.1.22.
Aug 23, 2011 5:57:40 AM org.apache.catalina.core.AprLifecycleListener init
INFO: APR capabilities: IPv6 [false], sendfile [true], accept filters [false], 
random [true].
Aug 23, 2011 5:57:41 AM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["http-apr-/0:0:0:0:0:0:0:0-8080"]
Aug 23, 2011 5:57:48 AM org.apache.coyote.AbstractProtocol init
SEVERE: Failed to initialize end point associated with ProtocolHandler 
["http-apr-/0:0:0:0:0:0:0:0-8080"]
org.apache.tomcat.jni.Error: 731004: The requested name is valid, but no data 
of the requested type was found.  
        at org.apache.tomcat.jni.Address.info(Native Method)
        at org.apache.tomcat.util.net.AprEndpoint.bind(AprEndpoint.java:395)
        at 
org.apache.tomcat.util.net.AbstractEndpoint.init(AbstractEndpoint.java:492)
        at org.apache.coyote.AbstractProtocol.init(AbstractProtocol.java:369)
        at 
org.apache.catalina.connector.Connector.initInternal(Connector.java:910)
        at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)
        at 
org.apache.catalina.core.StandardService.initInternal(StandardService.java:559)
        at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)
        at 
org.apache.catalina.core.StandardServer.initInternal(StandardServer.java:781)
        at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)
        at org.apache.catalina.startup.Catalina.load(Catalina.java:573)
        at org.apache.catalina.startup.Catalina.load(Catalina.java:596)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:601)
        at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:281)
        at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:449)

Aug 23, 2011 5:57:48 AM org.apache.catalina.core.StandardService initInternal
SEVERE: Failed to initialize connector [Connector[HTTP/1.1-8080]]
org.apache.catalina.LifecycleException: Failed to initialize component 
[Connector[HTTP/1.1-8080]]
        at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:106)
        at 
org.apache.catalina.core.StandardService.initInternal(StandardService.java:559)
        at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)
        at 
org.apache.catalina.core.StandardServer.initInternal(StandardServer.java:781)
        at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)
        at org.apache.catalina.startup.Catalina.load(Catalina.java:573)
        at org.apache.catalina.startup.Catalina.load(Catalina.java:596)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:601)
        at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:281)
        at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:449)
Caused by: org.apache.catalina.LifecycleException: Protocol handler 
initialization failed
        at 
org.apache.catalina.connector.Connector.initInternal(Connector.java:912)
        at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)
        ... 12 more
Caused by: org.apache.tomcat.jni.Error: 731004: The requested name is valid, 
but no data of the requested type was found.  
        at org.apache.tomcat.jni.Address.info(Native Method)
        at org.apache.tomcat.util.net.AprEndpoint.bind(AprEndpoint.java:395)
        at 
org.apache.tomcat.util.net.AbstractEndpoint.init(AbstractEndpoint.java:492)
        at org.apache.coyote.AbstractProtocol.init(AbstractProtocol.java:369)
        at 
org.apache.catalina.connector.Connector.initInternal(Connector.java:910)
        ... 13 more

Aug 23, 2011 5:57:48 AM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["ajp-apr-8009"]
Aug 23, 2011 5:57:48 AM org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 8139 ms
(...)

Note the "APR capabilities: IPv6 [false]" line. After Tomcat has started up, 
the HTTP connector isn't available.


3. Now I copied the tcnative-1.dll version 1.2.20 (which is included in TC 
6.0.33 and 5.5.33) into Tomcat 7's bin directory, and started Tomcat.

4. The following is displayed: 

Aug 23, 2011 6:03:01 AM org.apache.catalina.core.AprLifecycleListener init
INFO: An older version 1.1.20 of the APR based Apache Tomcat Native library is 
installed, while Tomcat recommends a minimum version of 1.1.22
Aug 23, 2011 6:03:01 AM org.apache.catalina.core.AprLifecycleListener init
INFO: Loaded APR based Apache Tomcat Native library 1.1.20.
Aug 23, 2011 6:03:01 AM org.apache.catalina.core.AprLifecycleListener init
INFO: APR capabilities: IPv6 [true], sendfile [true], accept filters [false], 
random [true].
Aug 23, 2011 6:03:02 AM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["http-apr-/0:0:0:0:0:0:0:0-8080"]
Aug 23, 2011 6:03:02 AM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["ajp-apr-8009"]
Aug 23, 2011 6:03:02 AM org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 1304 ms
Aug 23, 2011 6:03:02 AM org.apache.catalina.core.StandardService startInternal
INFO: Starting service Catalina
Aug 23, 2011 6:03:02 AM org.apache.catalina.core.StandardEngine startInternal
INFO: Starting Servlet Engine: Apache Tomcat/7.0.20
Aug 23, 2011 6:03:02 AM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory docs
Aug 23, 2011 6:03:03 AM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory examples
Aug 23, 2011 6:03:03 AM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory ROOT
Aug 23, 2011 6:03:03 AM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-apr-/0:0:0:0:0:0:0:0-8080"]
Aug 23, 2011 6:03:03 AM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["ajp-apr-8009"]
Aug 23, 2011 6:03:03 AM org.apache.catalina.startup.Catalina start
INFO: Server startup in 617 ms

Now with TC Native 1.1.20, IPv6 seems to work fine. (Well, almost. When I 
shutdown Tomcat, it does not stop, but "WARNING: Acceptor thread 
[http-apr-/0:0:0:0:0:0:0:0-8080-Acceptor-0] failed to unlock. Forcing hard 
socket shutdown." is displayed every second until I kill Tomcat's process.)


Is this intentional? I didn't see anything about dropped IPv6 support in the 
Native changelog.

Regards,

Konstantin Preißer


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

Reply via email to