Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 как определить, что job завершился?  [new]
helensql
Member

Откуда:
Сообщений: 55
Job1 заносит новые данные в таблицу TableА каждые 10 минут.
Job2 использует данные из TableА и запускается 1 раз в день.

Как определить, что Job1 завершен, чтобы начать Job2?
11 ноя 09, 16:05    [7915210]     Ответить | Цитировать Сообщить модератору
 Re: как определить, что job завершился?  [new]
Glory
Member

Откуда:
Сообщений: 104760
helensql
Job1 заносит новые данные в таблицу TableА каждые 10 минут.
Job2 использует данные из TableА и запускается 1 раз в день.

Как определить, что Job1 завершен, чтобы начать Job2?

Поставить последним шагом Job1 запуск Job2
11 ноя 09, 16:06    [7915213]     Ответить | Цитировать Сообщить модератору
 Re: как определить, что job завершился?  [new]
helensql
Member

Откуда:
Сообщений: 55
Как быть тогда со временем? Job1 каждые 10 мин. А Job2 1 раз в день.
11 ноя 09, 16:08    [7915229]     Ответить | Цитировать Сообщить модератору
 Re: как определить, что job завершился?  [new]
Glory
Member

Откуда:
Сообщений: 104760
helensql
Как быть тогда со временем? Job1 каждые 10 мин. А Job2 1 раз в день.

А зачем тогда вообще привязывать эти джобы друг к другу ?
11 ноя 09, 16:10    [7915236]     Ответить | Цитировать Сообщить модератору
 Re: как определить, что job завершился?  [new]
helensql
Member

Откуда:
Сообщений: 55
Job1 создан давно и не мной там еще куча разных шагов. Job2 создан для процессинга куба.
11 ноя 09, 16:14    [7915265]     Ответить | Цитировать Сообщить модератору
 Re: как определить, что job завершился?  [new]
helensql
Member

Откуда:
Сообщений: 55
А куб используете TableA.
11 ноя 09, 16:14    [7915270]     Ответить | Цитировать Сообщить модератору
 Re: как определить, что job завершился?  [new]
Glory
Member

Откуда:
Сообщений: 104760
helensql
Job1 создан давно и не мной там еще куча разных шагов. Job2 создан для процессинга куба.

Это ответ на вопрос "зачем" ?
11 ноя 09, 16:15    [7915275]     Ответить | Цитировать Сообщить модератору
 Re: как определить, что job завершился?  [new]
helensql
Member

Откуда:
Сообщений: 55
Исторически так сложилось. Еслиб не было бы проблем объеденить в один job, не писала бы сюда. )
11 ноя 09, 16:16    [7915291]     Ответить | Цитировать Сообщить модератору
 Re: как определить, что job завершился?  [new]
Glory
Member

Откуда:
Сообщений: 104760
helensql
Исторически так сложилось. Еслиб не было бы проблем объеденить в один job, не писала бы сюда. )

А кто-то предлагал "объеденить в один job" ?
11 ноя 09, 16:17    [7915300]     Ответить | Цитировать Сообщить модератору
 Re: как определить, что job завершился?  [new]
helensql
Member

Откуда:
Сообщений: 55
Да.) Поэтому ищу другие пути решения.
11 ноя 09, 16:21    [7915338]     Ответить | Цитировать Сообщить модератору
 Re: как определить, что job завершился?  [new]
Glory
Member

Откуда:
Сообщений: 104760
helensql
Да.) Поэтому ищу другие пути решения.

Да что вы говорите ? И кто же это был ?
Самое простое решение - не привязывать никак выполнение одного джоба к запуску другого
11 ноя 09, 16:23    [7915357]     Ответить | Цитировать Сообщить модератору
 Re: как определить, что job завершился?  [new]
helensql
Member

Откуда:
Сообщений: 55
Спасибо за подсказку.
11 ноя 09, 16:27    [7915389]     Ответить | Цитировать Сообщить модератору
 Re: как определить, что job завершился?  [new]
helensql
Member

Откуда:
Сообщений: 55
Простых путей не ищем. (
11 ноя 09, 16:28    [7915397]     Ответить | Цитировать Сообщить модератору
 Re: как определить, что job завершился?  [new]
LenaV
Member

Откуда: USA
Сообщений: 6748
смотрите по системным таблицам в msdb
msdb.dbo.sysjobs - список всех jobs
msdb.dbo.sysjobactivity - еслу job выполняется в данный момент,
то в колонке start_execution_date будет стоять дата, а stop_execution_date будет NULL.
это для 2005
11 ноя 09, 21:21    [7916927]     Ответить | Цитировать Сообщить модератору
 Re: как определить, что job завершился?  [new]
helensql
Member

Откуда:
Сообщений: 55
или в таблице msdb.dbo.sp_help_jobactivity колнка run_status 1 или NULL.

Спасибо!!
12 ноя 09, 12:28    [7919400]     Ответить | Цитировать Сообщить модератору
 Re: как определить, что job завершился?  [new]
AklexK
Member

Откуда: Москва
Сообщений: 37
helensql,

Воспользоваться например sp_getapplock, что-то типа

Job 1 устанавливает блокировку
EXEC @result = sp_getapplock @Resource = 'TableA',  @LockMode = 'Exclusive'
IF @result = '-3'  return
....   

Job 2 устанавливает блокировку
EXEC @result = sp_getapplock @Resource = 'TableA',  @LockMode = 'Exclusive'
IF @result = '-3'  return
....

не забыть после выполнения
@result = sp_releaseapplock @Resource = 'TableA'
1 дек 09, 12:09    [8001306]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить