매크로에서 명령 처리

MACRO 명령을 실행할 때 서버가 임의의 중첩 매크로에 포함된 명령을 포함하여 매크로 파일의 모든 명령을 순서대로 처리합니다. 서버는 가장 높은 레벨의 매크로 처리를 완료한 후 매크로의 모든 명령을 커미트합니다.

중첩된 매크로 또는 매크로의 명령에서 오류가 발생하는 경우 서버는 처리를 중지하고 이전의 모든 명령으로 발생된 변경사항을 롤백합니다.

DSMADMC 명령을 입력할 때 ITEMCOMMIT 옵션을 지정하면 서버는 각 명령에 대한 처리를 완료한 후 스크립트 또는 매크로에서 개별적으로 각 명령을 커미트합니다. 오류가 발생하는 경우 서버는 처리를 계속하고 실패한 명령으로 유발된 변경사항만을 롤백합니다.

COMMIT 명령으로 명령이 적용되면 정확한 제어가 가능합니다. 서버가 매크로의 명령을 처리하는 중 오류가 발생하는 경우에는 서버가 매크로의 처리를 중지하고 언커미트된 변경사항을 롤백합니다. 언커미트된 변경사항은 마지막 COMMIT 이후에 처리된 명령입니다. COMMIT 명령으로 명령 처리를 제어하려면 ITEMCOMMIT 옵션을 사용하여 관리 클라이언트 세션이 실행 중이 아닌지 확인하십시오.

ROLLBACK 명령을 사용하여 매크로를 구현하기 전에 테스트할 수 있습니다. 매크로에서 발행하려는 명령(COMMIT 명령 제외)을 입력할 수 있고, 최종 명령으로서 ROLLBACK을 입력할 수 있습니다. 그러면 매크로를 실행해서 모든 명령이 정상적으로 처리되는지 확인할 수 있습니다. 명령으로 발생된 데이터베이스 변경사항은 ROLLBACK 명령으로 롤백됩니다. ROLLBACK 명령을 제거한 후 매크로를 실제로 사용 가능하도록 하십시오. 또한 ROLLBACK 명령으로 명령 처리를 제어하려는 경우에는 ITEMCOMMIT 옵션으로 관리 클라이언트 세션이 실행되고 있지 않은지 확인하십시오.

팁: 백그라운드 프로세스를 시작하는 명령은 롤백할 수 없습니다.
명령행을 통해 정상적으로 처리되지만 매크로 내에서 실행하면 실패하는 일련의 명령이 있는 경우 명령 간에 종속 관계가 있는 것일 수 있습니다. 동일한 매크로 내에서 실행된 이전 명령이 커미트될 때까지는 매크로 내에서 실행된 명령이 정상적으로 처리되지 않을 수 있습니다. 다음 두 조치 중 하나를 사용하여 매크로 내에서 명령을 정상적으로 처리하십시오.
  • 이전 명령에 종속되는 명령 앞에 COMMIT 명령을 추가하십시오. 예를 들어, COMMAND C가 COMMAND B에 종속되는 경우, COMMAND C 앞에 COMMIT 명령을 삽입하십시오.
        command a
        command b
        commit
        command c/
  • ITEMCOMMIT 옵션을 사용하여 관리 클라이언트 세션을 시작하십시오. 이 옵션을 사용하면 다음 명령이 처리되기 전에 매크로 내의 각 명령이 커미트됩니다.