Oracle Connection.ORA-12541 TNS 수신기가 없습니다.
그래서 저는 C#을 통해 외부 서버에 연결하고 있습니다.저는 방금 Oracle 11g 클라이언트를 http://www.oracle.com/technetwork/database/windows/downloads/index-090165.html (255MB)에서 컴퓨터에 설치했습니다.
많은 블로그/질문을 읽은 후 이 기사가 유용하다는 것을 알게 되었습니다.
http://dbaspot.com/oracle-faq/444787-ora-12541-tns-no-listener.html
그래서 이것이 맞습니까?저는 아무것도 할 수 없습니다.DBA는 LISTENER를 편집해야 합니다.ORA 파일?
내 tnsnames.ora는 다음과 같습니다.
TestingConnect=
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = TestHostName.us.local)(PORT = 1523))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = TEST)
)
)
그것은 나에게 오류를 던지고 있습니다.
Oracle.DataAccess.Client.OracleConnection connection = new Oracle.DataAccess.Client.OracleConnection();
connection.ConnectionString = "Data Source=TestHostName.us.local;Persist Security Info=True;" + "User ID=tesName;Password=test";
connection.Open() //Throwing ERR!!!
어떻게 해야 하나?어떤 의견이든 감사합니다.감사합니다!
몇 가지 방법으로 이 작업을 수행할 수 있습니다.데이터 원본은 TNSNames 파일을 사용하여 호스트 이름이 아닌 TNSHosts 항목 이름(tnsnames.ora의 첫 번째 "=" 앞의 비트)을 지정해야 합니다.
connection.ConnectionString = "Data Source=TestingConnect;Persist Security Info=True;" + "User ID=tesName;Password=test";
또는 다음과 같이 전체 TNS 항목을 연결 문자열에 넣을 수 있습니다.
connection.ConnectionString = "Data Source=(DESCRIPTION = " +
"(ADDRESS = (PROTOCOL = TCP)(HOST = TestHostName.us.local)(PORT = 1523))" +
"(CONNECT_DATA =" +
"(SERVER = DEDICATED)" +
"(SERVICE_NAME = TEST))" +
");Persist Security Info=True;User ID=tesName;Password=test";
당신의 의견에 감사드립니다.연결 문자열을 변경했는데 작동했습니다.다음은 다음과 같습니다.
private static string GetConnectionString()
{
return "Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=TestHostName.us.local)(PORT=1523) ) )" +
"(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=CCDB)));User id=UserName; Password=Password; enlist=false; pooling=false;";
}
이 오류는 드라이브 C가 가득 찼을 때 발생하며 Oracle Service 실행이 불안정할 때 발생합니다.
Oracle.ManagedDataAccess.Client.OracleException (0x80004005):
ORA-12541: TNS: No listener
---> OracleInternal.Network.NetworkException (0x80004005):
ORA-12541: TNS: No listener
---> System.Net.Sockets.SocketException (0x80004005):
No connection could be made because the target machine actively refused it {ServerIP}:1521
at System.Net.Sockets.Socket.InternalEndConnect(IAsyncResult asyncResult)
at System.Net.Sockets.Socket.EndConnect(IAsyncResult asyncResult)
at System.Net.Sockets.TcpClient.EndConnect(IAsyncResult asyncResult)
at OracleInternal.Network.TcpTransportAdapter.Connect(ConnectionOption conOption)
at OracleInternal.Network.OracleCommunication.DoConnect(String tnsDescriptor)
at OracleInternal.ServiceObjects.OracleConnectionImpl.Connect(ConnectionString cs, Boolean bOpenEndUserSession, String instanceName)
at OracleInternal.ConnectionPool.PoolManager`3.CreateNewPR(Int32 reqCount, Boolean bForPoolPopulation, ConnectionString csWithDiffOrNewPwd, String instanceName)
at OracleInternal.ConnectionPool.PoolManager`3.Get(ConnectionString csWithDiffOrNewPwd, Boolean bGetForApp, String affinityInstanceName, Boolean bForceMatch)
at OracleInternal.ConnectionPool.OraclePoolManager.Get(ConnectionString csWithNewPassword, Boolean bGetForApp, String affinityInstanceName, Boolean bForceMatch)
at OracleInternal.ConnectionPool.OracleConnectionDispenser`3.Get(ConnectionString cs, PM conPM, ConnectionString pmCS, SecureString securedPassword, SecureString securedProxyPassword)
at Oracle.ManagedDataAccess.Client.OracleConnection.Open()
확인해보세요, 아마도 당신의 C 드라이브도 가득 찼을 것입니다.
그런 다음 작업 관리자를 사용하여 일부 오라클 서비스에 대해 다시 시작합니다. Mikael Holmgren의 응답 확인
언급URL : https://stackoverflow.com/questions/12571379/oracleconnection-open-is-throwing-ora-12541-tns-no-listener
'itsource' 카테고리의 다른 글
Java가 클래스 경로를 무시합니다. (0) | 2023.08.20 |
---|---|
윈도우즈 Powershell $profile이 실제 경로를 표시하지 않음 (0) | 2023.08.20 |
테마를 찾을 수 없습니다.AppCompat.새로운 Android 액션 바 지원을 위한 조명 (0) | 2023.08.15 |
Java 가져오기 문에 오류가 있습니다. "import javax.validation.constraints.NotNull을(를) 확인할 수 없습니다. (0) | 2023.08.15 |
macOS에 Composer를 설치하는 동안 오류가 발생했습니다(JIT 컴파일 실패). (0) | 2023.08.15 |