I have a local workflow that connects to an Oracle DB. That works totally fine using username and password.
Now I want to shift this to the next level and let it run on a schedule using the KNIME Business Hub.
However, whenever I try to run it there, it fails to run.
I have stored username / password in a secret on the Business Hub and retrieve it through the Secrets Retriever node.
But no matter what I do, the workflow always fails.
The error message I get upon inspecting it reads: “Execute failed: IO Error: The Network Adapter could not establish the connection”
I have aligned internally with our IT guys who stated that ports etc I need and IP addresses of the Oracle DB server should be allowed on the Business Hub.
But I simply have no clue what this error message means: does it mean the server answers but does not get the right user credentials? Or does it mean, the server does not respond at all?
I have no clue how to proceed from here… Any help would be highly appreciated.
The Oracle error “IO Error: The Network Adapter could not establish the connection” most likely means that the JDBC driver is unable to connect to the Oracle database server. This is usually caused by network issues, incorrect connection details, or the database service not running.
First you should check the network issues (e.g: firewall is blocking port 1521). If network is ok, then most probably you have listener configured wrongly, the hostname you specify in connection string must be the same as in the listener.
You could check the following:
For possible Firewall/network related issues, check connectivity with ping and telnet
Check if the Oracle Listener is running and if configured correctly.
Ensure you are using the correct Oracle JDBC driver version that matches your Oracle database version.
Try connecting with another program, and see if the connection can be established.
the port should be open. I have been told it’s port 1570 and our internal IT partner told me they opened that port so that the workflow on the Hub can communicate “through it”
I assume the Listener (on the DB server side) is working, because if I run the workflow locally, it works perfectly fine (connects, filters, reads data etc). But hey, I am not a DB specialist, so it may be that this is a different kind of Listener?
Have been told that I need to run 19.14.0 Oracle driver as this is what has been working for others.
Again, locally, it runs fine so I would assume that listener and driver are fine.
One thing I have learned from the people who run this DB server is that they do some kind of IP rotation (for the sake of a better word) for load balancing. Into the Oracle Connector node I have put both, a real URL (like db.myserver.com) as well as the IP addresses. Locally works, remotely not.
Hi @kowisoft, this is a long-shot but something to rule out as many years ago I had a weird problem connecting to an oracle database and it turned out it was because my client machine had an underscore in its hostname, so it was called something like “appsrv_1”. Just want to check that your KNIME hub hasn’t got an underscore in its hostname.
The error message won’t be because of invalid username/password. This error occurs before its got that far! For straight invalid user/password it’s a less cryptic message.
If yes, then the executor image must include the Oracle client as part of the image.
Locally, you can open the cmd and write tnsping + the name of your DB host. This will return the FQDN of the DB. Try writing that one in the DB Connector on the Hub. If that works, it’s because the Oracle Client is not part of the image and cannot resolve TNS.
Perhaps this can help… we had the a similar issue and managed to solve it like this.