ArcSDE bağlantı sınırı ile uğraşmak aşıldı mı?


12

ArcSDE'nin bağlantı sınırını rutin olarak haftada bir kez aşıyoruz. "Bağlantıların" çoğu, SDE.PROCESS_INFORMATIONtablodaki artık kayıtlardan başka bir şey değildir . Bu bağlantıları periyodik olarak temizlemenin bir yolu var mı? Ben sadece ArcSDE 9.3.1 SP2 için paketlenmiş hizmet, bu sorunu çözmek umuduyla. (Bu olmadı.) Şu anda arcsdebağlantıları temizlemek için hizmeti yeniden başlatıyorum, oldukça yetersiz bir çözüm.

Bu arada hata budur:

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

Geçici çözümüm:

Çözümüm basitti: SDE hizmetini haftalık olarak yeniden başlatın ve izin verilen bağlantı sayısını iki katına çıkarın. Bu elbette bir çözüm değil ; böyle bir çözüm gerektiren kurumsal yazılımları göndermek için ESRI'ye utanç. Sonuçta, maksimum bağlantıları aşmak hala mümkündür; Sadece mevcut kullanım seviyemizin buna yol açmayacağını umuyorum.

Kullanıcı hizmet durdurmak istediklerini onaylamak için istemi istemek için init.dkomut dosyasını değiştirdim sdemon(bu -Nargüman ne yapar). Ben restartde bir seçenek ekledim .

#!/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

Sonra haftada bir kez hizmeti yeniden başlatmak için bir cron işi yarattım:

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

Ayrıca, $SDEHOME/etc/giomgr.defsdosyayı düzenleyerek izin verilen maksimum bağlantı sayısını 64'den 128'e çıkardım :

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.

Sonra yeni ayarları içe aktardım:

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

Öyleydi. Nasıl gittiğini göreceğiz.


1
Process_information tablolarındaki girişlerin gerçekten artık bağlantılar olduğunu nasıl doğruladınız?
Derek Swingley

Tabii ki hepsi yetim değil, ama çalışma süresi 24 saatten az olan 2 haftalık bağlantıları buldum.
nw1

1
Bana söylenen tek şey: yetimsiz bağlantılar varsa, bunları temizleme süreci bir çarpışma olana kadar başlatılmaz. Yani, 100'e ayarlanmış maksimum bağlantınız varsa ve process_info'da 50 giriş varsa ve bunların 20'si yetim kalıyorsa, SDE bu 101. girişi process_info'ya koymaya çalışana kadar bağlantılar temizlenmeyecektir. Her neyse, aslında maksimum bağlantı sayısını aştığınızı söylüyorsunuz, böylece bağlantıları temizleme işlemi tetiklenmelidir. Bu iş istasyonlarını kullanan insanların bağlantılarını nasıl kopardıklarını araştırırdım.
Derek Swingley

Yanıtlar:



1

Ayrıca, kullanıcılarınızın hizmeti doğrudan bağlayıp baypas etmesini de düşünebilirsiniz. Bu, hizmetlerin askıda kalmasıyla ilgili yaşadığım bazı sorunları ortadan kaldırdı ve kullanıcılar için bağlantı hızında hafif bir artışla sonuçlandı.


Evet, bu da makinedeki yükü azaltır; çünkü kullanıcılar PC, veriyi daha programlı bir şekilde desteklemesine karşı SQL'i bir veri deposu gibi tutan DAL'yi işler.
DEWright

1

Bu, dün bu konuda danışmanımdan bir müşteriye gönderilen bir cevaptır.

ArcSDE bağlantı sayısını artırmak için ArcSDE sunucusunda aşağıdaki sözdizimi türü kullanılabilir:

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

burada "sde_instance" ArcSDE hizmet adı veya bağlantı noktası numarasıdır.

Bu değişikliğin yapıldığını şu komutu kullanarak doğrulayabilirsiniz:

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


Evet, aslında bunu arcsdehaftada bir kez hizmeti yeniden başlatan bir cron işi yaratmanın yanı sıra yaptım .
nw1

0

Bunu yapmak için her zaman düzenli olarak sunucuyu sektirdik ...


0

ESRI Forumunda bu yayını biraz eski okudunuz mu, ancak yapmak istediğinizi yapan komut dosyaları var mı?


Bir T Bkez yayınlanan komut dosyasını çalıştırdım , ancak hiçbir etkisi olmadı. Neredeyse 5 yaşında, bu yüzden o zamandan beri çevrede çok fazla değişiklik olduğundan şüpheleniyorum.
nw1

SDE tarafında çok fazla değişiklik olduğunu varsaymazdım. Çalıştırdığınız senaryoya bir bağınız var mı?
Derek Swingley

9.2 ve 9.3.1 arasında büyük farklılıklar olması gerektiğini düşünmüyorum, ESRI coğrafi veri tabanlarının işlenme biçimini değiştirdi, ancak ArcGIS 10'da. komut dosyalarını kullanma konusunda herhangi bir deneyim.
MathiasWestin

GDB şeyler değişti (GDB önekleri olan tablolar birleştirildi), ancak temel SDE şeylerinin aynı olduğundan eminim.
Derek Swingley

@Swingley Size tamamen katılıyorum.
MathiasWestin
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.