I'm trying to use h2 database on opensuse, but I can't make it work. I downloaded the platform independent package from the official web site, then tried several things to run it, without success :
All three return the same error :
org.h2.jdbc.JdbcSQLException: IO Exception: "java.net.UnknownHostException: linux-t89a.site: linux-t89a.site" [90028-170]
at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
at org.h2.message.DbException.get(DbException.java:158)
at org.h2.message.DbException.convert(DbException.java:273)
at org.h2.util.NetUtils.getLocalAddress(NetUtils.java:263)
at org.h2.server.web.WebServer.updateURL(WebServer.java:325)
at org.h2.server.web.WebServer.init(WebServer.java:315)
at org.h2.tools.Server.<init>(Server.java:51)
at org.h2.tools.Server.createWebServer(Server.java:412)
at org.h2.tools.Console.runTool(Console.java:228)
at org.h2.tools.Console.main(Console.java:100)
Caused by: java.net.UnknownHostException: linux-t89a.site: linux-t89a.site
at java.net.InetAddress.getLocalHost(InetAddress.java:1454)
at org.h2.util.NetUtils.getLocalAddress(NetUtils.java:261)
... 6 more
Exception in thread "main" org.h2.message.DbException: IO Exception: "java.net.UnknownHostException: linux-t89a.site: linux-t89a.site" [90028-170]
at org.h2.message.DbException.get(DbException.java:158)
at org.h2.message.DbException.convert(DbException.java:273)
at org.h2.util.NetUtils.getLocalAddress(NetUtils.java:263)
at org.h2.server.TcpServer.getURL(TcpServer.java:193)
at org.h2.tools.Server.getStatus(Server.java:391)
at org.h2.tools.Console.printProblem(Console.java:300)
at org.h2.tools.Console.runTool(Console.java:270)
at org.h2.tools.Console.main(Console.java:100)
Caused by: org.h2.jdbc.JdbcSQLException: IO Exception: "java.net.UnknownHostException: linux-t89a.site: linux-t89a.site" [90028-170]
at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
... 8 more
Caused by: java.net.UnknownHostException: linux-t89a.site: linux-t89a.site
at java.net.InetAddress.getLocalHost(InetAddress.java:1454)
at org.h2.util.NetUtils.getLocalAddress(NetUtils.java:261)
... 5 more
Here is my java -version :
java version "1.7.0_21"
OpenJDK Runtime Environment (IcedTea 2.3.9) (suse-3.37.1-x86_64)
OpenJDK 64-Bit Server VM (build 23.7-b01, mixed mode)
My javac -version :
javac 1.7.0_21
Further info : I asked a friend to try to run it on UnbuntuX, with the java -jar h2*.jar procedure, and it worked (we have the same java version, linux distribution omitted). I asked another friend to try to run it on his computer with Opensuse, it didn't work, with the same error as mine.
Thanks
EDIT : As required, the content of the etc/hosts file :
#
# hosts This file describes a number of hostname-to-address
# mappings for the TCP/IP subsystem. It is mostly
# used at boot time, when no name servers are running.
# On small systems, this file can be used instead of a
# "named" name server.
# Syntax:
#
# IP-Address Full-Qualified-Hostname Short-Hostname
#
127.0.0.1 localhost
# special IPv6 addresses
::1 localhost ipv6-localhost ipv6-loopback
fe00::0 ipv6-localnet
ff00::0 ipv6-mcastprefix
ff02::1 ipv6-allnodes
ff02::2 ipv6-allrouters
ff02::3 ipv6-allhosts
I think the problem is that the method InetAddress.getLocalHost()
does not work in your environment for some reason. The H2 database uses this method.
This problem and a possible answer is described in the question InetAddress.getLocalHost() throws UnknownHostException