Sun Java System Messaging Server 6.3 관리 설명서

8.7 작업 제어기

메시지가 채널의 대기열에 배치될 때마다 작업 제어기는 해당 메시지를 전달하기 위해 실행 중인 작업이 있는지 확인합니다. 여기에는 새 작업 프로세스를 시작하거나, 스레드를 추가하거나, 단순히 작업이 이미 실행 중인지 확인하는 것이 포함됩니다. 채널 또는 풀에 대한 작업 제한에 도달하여 작업을 시작할 수 없을 경우 작업 제어기는 다른 작업이 종료할 때까지 기다립니다. 작업 제한을 더 이상 초과하지 않으면 작업 제어기는 다른 작업을 시작합니다.

채널 작업은 작업 제어기 내의 처리 풀 안에서 실행됩니다. 풀은 채널 작업이 실행되는 “장소”로 생각할 수 있습니다. 풀은 작업 세트가 풀 외부의 작업과 자원을 놓고 경쟁하지 않고도 작동할 수 있는 컴퓨팅 영역을 제공합니다. 풀에 대한 자세한 내용은 10.4.8 작업 제어기 파일 12.5.4 채널 실행 작업의 처리 풀을 참조하십시오.

채널에 대한 작업 제한은 maxjobs 채널 키워드에 의해 결정되며 풀에 대한 작업 제한은 풀의 JOB_LIMIT 옵션에 의해 결정됩니다.

Messaging Server는 일반적으로 모든 메시지를 즉시 전달하려고 시도합니다. 그러나 첫 번째 시도에서 메시지를 전달할 수 없는 경우 해당 backoff 키워드에 지정된 기간 동안 메시지가 지연됩니다. backoff 키워드에 지정된 시간이 경과하자마자 지연된 메시지를 전달할 수 있으며 필요한 경우 메시지를 처리하기 위해 채널 작업이 시작됩니다.

현재 처리 중인 메시지과 처리 대기 중인 메시지에 대한 작업 제어기의 메모리 내장 데이터 구조는 일반적으로 MTA 대기열 영역의 디스크에 저장된 전체 메시지 파일 집합을 반영합니다. 그러나 디스크의 메시지 파일 백로그가 작업 제어기의 메모리 내장 데이터 구조 크기 제한을 초과하기에 충분할 만큼 작성될 경우 작업 제어기는 디스크의 전체 메시지 파일 중 일부만 메모리에서 추적합니다. 작업 제어기는 메모리에서 추적 중인 메시지만 처리합니다. 메모리 내장 저장소를 비워야 할 정도로 많은 메시지가 전달된 경우 작업 제어기는 MTA 대기열 영역을 스캔하여 메시지 목록을 업데이트함으로써 메모리 내장 저장소를 자동으로 갱신합니다. 그런 다음 작업 제어기는 디스크에서 방금 검색한 추가 메시지 파일의 처리를 시작합니다. 작업 제어기는 MTA 대기열 영역에 대한 이러한 스캔 작업을 자동으로 수행합니다.

이전에는 작업 제어기가 대기열 디렉토리에 있는 모든 파일을 발견된 순서대로 읽었습니다. 지금은 여러 채널 대기열 디렉토리를 한 번에 읽습니다. 따라서 시작, 재시작 및 max_messages의 초과 이후에 보다 효과적인 작동이 수행됩니다. 한 번에 읽을 디렉토리 수는 작업 제어기 옵션 Rebuild_Parallel_Channel로 조절합니다. 1부터 100 사이의 값으로 설정할 수 있으며 기본값은 12입니다.

사이트에서 과도한 메시지 백로그가 정기적으로 발생할 경우 MAX_MESSAGES 옵션을 사용하여 작업 제어기를 조정할 수 있습니다. 작업 제어기가 더 많은 메모리를 사용할 수 있게 MAX_MESSAGES 옵션 값을 늘리면 메시지 백로그가 작업 제어기의 메모리 내장 캐시를 오버플로하는 경우를 줄일 수 있습니다. 또한 이 경우 작업 제어기가 MTA 대기열 디렉토리를 스캔해야 할 때와 관련된 오버헤드가 줄어듭니다. 그러나 작업 제어기가 메모리 내장 캐시를 다시 작성해야 할 경우 캐시가 더 크기 때문에 프로세스에 더 많은 시간이 걸린다는 것을 유의하십시오. 또한 작업 제어기는 시작 또는 재시작될 때마다 MTA 대기열 디렉토리를 스캔해야 하므로 과도한 메시지 백로그가 있다는 것은 그렇지 않을 때보다 작업 제어기를 시작 또는 재시작할 때 많은 오버헤드가 발생한다는 것을 의미합니다.

풀과 작업 제어기 구성에 대한 자세한 내용은 10.4.8 작업 제어기 파일 12.5 메시지 처리 및 전달 구성을 참조하십시오.

8.7.1 작업 제어기 시작 및 중지

작업 제어기를 시작하려면 다음 명령을 실행합니다.

start-msg job_controller

작업 제어기를 종료하려면 다음 명령을 실행합니다.

stop-msg job_controller

작업 제어기를 다시 시작하려면 다음 명령을 실행합니다.

imsimta restart job_controller

작업 제어기를 다시 시작하면 현재 실행 중인 작업 제어기가 종료되고 새 작업 제어기가 바로 시작됩니다.