Потеря связи с SDE

0 голосов
спросил 06 Фев, 09 от Peps (5,330 баллов) в категории Программные продукты Esri
Есть приложение на С# которое работает с картой, слои находятся в SDE на удаленном сервере. Канал связи очень хреновый и часто рвутся конекты. В приложении используется стандартный mapcontrol, с него и вычитываются все слои, с низ берутся  виче классы ну и т.д. Проблема состоит в том, что если произошел разрыв связи то слои после поднятия физического канала не переподключаются. Каким образом можно реализовать проверку живости коннекта и соостветсвенно если sde свалился то автоматом к нему подключится.   

2 Ответы

0 голосов
ответил 27 Фев, 09 от Dido_kz1 (11,020 баллов)
думаю состояние сервера можно так проверять,на счетчика повесить:
Dim pPropset As IPropertySet
    Set pPropset = New PropertySet
    With pPropset
    .SetProperty "Server", "ServerName"
    .SetProperty "Instance", "5151"
    .SetProperty "user", "username"
    .SetProperty "password", "****"
    .SetProperty "Database", "DBName"
    .SetProperty "version", "SDE.DEFAULT"
    End With
    Dim pFactSDE As IWorkspaceFactory
    Set pFactSDE = New SdeWorkspaceFactory
    On Error GoTo ConnErr
    Dim pWorkSpaceSDE As IWorkspace
    Set pWorkSpaceSDE = pFactSDE.Open(pPropset, Application.hWnd)

ConnErr:
    MsgBox Err.Description, vbCritical

0 голосов
ответил 27 Фев, 09 от Alexander1 (32,520 баллов)
В данном случае следует использовать IWorkspaceFactoryStatus Interface:

http://resources.esri.com/help/9.3/ArcGISDesktop/ArcObjects/esriGeoDatabase/IWorkspaceFactoryStatus.htm

Пример IWorkspaceFactoryStatus Example:

http://resources.esri.com/help/9.3/ArcGISDesktop/ArcObjects/esriGeoDatabase/IWorkspaceFactoryStatus_Example.htm
Добро пожаловать на сайт Вопросов и Ответов, где вы можете задавать вопросы по GIS тематике и получать ответы от других членов сообщества.
...