title: java.net.UnknownHostException when attempting to connect to database
body: <p>I am attempting to connect to an Oracle database through Java with the Oracle JDBC driver with the following code (obscuring the host, service, user, and password):</p>
  
  <pre><code>import java.sql.*;
  
  public class Main {
      public Main () {
          try {
              String host = "HOST_NAME";
              String port = "1521";
              String service = "SERVICE_NAME";
              String user = "SCHEMA_USER";
              String password = "SCHEMA_PASSWORD";
  
              Class.forName("oracle.jdbc.driver.OracleDriver");
  
              Connection connection = DriverManager.getConnection("jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=" + 
                          host + 
                          ")(PORT=" + 
                          port + 
                          ")))(CONNECT_DATA=(SERVICE_NAME=" + 
                          service + 
                          ")))", 
                          user, 
                          password);
  
              connection.close ();
  
          } catch (Exception e) {
              e.printStackTrace();
          }
      }
  
      public static void main (String args) {
          new Main ();
      }
  }
  </code></pre>
  
  <p>However, I receive the following error:</p>
  
  <pre class="lang-none prettyprint-override"><code>java.sql.SQLException: IO Error: The Network Adapter could not establish the connection
      at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:458)
      at oracle.jdbc.driver.PhysicalConnection.&lt;init&gt;(PhysicalConnection.java:546)
      at oracle.jdbc.driver.T4CConnection.&lt;init&gt;(T4CConnection.java:236)
      at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:32)
      at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:521)
      at java.sql.DriverManager.getConnection(Unknown Source)
      at java.sql.DriverManager.getConnection(Unknown Source)
      at com.acxiom.axle.reporting.database.DatabaseConnection.connect(DatabaseConnection.java:23)
      at com.acxiom.axle.reporting.Reporting.establishDatabaseConnection(Reporting.java:53)
      at com.acxiom.axle.reporting.Reporting.beginReporting(Reporting.java:20)
      at com.acxiom.axle.reporting.Entry.&lt;init&gt;(Entry.java:28)
      at com.acxiom.axle.reporting.Entry.main(Entry.java:118)
  Caused by: oracle.net.ns.NetException: The Network Adapter could not establish the connection
      at oracle.net.nt.ConnStrategy.execute(ConnStrategy.java:392)
      at oracle.net.resolver.AddrResolution.resolveAndExecute(AddrResolution.java:434)
      at oracle.net.ns.NSProtocol.establishConnection(NSProtocol.java:687)
      at oracle.net.ns.NSProtocol.connect(NSProtocol.java:247)
      at oracle.jdbc.driver.T4CConnection.connect(T4CConnection.java:1102)
      at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:320)
      ... 11 more
  Caused by: java.net.UnknownHostException: null
      at java.net.Inet6AddressImpl.lookupAllHostAddr(Native Method)
      at java.net.InetAddress$2.lookupAllHostAddr(Unknown Source)
      at java.net.InetAddress.getAddressesFromNameService(Unknown Source)
      at java.net.InetAddress.getAllByName0(Unknown Source)
      at java.net.InetAddress.getAllByName(Unknown Source)
      at java.net.InetAddress.getAllByName(Unknown Source)
      at oracle.net.nt.TcpNTAdapter.connect(TcpNTAdapter.java:117)
      at oracle.net.nt.ConnOption.connect(ConnOption.java:133)
      at oracle.net.nt.ConnStrategy.execute(ConnStrategy.java:370)
      ... 16 more
  </code></pre>
  
  <p>The strange thing is, I can connect to the database from PL/SQL Developer, I can ping the remote host, and I can telnet to the remote host on port 1521.</p>
  
  <p>Why would only Java appear to give an UnknownHostException, but I can connect and ping the host with other applications?</p>
  
  <p>EDIT: I removed "hr/hr" from the connection string above. I have tried the connection as-is with it removed and still receive the same error. I've also tried changing the connection string to match the version morgano listed in his answer, with the same result. Finally, I tried to change the port number to a port I know it's not listening on, and it still receives the same error.</p>