зависает клиент при работе с Odbcconnection.

  • Автор темы Реник
  • Дата начала
Р

Реник

#1
Добрый день всем.!

Возникла следующая проблема:

На кнопку повесил код, который запускает RunOnserver агента, который должен соединяться с SQL-таблицей.

На сервере, где должен запускаться агент настроил ODBC- драйвер для коннекции к таблице. Проверил коннекцию-соединение есть.

Когда нажимаю на кнопку, то клиент польность зависает. Вот код агента :

зависает нас строке "Call con.ConnectTo( sdatasource, suserid, spasswd)"

Dim con As New ODBCConnection
Dim sdatasource As String, suserid As String, spasswd As String

Msgbox "Агент стартовал: GetBPInfo FromSQL"
Set qry = New ODBCQuery
Set result = New ODBCResultSet
Set qry.Connection = con
Set result.Query = qry
sdatasource="Datasource"
suserid="user1"
spasswd="password"
Msgbox "Коннектимся к таблице"
Call con.ConnectTo( sdatasource, suserid, spasswd)
Msgbox "Коннект есть"
If Not con.ConnectTo("BP_Info") Then
Msgbox "Не удалось подключиться к SQL-таблице"
Else
Msgbox "Подключение удалось"
End If

call con.Disconnect
 

Kizarek86

Lotus team
20.07.2007
864
4
#4
зависает нас строке "Call con.ConnectTo( sdatasource, suserid, spasswd)"
В логе лотусового сервера : "Коннект есть".
Это как? Если в логе "Коннект есть"

Call con.ConnectTo( sdatasource, suserid, spasswd)
Msgbox "Коннект есть"
If Not con.ConnectTo("BP_Info") Then <-Виснет тут
 

nvyush

Lotus team
22.04.2009
2 317
0
#5
Вполне возможно, что зависание вызвано выводом диалогового окна, которого Вы не видите и не можете на него отреагировать (запрос пароля, информация об ошибке и т.п.)
 
Р

Реник

#6
Вполне возможно, что зависание вызвано выводом диалогового окна, которого Вы не видите и не можете на него отреагировать (запрос пароля, информация об ошибке и т.п.)
тогда как мне избавиться от этого окна?
 

nvyush

Lotus team
22.04.2009
2 317
0
#9
Из справки про odbcConnection.SilentMode:
Some ODBC drivers use several layers of software to reach the data, and an intermediate layer may prompt directly for the user ID and password, ignoring the request not to do so.
Гуглоперевод:
Некоторые драйверы ODBC использования нескольких слоев программного обеспечения для достижения данных и промежуточного слоя может побудить непосредственно для ID пользователя и пароль, игнорируя просьбу не делать этого
 

lmike

нет, пердело совершенство
Lotus team
27.08.2008
6 586
272
#11
на сервере пущать ОДБЦ - этакрута :)
 
Р

Реник

#14
А агент-то отрабатывает? Что в логе в первом и втором случае?

если агент запускать по расписанию, то он отрабатывает до конца. Буквально за несколько секунд

Если агент запускать по кнопке (RunOnServer) : то последнее сообщение в логе сервера "Коннектимся к таблице".
 

nvyush

Lotus team
22.04.2009
2 317
0
#15
Да, кстати, а у агента какие параметры безопасности установлены? И есть ли нужные права у пользователя?
 

nvyush

Lotus team
22.04.2009
2 317
0
#17
агент могут запускать все пользователи
Что-то не уверен. Судя по
если агент запускать по расписанию, то он отрабатывает до конца. Буквально за несколько секунд
Если агент запускать по кнопке (RunOnServer) : то последнее сообщение в логе сервера "Коннектимся к таблице"
проблема в настройках безопасности агента и правах пользователей. Может попробовать толкать агента на сервере другим серверным агентом, подписанным сервером и от имени сервера (Run on behalf of)?
 

lmike

нет, пердело совершенство
Lotus team
27.08.2008
6 586
272
#18
не так - секурити о кот. грили выше, настройка под систем DSN, траблы по памяти (кот. могут уронить сервак), интреактивные окошки - кот. есть абсурд для сервера (а они могут выпрыгивать, вне зависимости от желаний)
 
Р

Реник

#19
победил я эту траблу сам.

У меня была реплика этой базы на другом серваке, я на нём настроил одбц и всё заработало))