'SM37'에 해당되는 글 1건

  1. 2008.11.25 스케쥴된 Background job 일시 중지시키기 4
2008. 11. 25. 11:38

스케쥴된 Background job 일시 중지시키기

반응형
SAP에서는 SM37, SM36등을 통해 특정 작업을 스케쥴하여 background로 실행을 시킬 수 있습니다.
이런 작업들을 필요시 잠시 실행되지 않고 연기시킬 수 있는 방법은 어떤것들이 있을까요?

1. SM37에서 status가 release로 되어 있는 작업을 schedule로 변경.
 - 이럴 경우 다시 job이 실행될 수 있도록 release로 바꿀때 일일이 시간설정을 다시 해 줘야 합니다. job이 10개 이상만 되어도 상당히 귀찮고 힘든일입니다.

2. Job을 실행하는 user계정을 lock 시킨다.
 - Background job을 설정할때 그 job을 실행할 user를 지정할 수 있습니다. 이렇게 모든 job들이 공통된 특정 user로 실행되도록 관리를 하고 있다면 고려해 볼 만합니다. user가 lock이 걸려 있으면 해당 job은 정해진 시간에 실행은 되지만 모두 cancel상태로 끝나고 맙니다. 물론 반복되는 작업은 다음 시간에 실행이 되도록 다시 스케쥴됩니다.

3. Report "BTCTRNS1"을 실행한다.
 - "BTCTRNS1"은 현재 설정되어 있는 Background job의 status를 'suspend'로 바꾼다. 이렇게 바뀐 job은 report "BTCTRNS2"를 실행시켜 다시 원상태로 바뀔때까지 실행되지 않습니다.
여기서 주의할 점 두가지가 있습니다.
* BTCTRNS1을 실행시킨 이후에 설정한 job은 정상적으로 실행 된다.
* BTCTRNS2를 실행시킬 경우 그 시간 이전에 실행되어야 했던 job들이 모두 일시에 실행되어진다.
이 report들은 SAP 시스템의 upgrade시 설정되어 있는 작업들을 중단시키는데 사용되어지는 것들입니다.

4. Batch job process를 0으로 만든다.
- Batch job process가 0으로 되어 있을 경우 실행되어야 할 job들이 모두 cancel됩니다. Batch job process를 0으로 바꾸는 방법은 profile을 조정하거나 operation mode를 조정하면 됩니다. operation mode를 조정하는 것은 서비스의 재시작이 불필요합니다. (operation mode에서 0으로 바꿀 수 있는지는 다시 확인해 봐야겠습니다. Dialog process는 2개 이하로 설정이 불가능합니다)

그러면 특정한 작업을 위해 batch job을 중단시켰다가 다시 실행되게 할때 이미 실행 시간이 지난 것들은 실행되지 않게 하려면 어떻게 할 수 있을까요?
위의 2, 3, 4번을 섞어서 적절히 사용하면 됩니다.
먼저 BTCTRNS1을 실행하여 batch job이 실행되지 않도록 하고, 2번 방법으로 user를 lock을 건 후 BTCTRNS2를 실행하여 실행시간이 지난 job은 모두 cancel시킵니다. cancel된 것을 확인 한 후 user lock을 해제하면 그 시간 부터 정상적으로 batch job들이 실행됩다.
만약 2번이 힘들다면 4번을 사용합니다. profile을 수정시에는 서비스를 재시작 해야 합니다.
반응형