장기 유휴 세션이 발생하는 시나리오가 있습니다.두꺼비소프트Oracle 서버와의 클라이언트 통신은 중간 상태 전체 방화벽에서 시간 초과로 인해 중단된 것 같습니다.
이러한 세션은 여러 시간 동안 유휴 상태일 수 있습니다!
방화벽의 시간 초과를 전체적으로 늘리는 것은 허용되지 않으며
물론 특정 흐름에 대해 더 긴 시간 초과를 지원하지 않습니다.
PuTTY 유휴 연결에 대한 이 문제를 해결했습니다.
그것은구성 가능한 연결 유지.
그러나 아직 TOAD 소프트웨어에서 그러한 지원을 확인하지 못했습니다.
시스템 전체 구성을 조금 살펴보면서 Microsoft TechNet 세부 정보를 생각해 냈습니다.시스템 전체의 Keep-Alive 구성이는 다음과 같은 작업을 포함합니다.KeepAlive시간및 관련 레지스트리 변수.
HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\KeepAliveTime
이것은 다음과 같습니다시스템 전체 연결 유지를 사용하기 위한 Linux 시스템 전체 구성. 그러나 이를 위해서는 프로그램이 연결 유지를
사용하고 요청해야 합니다 (맞습니까?).setsockopt()
커널에 구성되어 있더라도 Keepalive 지원은 Linux의 기본 동작이 아닙니다. 프로그램은 setockopt 인터페이스를 사용하여 소켓에 대한 연결 유지 제어를 요청해야 합니다. Keepalive를 구현하는 프로그램은 상대적으로 적습니다.
질문
- 이것을 사용해도 될까요?Windows 클라이언트 시스템 또는 서버의 KeepAliveTime 기술?
(해본 사람 있나요?)- 통신의 양쪽 끝에서 이러한 TOAD 연결을 활성 상태로 유지하는 다른 방법이 있습니까?
답변1
값을 설정SQLNET.EXPIRE_TIMEsqlnet.ora에서.
여기에 무엇입니까오라클 매뉴얼이 주제에 대해 이렇게 말합니다.
목적
매개변수를 사용하여 SQLNET.EXPIRE_TIME
클라이언트/서버 연결이 활성 상태인지 확인하기 위해 프로브를 보내는 시간 간격(분)을 지정합니다. 0보다 큰 값을 설정하면 비정상적인 클라이언트 종료로 인해 연결이 무기한 열린 상태로 유지되지 않습니다. 프로브가 종료된 연결이나 더 이상 사용되지 않는 연결을 발견하면 오류를 반환하여 서버 프로세스가 종료됩니다. 이 매개변수는 주로 한 번에 여러 연결을 처리하는 데이터베이스 서버를 위한 것입니다.
이 종료된 연결 감지 기능 사용에 대한 제한 사항은 다음과 같습니다.
- 물려받은 연결에서는 허용되지 않습니다.
- 매우 작지만 프로브 패킷은 네트워크 성능을 저하시킬 수 있는 추가 트래픽을 생성합니다.
- 사용 중인 운영 체제에 따라 서버는 연결 검색 이벤트를 발생하는 다른 이벤트와 구별하기 위해 추가 처리를 수행해야 할 수도 있습니다. 이로 인해 네트워크 성능이 저하될 수도 있습니다.
기본: 0
최소값: 0
권장값: 10
예
SQLNET.EXPIRE_TIME=10
답변2
SSH 액세스 권한이 있나요? SSH 터널을 설정하고 이를 통해 SQL 통신을 보낼 수 있습니다.
TOAD: 서버(또는 tnsnames)는 localhost가 되고, 수신 포트는 12346 PuTTY와 같은 임의의 포트입니다
. 포트 전달. 소스 포트: 12346, 대상: $REMOTE_IP:1521. 로컬 포트로 남겨두세요.
연결 섹션을 통해 PuTTY에서 TCP 연결 유지를 활성화했는지 확인하세요.
답변3
Dell 사이트에서 이것을 발견하고 작동하는지 확인했습니다(Toad 11.5.0.56에서). Toad에는 네트워크가 시간 초과되지 않도록 연결 유지/간격 시간/핑 설정이 있습니까? (49507)
요약하자면 - DBMS 출력 메뉴 표시줄 왼쪽에 있는 빨간색 버튼 아이콘(녹색으로 변함)을 클릭하여 DBMS 출력 창에서 출력을 켭니다. 데이터 그리드 탭 옆의 DBMS 출력 탭에서 또는 보기 -> DBMS 출력을 통해 이에 액세스할 수 있습니다.
이렇게 하면 폴링도 자동으로 켜집니다. 내 경험상 DBMS 출력이 모두 필요합니다.그리고연결을 유지하기 위해 폴링이 활성화되었습니다.