Berurusan dengan batas koneksi ArcSDE terlampaui?


12

Kami secara rutin melebihi batas koneksi ArcSDE, sekitar seminggu sekali. Banyak "koneksi" hanyalah catatan yatim di SDE.PROCESS_INFORMATIONtabel. Apakah ada cara untuk membersihkan koneksi ini secara berkala? Saya baru saja mengemas ArcSDE ke 9.3.1 SP2, berharap ini akan menyelesaikan masalah. (Tidak.) Saat ini saya me-restart arcsdelayanan untuk membersihkan koneksi, solusi yang cukup canggung.

Ngomong-ngomong, ini kesalahannya:

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

Solusi saya:

Solusi saya sederhana: restart layanan SDE setiap minggu, dan gandakan jumlah koneksi yang diizinkan. Ini tentu saja bukan solusi ; malu pada ESRI untuk perangkat lunak perusahaan pengiriman yang membutuhkan solusi seperti itu. Bagaimanapun, masih mungkin untuk melampaui koneksi maksimum; Saya hanya bisa berharap bahwa tingkat penggunaan kami saat ini tidak mengarah ke ini.

Saya mengubah init.dskrip untuk mencegah sdemonagar pengguna tidak mengonfirmasi bahwa mereka ingin menghentikan layanan (inilah -Nargumennya). Saya menambahkan restartopsi juga.

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

Lalu saya membuat pekerjaan cron untuk memulai kembali layanan sekali seminggu:

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

Saya juga meningkatkan jumlah maksimum koneksi yang diizinkan dari 64 menjadi 128 dengan mengedit $SDEHOME/etc/giomgr.defsfile:

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.

Lalu saya mengimpor pengaturan baru:

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

Itu dia. Kita akan lihat bagaimana kelanjutannya.


1
Bagaimana Anda memverifikasi bahwa entri dalam tabel process_information memang koneksi yatim?
Derek Swingley

Mereka tidak semuanya yatim piatu, tentu saja, tetapi saya telah menemukan koneksi berusia 2 minggu dari workstation dengan waktu kerja <24 jam.
nw1

1
Satu hal yang saya ketahui: jika koneksi yatim ada, proses untuk membersihkannya tidak dimulai sampai ada tabrakan. Artinya, jika Anda memiliki koneksi maks yang diatur ke 100 dan ada 50 entri di process_info dan katakanlah 20 di antaranya adalah yatim, koneksi tidak akan dibersihkan hingga SDE mencoba memasukkan entri ke-101 itu ke dalam process_info. Ngomong-ngomong, Anda mengatakan bahwa Anda benar-benar mendapatkan koneksi maksimal melebihi pesan sehingga proses untuk membersihkan koneksi harus dipicu. Saya akan menyelidiki bagaimana orang-orang yang menggunakan stasiun kerja tersebut terputus.
Derek Swingley

Jawaban:



1

Anda juga dapat mempertimbangkan untuk membuat pengguna Anda terhubung langsung dan memotong layanan sama sekali. Ini membereskan beberapa masalah yang saya alami dengan layanan yang macet dan mengakibatkan sedikit peningkatan kecepatan koneksi bagi pengguna.


Ya, dan ini juga mengurangi beban pada mesin; karena pengguna PC menangani DAL menjaga SQL hanya sebagai datastore dibandingkan memilikinya melakukan lebih banyak dukungan data terprogram.
DEWright

1

Ini adalah jawaban yang dikirim dari penyelia saya ke klien kemarin tentang masalah ini.

Untuk meningkatkan jumlah koneksi ArcSDE, jenis sintaks berikut dapat digunakan pada server ArcSDE:

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

di mana "sde_instance" adalah nama layanan ArcSDE atau nomor port.

Anda dapat memverifikasi bahwa perubahan ini telah dibuat dengan menggunakan perintah:

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


Ya, sebenarnya saya melakukan ini selain menciptakan pekerjaan cron yang memulai kembali arcsdelayanan sekali seminggu.
nw1

0

Kami selalu memantul server secara berkala untuk melakukan ini ...


0

Sudahkah Anda membaca posting ini di ESRI Forum ini agak lama tetapi ada skrip yang melakukan apa yang ingin Anda lakukan?


Saya menjalankan skrip yang diposting oleh T Bsekali, tetapi tidak berpengaruh. Sudah hampir 5 tahun, jadi saya curiga sudah banyak yang berubah di lingkungan sejak saat itu.
nw1

Saya tidak akan menganggap terlalu banyak yang berubah di sisi SDE. Punya tautan ke skrip yang Anda jalankan?
Derek Swingley

Saya tidak berpikir harus ada perbedaan besar antara 9.2 dan 9.3.1, ESRI mengubah cara penanganan geodatabase tapi itu ada di ArcGIS 10. Kami memulai kembali ArcSDE kami seperti yang disarankan banyak orang, jadi saya tidak bisa berbagi pengalaman menggunakan skrip.
MathiasWestin

hal-hal GDB berubah (tabel dengan awalan GDB dikonsolidasikan), tapi saya cukup yakin hal-hal yang mendasari SDE adalah sama.
Derek Swingley

@ Swingley saya benar-benar setuju dengan Anda.
MathiasWestin
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.