Проблема с разрывом конекта

0 голосов
спросил 28 Окт, 09 от Peps (5,330 баллов) в категории Программные продукты Esri
Всем Привет
Возникла проблема связанная с разрывом коннекта. Есть приложение в котором иногда отображается форма с MapContol, она вызывается из главной формы, суть проблемы заключается в том, что после закрытия этой формы не осуществляется разрыв конекта с базой SDE. Пользователь отрубается только после того как будет закрыто приложение. Как правильно закрывать форму с MapContolr чтоб после ее закрытия отключались конекты к sde серверу.

9 Ответы

0 голосов
ответил 03 Дек, 09 от yellow (1,120 баллов)
Если вы используете .net? то убедитесь, что вы явным образом освобождаете ресурсы ArcObgects. В неймспейсе ADF есть класс COMReleaser, с помощью которого удобно и безопасно освобождать все COM-based ресурсы.
Для корректного освобождения ресурсов при закрытии формы переопределите либо её деструктор, либо метод Dispose, либо добавьте обработчик события на закрытие этой самой формы. Освобождения требуют все сде соединения, фиче классы, таблицы, курсоры, проекты и визуальные компоненты явно объявленные в коде.
0 голосов
ответил 19 Янв, 10 от pooperec (10,820 баллов)
А если я не использую ДотНет?
Явное переопределение деструктора и освобождение COM объектов к добру не приводит...

Посоветуйте ещё что-нибудь...
0 голосов
ответил 19 Янв, 10 от Alexander1 (32,520 баллов)
А если я не использую ДотНет?...

    
А что используется? Напишите, может кто это-же самое пользует, вот и подскажет.

0 голосов
ответил 22 Янв, 10 от pooperec (10,820 баллов)
Используеться СОМ интерфейс который в зависимости от реализаций вызывает MapControl и осуществляет подключение к SDE. При уничтожении интерфейса, и освобождении его апартаментов, подключение к SDE, не теряеться (часть COM библиотек ArcEngin'a остаються в памяти). Через 10 минут библиотеки освобождабтються без дополнительных усилий.
Ошибок не возникает, память не течет.

Просто неприятно это...
0 голосов
ответил 23 Янв, 10 от Alexander1 (32,520 баллов)
Ок. Задам вопрос иначе - на каком языке пишется проложение?
0 голосов
ответил 25 Янв, 10 от pooperec (10,820 баллов)
Приложение пишеться в CodeGear Delphi 2007.
0 голосов
ответил 25 Янв, 10 от Alexander1 (32,520 баллов)
К сожалению. с Delphi ничем помочь не могу. Поместите вопрос в раздел "Программирование в ArcGIS" (C+ Borland VB и т.д.), может ктo-нибудь с опытом в Delphi отзовётся.
0 голосов
ответил 26 Янв, 10 от pooperec (10,820 баллов)
Alexander
Вы с СОМ работали? Если да, то подскажите как Вы с этим боролись на используемом Вами языке...
0 голосов
ответил 26 Янв, 10 от Alexander1 (32,520 баллов)
AlexanderВы с СОМ работали? Если да, то подскажите как Вы с этим боролись на используемом Вами языке...

    
Да, конечно. ArcObgects - это набор СОМ objects.
Я работаю в .Net (C#, VB.NET)и в подобной ситуации сделал бы то, что выше порекомдовал yellow.
Добро пожаловать на сайт Вопросов и Ответов, где вы можете задавать вопросы по GIS тематике и получать ответы от других членов сообщества.
...