약 48 분 후에 시간이 초과되는 장기 실행 쿼리가 있습니다.제한 시간 내에 쿼리가 시간 초과되는 이유는 무엇입니까?
명령 시간 제한은 2 시간으로 설정되고 연결 시간 제한은 17 분으로 설정됩니다.
쿼리가 시간 초과를 발생시키는 원인은 무엇입니까? (내가 간과 한 다른 뭔가가 있어야 겠지?)
Npgsql.NpgsqlException:
A timeout has occured. If you were establishing a connection, increase Timeout value in ConnectionString. If you were executing a command, increase the CommandTimeout value in ConnectionString or in your NpgsqlCommand object.
at Npgsql.NpgsqlState.ProcessBackendResponsesEnum(NpgsqlConnector context) in C:\projects\Npgsql2\src\Npgsql\NpgsqlState.cs:line 384
at Npgsql.NpgsqlCommand.GetReader(CommandBehavior cb) in C:\projects\Npgsql2\src\Npgsql\NpgsqlCommand.cs:line 611
at Npgsql.NpgsqlCommand.ExecuteReader(CommandBehavior cb) in C:\projects\Npgsql2\src\Npgsql\NpgsqlCommand.cs:line 591
at Npgsql.NpgsqlCommand.ExecuteDbDataReader(CommandBehavior behavior) in C:\projects\Npgsql2\src\Npgsql\NpgsqlCommand.cs:line 538
추가 정보 :
- 포스트 그레스 버전 : 8.3
- NpgSql : 2.0.11.0
포스트 그레스 로그에 다음 "오류"가 표시됩니다.
cancelling statement due to user request
동일한 검색어로 실패한 시간과 동일한 시간 ("00 : 48 : 24.909" 및 "00 : 48 : 24.936")을 실행 한 후 서로 다른 시간대에 대해 서로 다른 시간대에 두 번 쿼리가 실행되었습니다. "
또한 이전 쿼리는 00:47:40보다 오래 걸리지 않았으므로 다른 이유로 인해 약 48 분이 지나면 시간 제한이 발생합니다.
나는 postgres 설정 파일에서 아무것도 볼 수 없으며, 내가 볼 수있는 곳이 다른가요?
PostgreSQL 버전, nPgSQL 버전, 명령 텍스트 및 서버 오류 로그 출력? 추측하면 _network_ timeout (아마도 NAT 연결 추적 만료 문제를 통해 얻을 수 있습니까?) 명령문 시간 초과가 아닙니다.어쨌든, 해당 정보를 추가 할 질문을 편집하면 여기에 의견을 남기십시오. –
Postgres 8.3, NpgSql 2.0.11.0 (버전을 변경할 수 없음), 명령 텍스트를 제공 할 수 없으며 로그 용 데이터베이스 서버에 액세스 할 수 없습니다. 서버와 db는 전용 스위치의 데이터 센터에 있습니다. 타임 아웃은 클라이언트가 얼마나 오랜 시간이 걸릴지에 의해 제어되었지만? 더 이상 실행되지 않고 시간 초과되지 않는 다른 쿼리가 있습니다. –
그런 경우 - nPgSQL 스택 추적에 더 많은 것이 있습니까? Java에서와 같이 "원인 ..."이 있습니까? 귀하의 입장에서 나는 (a) DBA에게 로그를 요청하고, (b) 가능한 한 많은 nPgSQL 로깅 추적을 가능하게합니다. 및/또는 (c) Wireshark를 사용하여 네트워크 통신을 검사하고 진행 상황을 정확하게 확인하십시오. –