Forum Discussion

jnickgo's avatar
jnickgo
Occasional Contributor
7 years ago
Solved

IO Error: Unknown host specified in TestRunner Execution

Hello,

 

We have some Test Steps that make use of JDBC connections in SoapUI.  

 

For our Oracle database we use a tnsnames.ora file to manage the hosts and connections.  I did have some initial problems getting that to work with SoapUI.  But finally got it after updating some things in the vmoptions file and moving the odbc driver into <Install Directory>\SmartBear\ReadyAPI-1.6.0\bin\ext.  It works fine now. 

 

However, I noticed when we try to run the tests from the cmd line or Test Runner they fail.  How can I configure SoapUI to know that the hosts are there?

 

Just making a simple connection step and running a query here.

 

 

 

Sample from the error log:

 

09:35:58,004 ERROR [SoapUI] An error occurred [IO Error: Unknown host specified ], see error log for details
09:35:58,005 ERROR [errorlog] java.sql.SQLRecoverableException: IO Error: Unknown host specified
java.sql.SQLRecoverableException: IO Error: Unknown host specified
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:517)
at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:557)
at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:233)
at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:29)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:556)
at com.eviware.soapui.support.GroovyUtils$DriverProxy.connect(GroovyUtils.java:150)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at com.eviware.soapui.support.jdbc.JdbcUtils.initConnection(JdbcUtils.java:67)
at com.eviware.soapui.impl.wsdl.panels.teststeps.JdbcSubmit.getDatabaseConnection(JdbcSubmit.java:188)
at com.eviware.soapui.impl.wsdl.panels.teststeps.JdbcSubmit.prepare(JdbcSubmit.java:214)
at com.eviware.soapui.impl.wsdl.panels.teststeps.JdbcSubmit.runQuery(JdbcSubmit.java:171)
at com.eviware.soapui.impl.wsdl.panels.teststeps.JdbcSubmit.run(JdbcSubmit.java:145)
at com.eviware.soapui.impl.wsdl.panels.teststeps.JdbcSubmit.<init>(JdbcSubmit.java:77)
at com.eviware.soapui.impl.wsdl.panels.teststeps.JdbcRequest.submit(JdbcRequest.java:133)
at com.eviware.soapui.impl.wsdl.teststeps.JdbcRequestTestStep.run(JdbcRequestTestStep.java:203)
at com.eviware.soapui.impl.wsdl.support.AbstractTestCaseRunner.runTestStep(AbstractTestCaseRunner.java:251)
at com.eviware.soapui.impl.wsdl.testcase.WsdlTestCaseRunner.runCurrentTestStep(WsdlTestCaseRunner.java:50)
at com.eviware.soapui.impl.wsdl.support.AbstractTestCaseRunner.internalRun(AbstractTestCaseRunner.java:161)
at com.eviware.soapui.impl.wsdl.support.AbstractTestCaseRunner.internalRun(AbstractTestCaseRunner.java:1)
at com.eviware.soapui.impl.wsdl.support.AbstractTestRunner.run(AbstractTestRunner.java:127)
at com.eviware.soapui.impl.wsdl.support.AbstractTestRunner.start(AbstractTestRunner.java:73)
at com.eviware.soapui.impl.wsdl.testcase.WsdlTestCase.run(WsdlTestCase.java:673)
at com.eviware.soapui.impl.wsdl.WsdlTestCasePro.run(WsdlTestCasePro.java:96)
at com.eviware.soapui.impl.wsdl.WsdlTestCasePro.run(WsdlTestCasePro.java:85)
at com.smartbear.ready.cmd.runner.SoapUITestCaseRunner.runTestCase(SoapUITestCaseRunner.java:633)
at com.smartbear.ready.cmd.runner.pro.SoapUIProTestCaseRunner.runTestCase(SoapUIProTestCaseRunner.java:237)
at com.smartbear.ready.cmd.runner.SoapUITestCaseRunner.runRunner(SoapUITestCaseRunner.java:430)
at com.smartbear.ready.cmd.runner.pro.SoapUIProTestCaseRunner.runRunner(SoapUIProTestCaseRunner.java:98)
at com.smartbear.ready.cmd.runner.AbstractSoapUIRunner.run(AbstractSoapUIRunner.java:257)
at com.smartbear.ready.cmd.runner.AbstractSoapUIRunner.runFromCommandLine(AbstractSoapUIRunner.java:160)
at com.smartbear.ready.cmd.runner.pro.SoapUIProTestCaseRunner.init(SoapUIProTestCaseRunner.java:82)
at com.smartbear.ready.cmd.runner.pro.SoapUIProTestCaseRunner.main(SoapUIProTestCaseRunner.java:78)
Caused by: oracle.net.ns.NetException: Unknown host specified
at oracle.net.resolver.HostnameNamingAdapter.resolve(HostnameNamingAdapter.java:188)
at oracle.net.resolver.NameResolver.resolveName(NameResolver.java:130)
at oracle.net.resolver.AddrResolution.resolveAndExecute(AddrResolution.java:413)
at oracle.net.ns.NSProtocol.establishConnection(NSProtocol.java:882)
at oracle.net.ns.NSProtocol.connect(NSProtocol.java:267)
at oracle.jdbc.driver.T4CConnection.connect(T4CConnection.java:1625)
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:365)

  • The .vmoptions file is only read by the exe file when running readyapi. There might be an easier way I don't know of but I think what you will have to do is to open the testrunner.bat (or testrunner.sh) file and edit it manually. This is what I would do.

     

    Where you see: 

    fi
    
    export JAVA_OPTS
    
    # For Cygwin, switch paths to Windows format before running java
    

    Modify it to read: 

     

     

    fi
    
    JAVA_OPTS="$JAVA_OPTS -Doracle.net.tns_admin=H:\Oracle8"
    export JAVA_OPTS # For Cygwin, switch paths to Windows format before running java

    Please let me know if it worked.

     

     

     

10 Replies

  • nmrao's avatar
    nmrao
    Champion Level 3
    Are you able to ping that machine using hostname?
    You may try with IP Address of the database.

    • jnickgo's avatar
      jnickgo
      Occasional Contributor

      Hi nmrao

       

      I guess that I have a couple issues here, the reason we use tnsnames is the ip changes, so it is hard to do that.

       

      Also, where would I tell SoapUI to use a specific IP of a database from cmd line or TestRunner?  I know that creating a jdbc Test Step would let me do that if I configured it so. However it seems like TestRunner is not picking that up.

      • nmrao's avatar
        nmrao
        Champion Level 3
        Can you please take a look the previous reply and answer to the requested info?