본문 바로가기
9. 실습 Hands-on Lab

닷넷 코어 애플리케이션 설치하고 ADB 연결하기 .NET Core applications

by MY잭슨 2022. 10. 10.
사전 준비

2022.10.09 - [2. 기본 인프라 IaaS] - 클라우드 쉘과 Bastion 서비스 사용한 Private 인스턴스 연결

(만약 Public IP가 부여된 인스턴스에서는 바로 Public IP로 접근하여 셋업 후 테스트하면 됩니다.)

 

구성 순서

1. ADB 생성

2. DB 연결 정보 획득

3. 컴퓨트 리눅스 인스턴스 생성 (사전 준비)

4. 닷넷 코어 SDK 설치

5. 애플리케이션에서 DB 연결 설정 후 실행 

 

1. ADB 생성

 

내부 Private 인스턴스들만 연결할 수 있도록 제한

 

2. DB 연결 정보 획득

1)  기존 Wallet을 이용한 방식도 있지만 2) 최근에는 Wallet 없이도 연결할 수 있는 방식이 있어 Wallect 없는 방법으로 진행

Connections to your Autonomous Database are secured, 
and can be authorized using TLS or mTLS authentication options. 
TLS authentication is easier to use, provides better connection latency, 
and does not require you to download client credentials (wallet) if any of these is true for your connections:

a. You are using JDBC Thin Client (version 12.2.0.1 or higher) with JDK 8(u163+) or higher.
b. You are using the Python python-oracledb driver.
c. You are using ODP.NET version 19.14 (or higher), or 21.5 (or higher).
d. You are using an Oracle Call Interface based driver with Oracle Client libraries version 19.14 (or higher), or 21.5 (or higher).
  • TLS Authentication : TLS
  • Port : 1521
  • security=(ssl_server_dn_match=yes)
(description= 
(retry_count=20)(retry_delay=3)(address=(protocol=tcps)(port=1521)
(host=adb.ap-seoul-1.oraclecloud.com))
(connect_data=(service_name=xjdxzlusmfxg39e_dotnetadb_high.adb.oraclecloud.com))
(security=(ssl_server_dn_match=yes)))

 

3. 컴퓨트 리눅스 인스턴스 생성 (사전 준비)
4. 닷넷 코어 SDK 설치
sudo yum update -y
sudo yum install -y dotnet-sdk-6.0

ODP.NET Core versions 19.13 or 21.4 (or above)

 

임의로 정해놓은 경로에 tnsnames.ora 파일 생성

cd /tmp
vi /tmp/tnsnames.ora
dotnetadb_high = 
(description= (retry_count=20)(retry_delay=3)(address=(protocol=tcps)(port=1521)
(host=adb.ap-seoul-1.oraclecloud.com))
(connect_data=(service_name=xjdxzlusmfxg39e_dotnetadb_high.adb.oraclecloud.com))
(security=(ssl_server_dn_match=yes)))

 

닷넷 프로젝트를 생성 후 ODP.NET Core를 추가

dotnet new console
dotnet add package Oracle.ManagedDataAccess.Core --version 3.21.70

 

5. 애플리케이션에서 DB 연결 설정 후 실행

ADB연결 실행 코드 작성

vi Program.cs
using System;
using Oracle.ManagedDataAccess.Client;

namespace ODP.NET_Core_Autonomous
{
    class Program
    {
        static void Main()
        {
            //Enter your ADB's user id, password, and net service name
            string conString = "User Id=ADMIN;Password=bs3JoYw6rfKZY4hsocZK;Data Source=dotnetadb_high;Connection Timeout=30;";

            //Enter directory where you unzipped your cloud credentials
            OracleConfiguration.TnsAdmin = @"/tmp";

            using (OracleConnection con = new OracleConnection(conString))
            {
                using (OracleCommand cmd = con.CreateCommand())
                {
                    try
                    {
                        con.Open();
                        Console.WriteLine("Successfully connected to Oracle Autonomous Database");
                        Console.WriteLine();

                        cmd.CommandText = "select to_char(sysdate, 'yyyy-mm-dd hh24:mi:ss') from dual";
                        OracleDataReader reader = cmd.ExecuteReader();
                        while (reader.Read())
                            Console.WriteLine(reader.GetString(0) );
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine(ex.Message);
                    }
                }
            }
        }
    }
}

 

Build 후 실행

dotnet run

 

 

참고

https://www.oracle.com/database/technologies/appdev/dotnet/adbdotnetquickstarts.html

Connect Microsoft .NET, Visual Studio Code, and Visual Studio without a Wallet

Connect Microsoft .NET, Visual Studio Code, and Visual Studio with a Wallet (mTLS)

https://dotnet.microsoft.com/en-us/download

https://learn.microsoft.com/en-us/dotnet/core/install/linux-ubuntu

댓글