ArcSDE 연결 제한 처리가 초과 되었습니까?


12

우리는 일반적으로 일주일에 한 번 ArcSDE의 연결 제한을 초과합니다. 많은 "연결"은 SDE.PROCESS_INFORMATION테이블 에서 분리 된 레코드 일뿐 입니다. 이러한 연결을 주기적으로 정리할 수있는 방법이 있습니까? 방금 ArcSDE를 9.3.1 SP2에 서비스하여 문제가 해결되기를 바랐습니다. (그렇지 않았습니다.) 현재 arcsde서비스를 다시 시작 하여 연결을 정리했습니다.

그건 그렇고 오류입니다.

Failed to connect to database. Maximum number of connections to instance exceeded

내 해결 방법 :

내 솔루션은 간단했습니다. 매주 SDE 서비스를 다시 시작하고 허용되는 연결 수를 두 배로 늘리십시오. 이것은 물론 해결책이 아닙니다 . 이러한 해결 방법이 필요한 엔터프라이즈 소프트웨어를 제공하는 경우 ESRI에 대한 수치입니다. 결국 최대 연결 수를 초과 할 수 있습니다. 현재 사용 수준이 이로 이어지지 않기를 바랄뿐입니다.

서비스를 중지 할 것인지 묻는 메시지를 사용자 init.d에게 표시하지 않도록 스크립트를 변경했습니다 sdemon(이는 -N인수가 수행하는 작업 임). restart옵션도 추가했습니다 .

#!/bin/bash
#
# arcsde Init file for starting and stopping ArcSDE 9.3
#
# chkconfig: 35 90 40
# description: ArcSDE startup script

# Source function library.

. /etc/rc.d/init.d/functions

SDE_OWNER="sde"
SDEHOME="/home/sde/sdeexe93"

case "$1" in
start)
echo -n $"Starting ArcSDE:"
su - $SDE_OWNER -c "$SDEHOME/bin/sdemon -o start -p pwd"
echo "OK"
;;
stop)
echo -n $"Stopping ArcSDE:"
su - $SDE_OWNER -c "$SDEHOME/bin/sdemon -o shutdown -p pwd -N"
echo "OK"
;;
restart)
cd "$CWD"
$0 stop
sleep 5
$0 start
;;
*)
echo $"Usage: $0 {start|stop|restart}"
esac

그런 다음 매주 한 번 서비스를 다시 시작하는 크론 작업을 만들었습니다.

# restart arcsde once weekly at 5am Saturdays
0 5 * * 6 service arcsde restart

또한 $SDEHOME/etc/giomgr.defs파일 을 편집하여 허용되는 최대 연결 수를 64에서 128로 늘 렸습니다 .

CONNECTIONS      128     # maximum number of connections
                         # NOTE:  On windows machines, you may need to
                         # increase server non-interactive desktop memory.
                         # Consult the ESRI support site for more information.

그런 다음 새 설정을 가져 왔습니다.

$ sdeconfig -o import -f $SDEHOME/etc/giomgr.defs -i esri_sde -u sde

그거였다. 어떻게 진행되는지 봅시다.


1
process_information 테이블의 항목이 실제로 고아 연결인지 확인한 방법은 무엇입니까?
Derek Swingley

물론 모두 고아가 아니지만 가동 시간이 24 시간 미만인 워크 스테이션에서 2 주 전 연결을 발견했습니다.
nw1

1
내가 한 말 : 고아 연결이 존재하는 경우, 충돌이 발생할 때까지 정리 프로세스가 시작되지 않습니다. 즉, 최대 연결 수를 100으로 설정하고 process_info에 50 개의 항목이 있고 그 중 20 개가 고아라고 가정하면 SDE가 해당 101 번째 항목을 process_info에 넣으려고 할 때까지 연결이 정리되지 않습니다. 어쨌든, 연결을 정리하는 프로세스가 시작되도록 실제로 최대 연결 수를 초과했다는 메시지가 나타납니다. 그 워크 스테이션을 사용하는 사람들이 어떻게 연결을 끊고 있는지 조사했습니다.
Derek Swingley

답변:



1

또한 사용자가 직접 서비스를 직접 연결하고 우회하도록 고려할 수도 있습니다. 이로 인해 서비스 중단과 관련된 몇 가지 문제가 해결되었으며 사용자의 연결 속도가 약간 향상되었습니다.


그렇습니다. 그러면 기계의 부하도 줄어 듭니다. 사용자 PC는 SQL을 데이터 저장소처럼 유지하면서 데이터를보다 프로그래밍 방식으로 지원하는 DAL을 처리하기 때문입니다.
DEWright

1

이것은이 문제에 대해 어제 상사로부터 고객에게 보낸 답변입니다.

ArcSDE 연결 수를 늘리기 위해 ArcSDE 서버에서 다음 유형의 구문을 사용할 수 있습니다.

sdeconfig -o alter -v CONNECTIONS=140 -u sde -p sde_password -i sde_instance

여기서 "sde_instance"는 ArcSDE 서비스 이름 또는 포트 번호입니다.

다음 명령을 사용하여이 변경이 이루어 졌는지 확인할 수 있습니다.

sdeconfig -o list -u sde -p sde_password -i sde_instance.*


예, 사실 arcsde매주 한 번 서비스 를 다시 시작하는 cron 작업을 만드는 것 외에도이 작업을 수행했습니다 .
nw1

0

우리는 항상이 작업을 수행하기 위해 서버를 정기적으로 바운스했습니다 ...


0

ESRI 포럼 에서이 게시물을 읽었습니까? 조금 오래되었지만 원하는 작업을 수행하는 스크립트가 있습니까?


T B번 게시 한 스크립트를 실행 했지만 아무런 효과가 없었습니다. 거의 5 년이 지났으므로 그 이후로 환경이 너무 많이 변한 것 같습니다.
nw1

나는 SDE 측에서 너무 많이 변했다고 가정하지 않을 것이다. 실행 한 스크립트에 대한 링크가 있습니까?
Derek Swingley

ESRI는 9.2와 9.3.1 사이에 큰 차이가 있다고 생각하지 않습니다. ESRI는 지오 데이터베이스가 처리되는 방식을 변경했지만 ArcGIS 10에서 변경되었습니다. 다른 많은 사람들이 제안한 것처럼 ArcSDE를 다시 시작하고 있으므로 공유 할 수 없습니다 스크립트 사용 경험
MathiasWestin

GDB 항목이 변경되었지만 (GDB 접두사가있는 테이블이 통합되었지만) 기본 SDE 항목이 동일하다고 확신합니다.
데릭 스윙 리

@Swingley 전적으로 동의합니다.
MathiasWestin
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.