Home‎ > ‎Tom's Ideas And Notes‎ > ‎

Windoze7 Java7 issues with IP6

posted Jan 11, 2013, 4:41 PM by Tom Gutwin
I recently ran into a networking "issue" that was causing my JDBC data queries to not connect to their servers.
Java Logo

    I kept getting an SQL error: java.sql.SQLException: The Network Adapter could not establish the connection
This came out of (what I thought was) no-where because the commandline app previously worked fine.
  • I was running an SQL based commandline app that was accessing an Oracle database.
  • I was using a Windoze 7 computer with Java 7 installed.
  • A native windows based port scan apps found the oracle 1521 port listening successfully (whereas my java based port scanner failed)
  • I was running through a VPN
Hmmmm, what is going on
I tried all kinds of things to fix it,  including setting the SERVER=DEDICATED on the JDBC connection
Nothing worked, until...

I backed out my JDK7 install and tried running it with Java 6.
  • It worked again!
I did a bit more digging and found someone else with a similar network problem related to IP6
that got fixed by adding
  • -Djava.net.preferIPv4Stack=true
to the commandline, so I went back to Java7, added that define to my commandline and
  • everything worked again in Java7!

After reading the Oracle Java docs on this subject - http://docs.oracle.com/javase/6/docs/technotes/guides/net/ipv6_guide/index.html

I think this is actually a Windoze 7 thing, because Java transparently uses what is given to in the underlying system.  My code has no specific requests for IP6 or IP4 for that matter.