Oracle.ManagedAccess.Client in .NET Core application running in Docker Linux Container — oracle-tech

    Forum Stats

  • 3,715,654 Users
  • 2,242,820 Discussions
  • 7,845,479 Comments

Discussions

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Oracle.ManagedAccess.Client in .NET Core application running in Docker Linux Container

3758290
3758290 Member Posts: 2
edited August 2018 in ODP.NET

Hello

We are creating a Microservice based architecture with smaller Docker Containers hosting .NET Core 2.0 REST API. The Rest API internally uses Oracle.ManagedAccess.Client and connects to the Oracle Database hosted in Data center and retrieves the result. When the service is tested in Non-Docker mode, the application works and in the Docker Mode, it fails with ORA-12545. The stack trace of the errors are provided herewith:

ExtendedSocketException: No such device or address

System.Net.Dns.InternalGetHostByName(string hostName, bool includeIPv6)

NetworkException: ORA-12545: Network Transport: Unable to resolve connect hostname

OracleInternal.Network.OracleCommunication.DoConnect(string tnsDescriptor)

OracleException: ORA-12545: Network Transport: Unable to resolve connect hostname

The Docker Image is created from the base microsoft optimized image (microsoft/aspnetcore:2.0). What are we doing incorrect? Should we need to do additional configuration in the Docker image to enable the connection?

3758290

Best Answer

  • Christian.Shay -Oracle
    Christian.Shay -Oracle Posts: 1,782 Employee
    edited August 2018 Accepted Answer

    Hello,

    From your error, dns lookup of the database hostname appears to be failing. I would start by putting the IP address in your connect alias definition or connection string to verify that. Also I would make sure that there is no mistake which connection alias is being used.

    If you still have the problem after trying the above, let us know:

    1) Version number of ODP.NET Core

    2) How exactly you are providing the connection details to ODP.NET... using an alias? Are you using a TNSNAMES.ORA file (and where is the file)? Trying to use configuration APIs?

    3) How are you launching docker (what command line arguments are you passing)

    Finally, have a google at Docker DNS issues... I'm not really a docker expert:

    https://www.google.com/search?q=dns+lookup+fails+on+docker

    37582903758290

Answers

  • Christian.Shay -Oracle
    Christian.Shay -Oracle Posts: 1,782 Employee
    edited August 2018 Accepted Answer

    Hello,

    From your error, dns lookup of the database hostname appears to be failing. I would start by putting the IP address in your connect alias definition or connection string to verify that. Also I would make sure that there is no mistake which connection alias is being used.

    If you still have the problem after trying the above, let us know:

    1) Version number of ODP.NET Core

    2) How exactly you are providing the connection details to ODP.NET... using an alias? Are you using a TNSNAMES.ORA file (and where is the file)? Trying to use configuration APIs?

    3) How are you launching docker (what command line arguments are you passing)

    Finally, have a google at Docker DNS issues... I'm not really a docker expert:

    https://www.google.com/search?q=dns+lookup+fails+on+docker

    37582903758290
  • 3758290
    3758290 Member Posts: 2
    edited August 2018

    Thank you! The Connection string had DNS name, replacing with IP address worked.

This discussion has been closed.