Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Помогите ASP + SQLDMO ! / 8 сообщений из 8, страница 1 из 1
22.10.2002, 13:44:54
    #32060702
WWW
WWW
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите ASP + SQLDMO !
Для определения статуса завершения DTS пакета из ASP
работает следующий код:

<%@ LANGUAGE=VBScript %>
<%
Set S=Server.CreateObject("SQLDMO.SQLServer")
S.Disconnect
S.LoginTimeout = 15
S.LoginSecure = True
ServerName="ZEIMFS"
S.Connect ServerName
Set J = S.JobServer.Jobs("SVG0002")
Set R = J.EnumHistory()
.......
Set R=Nothing
Set J=Nothing
S.Close
Set S=Nothing
%>

Все замечательно.Но!После каждого запуска такого скрипта на SQL сервере остается процесс !!! Вскоре сервак ложится напрочь.... В чем тут дело ?
...
Рейтинг: 0 / 0
22.10.2002, 14:13:12
    #32060726
jimmers
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите ASP + SQLDMO !
Видимо, S.Disconnect надо переместить из начала скрипта в конец. А именно, после Set J=Nothing но перед S.Close
...
Рейтинг: 0 / 0
22.10.2002, 14:40:20
    #32060752
WWW
WWW
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите ASP + SQLDMO !
Не помогает : каждый раз появляется процесса вида:
exec msdb..sp_help_jobhistory @job_id = 0xD3F3C977256BBC43BB0EC00B0A7E05B0, @mode = N'full'
...
Рейтинг: 0 / 0
23.10.2002, 02:17:19
    #32061000
jimmers
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите ASP + SQLDMO !
Доброй ночи

Провел небольшое расследование. Сначала я создал VBS сценарий:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
Option Explicit

Dim S, J, R

Set S = CreateObject( "SQLDMO.SQLServer" ) 
S.LoginTimeout =  15  
S.LoginSecure = True 
S.Connect  "localhost" 
Set J = S.JobServer.Jobs( "SVG0002" ) 
Set R = J.EnumHistory() 

Set R=Nothing 
Set J=Nothing 
S.Disconnect
S.Close 
Set S=Nothing 


Данный код отрабатывает без негативных последствий - число процессов в SQL Server'е не увеличивается.
Далее перенес этот код в ASP:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
<%
Option Explicit

Dim S, J, R

Set S = Server.CreateObject( "SQLDMO.SQLServer" ) 
S.LoginTimeout =  15  
S.LoginSecure = True 
S.Connect  "localhost" 
Set J = S.JobServer.Jobs( "SVG0002" ) 
Set R = J.EnumHistory() 

Set R=Nothing 
Set J=Nothing 
S.Disconnect
S.Close 
Set S=Nothing 
%>


Появились проблемы - все как Вы и описываете, остаются процессы, последняя команда в которых вида:

exec msdb..sp_help_jobhistory @job_id = 0x2B682A24AF8C014C965CC52CEA7182A0, @mode = N'full'


Следующим щагом стала попытка с ASP.NET, где итог тоже неутешителен.
Далее в ASP.NET я добавил On Error Resume Next и все заработало... В ASP этот трюк не сработал.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
<%@ Page aspcompat=true %>
<%
Dim S, J, R

On Error Resume Next

S = Server.CreateObject( "SQLDMO.SQLServer" ) 
'S.LoginTimeout =  15  
S.LoginSecure = True 
S.Connect( "localhost" )

J = S.JobServer.Jobs( "SVG00021" ) 
R = J.EnumHistory() 

R=Nothing 
J=Nothing 
S.Disconnect
S.Close
S=Nothing 
%>


В общем, тут какие-то нюансы ASP, надо полагать что-то вроде Threading Model, но я не уверен.
Может Вам все это чем-то поможет.


Удачи
...
Рейтинг: 0 / 0
23.10.2002, 10:04:09
    #32061044
ziktuw
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите ASP + SQLDMO !
Исследования jimmers наталкивают на мысль, что в ASP надо попытаться создать объект не через Server.CreateObject, а через просто CreateObject
...
Рейтинг: 0 / 0
23.10.2002, 11:04:10
    #32061076
jimmers
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите ASP + SQLDMO !
Приветствую

2Dankov

Пробовал... Безрезультатно. Кстати, не подскажете, в чем различие Server.CreateObject & CreateObject?

Удачи
...
Рейтинг: 0 / 0
23.10.2002, 11:16:01
    #32061086
WWW
WWW
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите ASP + SQLDMO !
Огромное всем спасибо за внимание к моей проблеме.
Оказывается что после добавления в конец скрипта
обращения к методу Disconnect процессы так-же остаются , но уже не навсегда ! Через некоторый промежуток времени они сами и исчезают.Так что все вроде-бы разрешилось .Таким образом :

....

S.Disconnect
Set S=Nothing
...
Рейтинг: 0 / 0
23.10.2002, 13:32:36
    #32061178
ziktuw
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите ASP + SQLDMO !
Кстати, не подскажете, в чем различие Server.CreateObject & CreateObject?

Разница не сильно велика, но есть.
Если Server.CreateObject, то приложение (а не script-engine) знает о существовании объекта и может им управлять. Объект помещается в коллекцию используемых объектов внутри объекта Server, объект может учавствовать в транзакциях (через MTS) c другими объектами приложения. Также приложение может организовать пул этого объекта, что приводит к ускорению его повторного использования. Если CreateObject, то об объекте знает только script-engine и о взаимодействии с другими объектами приложения речи быть не может. Кроме того, разные источники утверждают, что при Server.CreateObject работа с объектом становиться несколько быстрее, чем при CreateObject. Но проверить это утверждение весьма непросто.
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Помогите ASP + SQLDMO ! / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]