Use transactions в свойствах DTS Package
От: alexm1202 Россия  
Дата: 05.11.03 09:34
Оценка:
Добрый день.

Надеюсь, найдутся люди, имеющие опыт работы с DTS в MS SQL 2000, которые подскажут ответ на вопрос. Имеется DTS пакет, запускающий хранимую процедуру на удаленном сервере. Процедура довольно сложная, имеет в своем тексте два BEGIN TRANSACTION и соответственно два COMMIT. Меня смущает галочка "Use transactions" в свойствах DTS пакета, не могу понять как она будет работать в случае, если внутри процедуры, вызываемой в пакете, явно прописаны начало и конец транзакции. Грубо говоря, если я оставлю эту галку включенной, DTS начнет транзакцию перед выполнением пакета, и мои транзакции в процедуре окажутся вложенными (что, насколько я понимаю, не очень хорошо), так? Как лучше поступить, оставить галку или снять?
... << RSDN@Home 1.1 beta 2 >>
BR, Alex.
Re: Use transactions в свойствах DTS Package
От: KGP http://kornilow.newmail.ru
Дата: 05.11.03 11:08
Оценка:
Здравствуйте, alexm1202, Вы писали:

A>Добрый день.

A>Надеюсь, найдутся люди, имеющие опыт работы с DTS в MS SQL 2000, которые подскажут ответ на вопрос. Имеется DTS пакет, запускающий хранимую процедуру на удаленном сервере. Процедура довольно сложная, имеет в своем тексте два BEGIN TRANSACTION и соответственно два COMMIT. Меня смущает галочка "Use transactions" в свойствах DTS пакета, не могу понять как она будет работать в случае, если внутри процедуры, вызываемой в пакете, явно прописаны начало и конец транзакции. Грубо говоря, если я оставлю эту галку включенной, DTS начнет транзакцию перед выполнением пакета, и мои транзакции в процедуре окажутся вложенными (что, насколько я понимаю, не очень хорошо), так? Как лучше поступить, оставить галку или снять?
Лучше или правильнее ?
в том то и дело — есть в DTS пакете транзактивные действия, которые ты бы хотел увязать с той транзакцией или нет ?
Если есть, то необходима галочка иначе нет.
... << RSDN@Home 1.1 beta 2 >>
Re: Use transactions в свойствах DTS Package
От: terma  
Дата: 05.11.03 11:34
Оценка:
Здравствуйте, alexm1202, Вы писали:

Лучше нажать справку и увидеть:

Use transactions

Allow the definition and use of transactional units of work in the package.
Re[2]: Use transactions в свойствах DTS Package
От: alexm1202 Россия  
Дата: 05.11.03 12:29
Оценка:
Здравствуйте, terma, Вы писали:

T>Лучше нажать справку и увидеть:

T>Use transactions
T>Allow the definition and use of transactional units of work in the package.

Я это читал, конечно. Меня интересовало, будут ли в моем случае побочные эффекты — когда в пакете всего один юнит, этот юнит — вызов SP, в которой такой код:

BEGIN TRANSACTION
...
COMMIT
...
BEGIN TRANSACTION
...
COMMIT


Попробовал со снятой галкой, вроде работает как надо.
... << RSDN@Home 1.1 beta 2 >>
BR, Alex.
Re[2]: Use transactions в свойствах DTS Package
От: alexm1202 Россия  
Дата: 05.11.03 12:29
Оценка:
Здравствуйте, KGP, Вы писали:

KGP>в том то и дело — есть в DTS пакете транзактивные действия, которые ты бы хотел увязать с той транзакцией или нет ?


Извини, с какой "той" транзакцией?
... << RSDN@Home 1.1 beta 2 >>
BR, Alex.
Re[3]: Use transactions в свойствах DTS Package
От: KGP http://kornilow.newmail.ru
Дата: 06.11.03 06:21
Оценка:
Здравствуйте, alexm1202, Вы писали:

A>Извини, с какой "той" транзакцией?

'хранимую процедуру на удаленном сервере. Процедура довольно сложная, имеет в своем тексте два BEGIN TRANSACTION и соответственно два COMMIT'

с транзакциями хранимой процедуры ...

TRANSACTION_DTS
...
BEGIN TRANSACTION_SQL1
COMMIT TRANSACTION_SQL1
BEGIN TRANSACTION_SQL2
COMMIT TRANSACTION_SQL2
...
COMMIT TRANSACTION_DTS

Вот сделай без галочки так, чтоб первая твоя нормально завершилась а вторая нет
BEGIN TRANSACTION_SQL1
COMMIT TRANSACTION_SQL1

BEGIN TRANSACTION_SQL2
ROLLBACK TRANSACTION_SQL2
и потом с галочкой, — отменит галочка первый COMMIT ?
... << RSDN@Home 1.1 beta 2 >>
Re[4]: Use transactions в свойствах DTS Package
От: alexm1202 Россия  
Дата: 06.11.03 06:30
Оценка:
Здравствуйте, KGP, Вы писали:

KGP>Вот сделай без галочки так, чтоб первая твоя нормально завершилась а вторая нет

KGP>BEGIN TRANSACTION_SQL1
KGP>COMMIT TRANSACTION_SQL1

KGP>BEGIN TRANSACTION_SQL2

KGP>ROLLBACK TRANSACTION_SQL2
KGP>и потом с галочкой, — отменит галочка первый COMMIT ?

Честно говоря, проверять сейчас нет времени, но я думаю, что если галочка "Use transactions" будет стоять и во время выполнения пакета произойдет сбой, вне зависимости где — в первом блоке или во втором, то будут откачены все изменения — и сделаные в первом блоке и во втором. Я прав?
... << RSDN@Home 1.1 beta 2 >>
BR, Alex.
Re[5]: Use transactions в свойствах DTS Package
От: KGP http://kornilow.newmail.ru
Дата: 06.11.03 06:37
Оценка:
Здравствуйте, alexm1202, Вы писали:

A>Здравствуйте, KGP, Вы писали:


KGP>>Вот сделай без галочки так, чтоб первая твоя нормально завершилась а вторая нет

KGP>>BEGIN TRANSACTION_SQL1
KGP>>COMMIT TRANSACTION_SQL1

KGP>>BEGIN TRANSACTION_SQL2

KGP>>ROLLBACK TRANSACTION_SQL2
KGP>>и потом с галочкой, — отменит галочка первый COMMIT ?

A>Честно говоря, проверять сейчас нет времени, но я думаю, что если галочка "Use transactions" будет стоять и во время выполнения пакета произойдет сбой, вне зависимости где — в первом блоке или во втором, то будут откачены все изменения — и сделаные в первом блоке и во втором. Я прав?


сам не проверял, но другого смысла я не наблюдаю, а по сути хез
... << RSDN@Home 1.1 beta 2 >>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.