SQL 서버 연결

망태기군 2020.07.13 18:35 Views : 1333

안녕하세요?? 저희는 약국 POS 관리하는 업체입니다.

약국 전산상에 있는 MS-SQL 2014 EXPRESS DB서버와 POS 간의 통신에서 문제가 생겨 문의 드립니다. Log 확인결과 


"System.Data.SqlClient.SqlException (0x80131904): 연결이 끊겼고 복구할 수 없습니다. 클라이언트 드라이버에서 한 번 이상 연결을 복구하려고 했지만 모두 실패했습니다. "


라는 메세지가 찍히며, 어플리케이션이 멈추고 약 30초에서 1분간 동작을 하지 않습니다.

문제는 위와같은 문제가 산발적으로 발생하며 일정시간이 지나면 정상 작동 된다는 것입니다. 

위 SqlException 번호를 확인해보니 SQL서버와 통신이 끊기겨서 발생하는 현상이라고 합니다. 

네트워크나 IP를 확인해보라고 하는데... 네트워크는 이상이 없고(Ping 잘떨어 집니다.) IP대신 컴퓨터명으로 사용하기 때문에 위 사항도 아닌듯 합니다. (무엇보다 평소에는 잘 되다가 갑자기 산발적으로 않된다고 하니... 미치겠스니다.)

혹시 세선이나 연결제한 등의 문제일까요?? 

혹 해결할 방법이 있을까요??

고수님들의 잠언을 기대합니다. ^^~



[에러 로그 앞뒤 부분]


2020-07-01 19:05:41,981 [INFO ] - [판매로그] 상품조회 쿼리 실행

2020-07-01 19:05:41,997 [INFO ] - [판매로그] 상품코드 : 8806436017214 상품명 : 페리덱스연고(덱사메타손) 단가 : 4000

2020-07-01 19:05:42,041 [INFO ] - [판매로그] 총 판매금액이 변동됨 - object : System.Windows.Forms.TextBox, Text: 4,000 EventArgs : System.EventArgs

2020-07-01 19:05:42,041 [INFO ] - [판매로그] 총 판매금액 : 4,000

2020-07-01 19:45:55,993 [ERROR] - 연결이 끊겼고 복구할 수 없습니다. 클라이언트 드라이버에서 한 번 이상 연결을 복구하려고 했지만 모두 실패했습니다. 복원 시도 횟수를 늘리려면 ConnectRetryCount 값을 높이십시오.

System.Data.SqlClient.SqlException (0x80131904): 연결이 끊겼고 복구할 수 없습니다. 클라이언트 드라이버에서 한 번 이상 연결을 복구하려고 했지만 모두 실패했습니다. 복원 시도 횟수를 늘리려면 ConnectRetryCount 값을 높이십시오. ---> System.Data.SqlClient.SqlException (0x80131904): SQL Server에 연결을 설정하는 중에 네트워크 관련 또는 인스턴스 관련 오류가 발생했습니다. 서버를 찾을 수 없거나 액세스할 수 없습니다. 인스턴스 이름이 올바르고 SQL Server가 원격 연결을 허용하도록 구성되어 있는지 확인하십시오. (provider: TCP Provider, error: 0 - 원격 컴퓨터가 네트워크 연결을 거부했습니다.) ---> System.ComponentModel.Win32Exception (0x80004005): 원격 컴퓨터가 네트워크 연결을 거부했습니다

   위치: System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, SqlCredential credential, Object providerInfo, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance, SqlConnectionString userConnectionOptions, SessionData reconnectSessionData, DbConnectionPool pool, String accessToken, Boolean applyTransientFaultHandling, SqlAuthenticationProviderManager sqlAuthProviderManager)

   위치: System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection, DbConnectionOptions userOptions)

   위치: System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnectionPool pool, DbConnection owningObject, DbConnectionOptions options, DbConnectionPoolKey poolKey, DbConnectionOptions userOptions)

   위치: System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection)

   위치: System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection)

   위치: System.Data.ProviderBase.DbConnectionPool.ReplaceConnection(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection)

   위치: System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection)

   위치: System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions)

   위치: System.Data.SqlClient.SqlInternalConnectionTds.TryReplaceConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions)

   위치: System.Data.SqlClient.SqlConnection.TryOpenInner(TaskCompletionSource`1 retry)

   위치: System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 retry)

   위치: System.Data.SqlClient.SqlConnection.OpenAsync(CancellationToken cancellationToken)

--- 예외가 throw된 이전 위치의 스택 추적 끝 ---

   위치: System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)

   위치: System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)

   위치: System.Data.SqlClient.SqlConnection.<ReconnectAsync>d__127.MoveNext()

ClientConnectionId:00000000-0000-0000-0000-000000000000

Error Number:1225,State:0,Class:20

   위치: System.Data.SqlClient.SqlConnection.<ReconnectAsync>d__127.MoveNext()

--- 예외가 throw된 이전 위치의 스택 추적 끝 ---

   위치: System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()

   위치: System.Data.SqlClient.AsyncHelper.WaitForCompletion(Task task, Int32 timeout, Action onTimeout, Boolean rethrowExceptions)

   위치: System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async, Int32 timeout, Task& task, Boolean asyncWrite, Boolean inRetry, SqlDataReader ds, Boolean describeParameterEncryptionRequest)

   위치: System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, TaskCompletionSource`1 completion, Int32 timeout, Task& task, Boolean& usedCache, Boolean asyncWrite, Boolean inRetry)

   위치: System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method)

   위치: System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method)

   위치: System.Data.SqlClient.SqlCommand.ExecuteReader()

   위치: BlueChannel.Framework.IO.Database.DatabaseCommand.QuerySql(String sql) 파일 C:\Users\ehgus\Desktop\20200521_1.0v\trunk\Framework\IO\Database\DatabaseCommand.cs:줄 447

ClientConnectionId:3b0524a3-db6f-4671-a086-6f9627ee7739

2020-07-01 19:45:56,224 [ERROR] - 연결이 끊겼고 복구할 수 없습니다. 클라이언트 드라이버에서 한 번 이상 연결을 복구하려고 했지만 모두 실패했습니다. 복원 시도 횟수를 늘리려면 ConnectRetryCount 값을 높이십시오.

System.Data.SqlClient.SqlException (0x80131904): 연결이 끊겼고 복구할 수 없습니다. 클라이언트 드라이버에서 한 번 이상 연결을 복구하려고 했지만 모두 실패했습니다. 복원 시도 횟수를 늘리려면 ConnectRetryCount 값을 높이십시오. ---> System.Data.SqlClient.SqlException (0x80131904): SQL Server에 연결을 설정하는 중에 네트워크 관련 또는 인스턴스 관련 오류가 발생했습니다. 서버를 찾을 수 없거나 액세스할 수 없습니다. 인스턴스 이름이 올바르고 SQL Server가 원격 연결을 허용하도록 구성되어 있는지 확인하십시오. (provider: TCP Provider, error: 0 - 원격 컴퓨터가 네트워크 연결을 거부했습니다.) ---> System.ComponentModel.Win32Exception (0x80004005): 원격 컴퓨터가 네트워크 연결을 거부했습니다

   위치: System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection)

   위치: System.Data.ProviderBase.DbConnectionPool.ReplaceConnection(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection)

   위치: System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection)

   위치: System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions)

   위치: System.Data.SqlClient.SqlInternalConnectionTds.TryReplaceConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions)

   위치: System.Data.SqlClient.SqlConnection.TryOpenInner(TaskCompletionSource`1 retry)

   위치: System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 retry)

   위치: System.Data.SqlClient.SqlConnection.OpenAsync(CancellationToken cancellationToken)

--- 예외가 throw된 이전 위치의 스택 추적 끝 ---

   위치: System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)

   위치: System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)

   위치: System.Data.SqlClient.SqlConnection.<ReconnectAsync>d__127.MoveNext()

ClientConnectionId:00000000-0000-0000-0000-000000000000

Error Number:1225,State:0,Class:20

   위치: System.Data.SqlClient.SqlConnection.<ReconnectAsync>d__127.MoveNext()

--- 예외가 throw된 이전 위치의 스택 추적 끝 ---

   위치: System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()

   위치: System.Data.SqlClient.AsyncHelper.WaitForCompletion(Task task, Int32 timeout, Action onTimeout, Boolean rethrowExceptions)

   위치: System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async, Int32 timeout, Task& task, Boolean asyncWrite, Boolean inRetry, SqlDataReader ds, Boolean describeParameterEncryptionRequest)

   위치: System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, TaskCompletionSource`1 completion, Int32 timeout, Task& task, Boolean& usedCache, Boolean asyncWrite, Boolean inRetry)

   위치: System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method)

   위치: System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method)

   위치: System.Data.SqlClient.SqlCommand.ExecuteReader()

   위치: BlueChannel.Framework.IO.Database.DatabaseCommand.QuerySql(String sql) 파일 C:\Users\ehgus\Desktop\20200521_1.0v\trunk\Framework\IO\Database\DatabaseCommand.cs:줄 447

ClientConnectionId:3b0524a3-db6f-4671-a086-6f9627ee7739

...



No. Subject Author Date Views
Notice SQL강좌: 챗GPT와 함께 배우는 SQL Server 무료 강좌 목차와 소개 (2023년 9월 업데이트) 코난(김대우) 2023.08.18 38055
Notice Python 무료 강좌 - 기초, 중급, 머신러닝(2023년 6월 업데이트) 코난(김대우) 2021.01.01 20666
10623 쿼리 결과를 서버로 올릴때 질문입니다. [2] 희망나라 2020.07.20 548
10622 차등 백업이 풀백업 이후 한번만 진행되는 현상 [1] 레몽 2020.07.20 599
10621 CONVERT 함수 문의드립니다. [5] 초보SQL러 2020.07.20 545
10620 테이블에서 여러가지 조건 검색 질문 좀 할게요 [3] 엘리사 2020.07.17 543
10619 저기요...sql비교연산자에서요.... ☞☜ [1] 김포천재 2020.07.16 556
10618 테이블상 동일한 여러개의 로우에 조건을 검색하여 데이터를 찾을수있을까요? [1] 뽀구 2020.07.15 438
10617 중복시간을 제외한 시간의 합을 구할수있을까요? [7] 톰슨 2020.07.14 938
» SQL 서버 연결 [1] 망태기군 2020.07.13 1333
10615 SQL 특정 시간 날짜 Sum 문의 입니다. [1] 핸젤루 2020.07.07 792
10614 쿼리 질문합니다... 병든토끼 2020.07.07 420
10613 db 백업? 이중화? 질문 [2] 하이욧 2020.07.06 547
10612 인덱스를 위한 교재 추천 부탁 드립니다. [2] 대두개발자 2020.06.29 661
10611 2개의 테이블을 union all 로 조회 후 합치고 싶습니다. [2] 초보SQL러 2020.06.25 533
10610 사용자 이(가) 로그인하지 못했습니다. 원인: 명시적으로 지정된 데이터베이스를 열지 못했습니다. 마징고 2020.06.24 566
10609 SP 내부의 트랜젝션 처리 코코 2020.06.22 642
10608 상위 레벨 코드 가져오는 방법 [1] sql바보 2020.06.22 592
10607 mssql 프로지져 관련 문의 드립니다. hoon 2020.06.22 440
10606 대용량 DB 질문 [2] 하이욧 2020.06.22 815
10605 대용량 데이터 삭제 문의 입니다. [1] 인버터 2020.06.20 509
10604 서브쿼리를 이용해서 다수의 매개변수를 받아 update를 진행하고 있습니다... [4] 남중남고군대공대 2020.06.15 658





XE Login