เกินขีด จำกัด การเชื่อมต่อ 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

จากนั้นฉันสร้างงาน cron เพื่อเริ่มบริการสัปดาห์ละครั้ง:

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

ฉันยังเพิ่มจำนวนสูงสุดของการเชื่อมต่อที่อนุญาตจาก 64 เป็น 128 โดยการแก้ไข$SDEHOME/etc/giomgr.defsไฟล์:

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

แน่นอนว่าพวกเขาไม่ใช่เด็กกำพร้าทุกคน แต่ฉันพบการเชื่อมต่อ 2 สัปดาห์จากเวิร์กสเตชันที่มีเวลาทำงาน <24 ชั่วโมง
nw1

1
มีสิ่งหนึ่งที่ฉันได้รับแจ้งว่า: หากมีการเชื่อมต่อที่ไม่ได้ใช้งานกระบวนการทำความสะอาดจะไม่ถูกปิดจนกว่าจะมีการชนกัน หมายความว่าหากคุณมีการเชื่อมต่อสูงสุดที่ตั้งไว้ที่ 100 และมี 50 รายการใน process_info และสมมุติว่า 20 รายการนั้นเป็นเด็กกำพร้าการเชื่อมต่อจะไม่ถูกล้างจนกว่า SDE จะพยายามใส่ 101 รายการใน process_info อย่างไรก็ตามคุณกำลังบอกว่าคุณได้รับการเชื่อมต่อสูงสุดเกินข้อความดังนั้นกระบวนการในการล้างข้อมูลการเชื่อมต่อควรได้รับการทริกเกอร์ ฉันจะตรวจสอบว่าผู้ใช้เวิร์กสเตชันเหล่านี้ตัดการเชื่อมต่ออย่างไร
Derek Swingley

คำตอบ:


8

มีความเป็นบทความฐานความรู้ ESRI ที่พูดคุยเกี่ยวกับการเชื่อมต่อวิธีกำพร้าที่ควรจะได้รับการจัดการ แน่นอนว่าคนอื่น ๆ ได้ชี้ให้เห็นวิธีแก้ปัญหาที่เรียบง่าย (แต่ไม่จำเป็นต้องหรูหรา) คือเพียงแค่เริ่มบริการของคุณใหม่


1

คุณอาจพิจารณาให้ผู้ใช้เชื่อมต่อโดยตรงและเลี่ยงการให้บริการโดยสิ้นเชิง ทำให้ปัญหาบางอย่างที่ฉันมีกับบริการหยุดทำงานและทำให้ความเร็วในการเชื่อมต่อเพิ่มขึ้นเล็กน้อยสำหรับผู้ใช้


ใช่และสิ่งนี้จะช่วยลดภาระของเครื่อง เนื่องจากพีซีของผู้ใช้จัดการ DAL ที่เก็บ SQL ไว้เช่นเดียวกับที่เก็บข้อมูลเมื่อเปรียบเทียบกับการให้ข้อมูลสนับสนุนทางโปรแกรมเพิ่มเติม
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.*


ใช่ในความเป็นจริงฉันทำสิ่งนี้นอกเหนือจากการสร้างงาน cron ที่เริ่มarcsdeบริการสัปดาห์ละครั้ง
nw1

0

เรามักจะเด้งเซิร์ฟเวอร์เป็นระยะเพื่อทำสิ่งนี้ ...


0

คุณอ่านโพสต์นี้ในฟอรัม ESRIมันค่อนข้างเก่า แต่มีสคริปต์ที่ทำในสิ่งที่คุณต้องการทำหรือไม่?


ฉันเรียกใช้สคริปต์ที่โพสต์T Bครั้งเดียว แต่ไม่มีผลใด ๆ มันเกือบ 5 ปีแล้วดังนั้นฉันสงสัยว่ามีการเปลี่ยนแปลงมากเกินไปในสภาพแวดล้อมตั้งแต่นั้นมา
nw1

ฉันไม่คิดว่าจะมีการเปลี่ยนแปลงทางด้าน SDE มากเกินไป มีลิงก์ไปยังสคริปต์ที่คุณใช้หรือไม่
Derek Swingley

ฉันไม่คิดว่าควรมีความแตกต่างใหญ่ ๆ ระหว่าง 9.2 และ 9.3.1, ESRI เปลี่ยนวิธีจัดการฐานข้อมูลทางภูมิศาสตร์ แต่อยู่ใน ArcGIS 10 เราเริ่มต้น ArcSDE ของเราใหม่เนื่องจากมีคนแนะนำจำนวนมากดังนั้นฉันจึงไม่สามารถแบ่งปันได้ ประสบการณ์ใด ๆ เกี่ยวกับการใช้สคริปต์
MathiasWestin

สิ่งที่ GDB เปลี่ยนไป (ตารางที่มีส่วนนำหน้าของ GDB รวมอยู่ด้วย) แต่ฉันค่อนข้างแน่ใจว่าข้อมูล SDE พื้นฐานนั้นเหมือนกัน
Derek Swingley

@Swingley ฉันเห็นด้วยกับคุณอย่างเต็มที่
MathiasWestin
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.