आर्कएसडीई कनेक्शन सीमा के साथ काम करना अधिक हो गया है?


12

हम नियमित रूप से आर्कएसडीई की कनेक्शन सीमा को पार करते हैं, सप्ताह में एक बार। "कनेक्शन" में से कई SDE.PROCESS_INFORMATIONतालिका में अनाथ रिकॉर्ड के अलावा कुछ भी नहीं हैं । क्या इन कनेक्शनों को समय-समय पर साफ करने का कोई तरीका है? मैं सिर्फ 9.3.1 SP2 में आर्कएसडीई सेवा प्रदान करता हूं, उम्मीद है कि यह समस्या को हल करेगा। (यह नहीं किया।) वर्तमान में मैं arcsdeकनेक्शन को साफ करने के लिए सेवा को फिर से शुरू करता हूं , एक बहुत ही असंगत समाधान।

यह त्रुटि है, वैसे:

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

मेरा समाधान:

मेरा समाधान सरल था: एसडीई सेवा साप्ताहिक को फिर से शुरू करें, और अनुमत कनेक्शन की संख्या को दोगुना करें। यह निश्चित रूप से एक समाधान नहीं है ; शिपिंग एंटरप्राइज़ सॉफ़्टवेयर के लिए 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 तालिकाओं में प्रविष्टियाँ वास्तव में अनाथ कनेक्शन हैं?
डेरेक स्विंगले

वे सभी अनाथ नहीं हैं, निश्चित रूप से, लेकिन मुझे अपस्ट्रीम <24 घंटे के साथ कार्यस्थानों से 2-सप्ताह पुराने कनेक्शन मिले हैं।
nw1

1
एक बात जो मुझे बताई गई है: यदि अनाथ कनेक्शन मौजूद हैं, तो उन्हें साफ करने की प्रक्रिया तब तक बंद नहीं होती है जब तक कि कोई टक्कर न हो। मतलब, अगर आपको अधिकतम कनेक्शन 100 पर सेट किए गए हैं और process_info में 50 प्रविष्टियाँ हैं और मान लीजिए कि 20 अनाथ हैं, तो कनेक्शन को तब तक साफ़ नहीं किया जाएगा जब तक कि SDE उस 101 वीं प्रविष्टि को process_info में डालने का प्रयास नहीं करता। वैसे भी, आप कह रहे हैं कि वास्तव में संदेश से अधिक से अधिक कनेक्शन प्राप्त हो रहे हैं ताकि कनेक्शन को साफ करने की प्रक्रिया शुरू हो जाए। मैं जांच करूंगा कि उन वर्कस्टेशनों का उपयोग करने वाले लोग कैसे डिस्कनेक्ट कर रहे हैं।
डेरेक स्विंगले सेप

जवाबों:


8

वहाँ एक esri ज्ञान का आधार लेख है कि अनाथ कनेक्शन कैसे नियंत्रित किया जाता है के बारे में बात करता है । बेशक, जैसा कि दूसरों ने बताया है, सरल (लेकिन जरूरी नहीं कि सुरुचिपूर्ण) समाधान सिर्फ आपकी सेवा को फिर से शुरू करना है।


1

आप अपने उपयोगकर्ताओं को सीधे कनेक्ट करने और सेवा को पूरी तरह से बायपास करने पर भी विचार कर सकते हैं। इससे कुछ समस्याएँ साफ हो गई हैं जो मैं सेवाओं को लटका रहा था और इसके परिणामस्वरूप उपयोगकर्ताओं के लिए कुछ मामूली कनेक्शन की गति बढ़ गई थी।


हां, और यह मशीन पर लोड को भी कम करता है; चूँकि उपयोगकर्ता PC DAL SQL को डेटा के रूप में रखते हुए DAL को संभालता है, क्योंकि यह डेटा का अधिक प्रोग्रामेटिक समर्थन करता है।
DEWright

1

यह एक उत्तर है जो इस मुद्दे पर कल मेरे पर्यवेक्षक से एक ग्राहक को भेजा गया था।

आर्कएसडीई कनेक्शन की संख्या बढ़ाने के लिए निम्न प्रकार के सिंटैक्स का उपयोग आर्कएसडीई सर्वर पर किया जा सकता है:

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साप्ताहिक रूप से सेवा को फिर से शुरू करता है।
nw1

0

हम हमेशा बस सर्वर को समय-समय पर ऐसा करने के लिए बाउंस करते हैं ...


0

क्या आपने इस पोस्ट को ESRI फोरम पर पढ़ा है यह थोड़ा पुराना है लेकिन ऐसी स्क्रिप्ट हैं जो आप करना चाहते हैं?


मैंने T Bएक बार पोस्ट की गई स्क्रिप्ट को चलाया , लेकिन इसका कोई असर नहीं हुआ। यह लगभग 5 साल पुराना है, इसलिए मुझे संदेह है कि तब से पर्यावरण में बहुत बदलाव आया है।
nw1

मैं यह नहीं मानूंगा कि एसडीई पक्ष में बहुत कुछ बदल गया है। आपके द्वारा चलाए गए स्क्रिप्ट का लिंक मिला?
डेरेक स्विंगली

मुझे नहीं लगता कि 9.2 और 9.3.1 के बीच कोई बड़ा अंतर होना चाहिए, ईएसआरआई ने जिस तरह से जियोडैट डेटाबेस को संभाला है उसे बदल दिया है लेकिन वह आर्कगिस 10 में है। हम अपने आर्कएसडी को पुनः आरंभ कर रहे हैं क्योंकि बहुत से अन्य सुझाव दे रहे हैं, इसलिए मैं साझा नहीं कर सकता स्क्रिप्ट का उपयोग करने पर कोई अनुभव।
मैथियासवेस्टिन

GDB सामान बदल गया (GDB उपसर्गों के साथ तालिकाओं को समेकित किया गया था), लेकिन मुझे पूरा यकीन है कि अंतर्निहित SDE सामान समान है।
डेरेक स्विंगली

@ शिंगली I कुल मिलाकर आपसे सहमत हूँ।
MathiasWestin
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.