2011-11-30 1 views
1

파일을 temp로 복사하고 데이터를 조작 한 다음 다시 복사하는 프로그램이 있다고 가정합니다. 이제는 두 번 배치에서 실행되도록 제출하면 같은 시간에 동일한 파일 트릭을 수행 할 가능성이있는 일괄 작업이 두 개 있습니다. 파일이 같은 라이브러리에 있기 때문에 다른 하나의 데이터를 왜곡하는 것과 같이 다른 하나에 문제가 생길 수 있습니까? 무슨 일이 일어날 것입니까? 객체 잠금은 여기에 문제가되지 않는다고합시다.배치 작업은 AS400에서 동일한 QTEMP 라이브러리를 공유합니까?

답변

5

QTEMP은 시스템의 개별 작업마다 고유하며 작업이 끝나면 작업 QTEMP에서 생성 된 모든 개체가 제거됩니다.

따라서 예제에서 각 일괄 작업은 고유 한 QTEMP 라이브러리를 가지며 다른 작업을 방해하지 않습니다.

+0

정말 멋지다! 그러면 한 직업이 다른 직업의 엉덩이를 걷어차는 것에 대해 걱정할 필요가 없습니다. 고마워. –

+0

@God_of_Thunder - 음, 카드 소지자의 지출 한도를 500 달러 늘리는 것과 같은 일을하지 않는 한. _both_ 작업을 통해 데이터를 안전하게 처리 할 수 ​​있는지 확인하고 올바른 결과를 얻으십시오. –

+0

@God_of_Thunder - 당신은 QTEMP에서 충돌하지 않을 것입니다, 그러나 당신이 설명한 시나리오에서 + – WarrenT

4

다음 상황에서는 왜곡 된 데이터에 항상 문제가있을 것이라고 생각합니다. 작업 1은 생년월일을 업데이트합니다.

1) 생산 : 작업이이 시점에서 우편 번호

Job 1 cpyf prod/x qtemp/x 
Job 2 cpyf prod/x qtemp/x 
Job 1 call updbirth 
Job 2 call updpostal 

를 업데이트 파일 X의 세 개의 사본이있다. 우편 번호 나 생년월일은 업데이트되지 않았지만 다른 직업은 이름과 주소가 업데이트되었을 수 있습니다. 이 복사본에 대한 업데이트는 작업 1 또는 작업 2의 파일 복사본 X에 반영되지 않습니다.

2) 작업 1이 복사본에는 생년월일이 업데이트되었지만 작업 1이 시작된 이래로 우편 번호 또는 생산 과정에서 변경된 사항은 업데이트되지 않았습니다.

3) 작업 2이 사본에는 우편 번호가 업데이트되었지만 작업 2가 시작된 이래로 생년월일이나 생산에서 변경된 사항은 업데이트되지 않았습니다.

어떤 파일이 프로덕션으로 다시 복사 되더라도 프로덕션에서 변경 한 모든 내용은 손실됩니다. 그런 다음 다른 작업 파일을 다시 프로덕션으로 복사하면 이 모두 변경 사항도 손실됩니다. 최종 프로덕션 파일에는 최종 배치 프로그램이 작성한 변경 사항 만 포함되어 작업 파일을 업데이트합니다.