Job Controller는 메일 전달을 위해 채널 작업을 작성 및 관리합니다이러한 채널 작업은 Job Controller 내의 처리 풀 안에서 실행됩니다. 풀은 채널 작업이 실행되는 “장소”로 생각할 수 있습니다. 풀은 작업 세트가 풀 외부의 작업과 자원을 놓고 경쟁하지 않고도 작동할 수 있는 컴퓨팅 영역을 제공합니다. (Job Controller의 개념과 채널 키워드 구성에 대한 자세한 내용은 Job Controller, 채널 실행 작업의 처리 풀 및 서비스 작업 제한을 참조하십시오.
Job Controller 파일 job_controller.cnf는 다음 채널 처리 정보를 지정합니다.
다양한 풀을 정의합니다.
모든 채널, 마스터 프로그램 이름 및 슬레이브 프로그램 이름(해당 사항이 있을 경우)을 지정합니다.
imta.cnf 파일에서 pool 키워드를 사용하여 job_controller.cnf에서 정의된 프로세스 풀의 이름을 지정할 수 있습니다. 예를 들어, 샘플 job_controller.cnf 파일의 다음 단편은 MY_POOL 풀을 정의합니다.
[POOL=MY_POOL] job_limit = 12
샘플 imta.cnf 파일의 다음 단편은 채널 블록에서 MY_POOL 풀을 지정합니다.
channel_x pool MY_POOL channel_x-daemon
기본 풀 구성과 관련된 매개 변수를 수정하거나 추가 풀을 추가하려는 경우 job_controller.cnf 파일을 편집한 다음 Job Controller를 중지했다가 다시 시작할 수 있습니다.
Job Controller 구성 파일의 첫 번째 풀은 풀 이름을 지정하지 않는 모든 요청에 사용됩니다. MTA 구성 파일(imta.cnf)에 정의된 MTA 채널은 pool 채널 키워드 뒤에 풀 이름을 사용하여 처리 요청을 특정 풀을 향하도록 할 수 있습니다. 풀 이름은 Job Controller 구성의 풀 이름과 일치해야 합니다. Job Controller가 요청된 풀 이름을 인식하지 않을 경우 요청은 무시됩니다.
초기 구성에서는 DEFAULT, LOCAL_POOL, IMS_POOL, SMTP_POOL 풀이 정의됩니다.
일반적으로 일부 채널의 처리를 다른 채널의 처리와 차별화하려는 경우 추가 풀 정의를 Job Controller 구성에 추가합니다. 또한 다른 특성을 가진 풀을 사용할 수도 있습니다. 예를 들어, 일부 채널에서 처리하도록 허용된 동시 요청의 개수를 제어해야 할 수 있습니다. 이렇게 하려면 작업 제한을 가진 새 풀을 만든 다음 pool 채널 키워드를 사용하여 이러한 채널을 더 적절한 새 풀로 향하게 합니다.
풀 정의 외에도 Job Controller 구성 파일은 각 채널에 대해 Job Controller가 요청을 처리하는 데 사용해야 하는 MTA 채널 및 명령 테이블을 포함합니다. 요청의 두가지 유형은 “마스터” 및 “슬레이브”로 한정됩니다. 일반적으로 채널 마스터 프로그램은 채널에 대한 MTA 메일 대기열에 저장된 메일이 있을 때 호출됩니다. 마스터 프로그램은 메일을 대기열에서 제외시킵니다.
슬레이브 프로그램은 채널을 폴하고 해당 채널에 대한 모든 인바운드 메일을 가져오기 위해 호출됩니다. 거의 모든 MTA 채널이 마스터 프로그램을 갖고 있지만 대부분은 경우 슬레이브 프로그램은 갖고 있지 않거나 불필요합니다. 예를 들어, TCP/IP를 통해 SMTP를 처리하는 채널은 슬레이브 프로그램을 사용하지 않는데 이는 임의 SMTP 서버에서 요청할 경우 네트워크 서비스인 SMTP 서버가 받는 SMTP 메일을 수신하기 때문입니다. SMTP 채널의 마스터 프로그램은 MTA의 SMTP 클라이언트입니다.
채널과 관련된 대상 시스템이 한 번에 하나의 메일만 처리할 수 있는 경우 작업 제한이 1인 새로운 유형의 풀을 만들어야 합니다.
[POOL=single_job] job_limit=1
이와 달리 대상 시스템에 충분한 병행성이 있을 경우 작업 제한을 더 높은 값으로 설정할 수 있습니다.
예 10–1은 샘플 Job Controller 구성 파일을 보여 줍니다. 사용 가능한 옵션은 표 10–6에 나와 있습니다.
!MTA Job Controller configuration file ! !Global defaults tcp_port=27442 (1) secret=never mind slave_command=NULL (2) max_life_age=3600 (3) ! ! !Pool definitions ! [POOL=DEFAULT] (4) job_limit=10 (5) ! [POOL=LOCAL_POOL] job_limit=10 ! [POOL=IMS_POOL] job_limit=1 ! [POOL=SMTP_POOL] job_limit=1 ! !Channel definitions ! ! [CHANNEL=l] (6) master_command=msg_svr_base/lib/l_master ! [CHANNEL=ims-ms] master_command=msg_svr_base/lib/ims_master ! [CHANNEL=tcp_*] (7) anon_host=0 master_command=msg_svr_base/lib/tcp_smtp_client |
위 예의 괄호로 묶인 굵은체의 숫자가 표시된 주요 항목은 다음과 같습니다.
이 전역 옵션은 Job Controller가 요청을 수신하는 TCP 포트 번호를 정의합니다.
후속 [CHANNEL] 섹션에 대한 기본 MAX_LIFE_AGE를 설정합니다.
이 [POOL] 섹션은 DEFAULT라는 풀을 정의합니다.
이 [CHANNEL] 섹션은 l이라는 UNIX 로컬 채널에 적용됩니다. 이 섹션에 필요한 유일한 정의는 Job Controller가 이 채널을 실행하기 위해 사용하는 master_command입니다. 채널 이름에 와일드카드가 없기 때문에 채널은 정확하게 일치해야 합니다.
이 [CHANNEL] 섹션은 이름이 tcp_*로 시작하는 모든 채널에 적용됩니다. 이 채널 이름은 와일드카드를 포함하므로 이름이 tcp_로 시작하는 모든 채널과 일치합니다.
Job Controller는 메일 전달을 위해 채널 작업을 작성 및 관리합니다이러한 채널 작업은 Job Controller 내의 처리 풀 안에서 실행됩니다. 풀은 채널 작업이 실행되는 “장소”로 생각할 수 있습니다. 풀은 작업 세트가 풀 외부의 작업과 자원을 놓고 경쟁하지 않고도 작동할 수 있는 컴퓨팅 영역을 제공합니다. job_controller에서 설정된 작업 제한이 해당 풀에만 적용된다는 점을 유의하십시오. 따라서, 예를 들어 job_limit가 10으로 설정된 SMTP_POOL을 정의할 경우 특정 시점에 10개의 tcp_smtp 클라이언트 프로세스만 해당 풀에서 실행될 수 있습니다.
경우에 따라서는 추가 tcp_* 채널을 만드는 것이 필요할 수 있습니다(예: 특히 느린 메일 사이트를 위한 tcp 채널). 이러한 채널은 다른 풀에서 실행하는 것이 좋습니다. 이는 예를 들어, 10개의 다른 tcp_* 채널을 만들어 SMTP_POOL에서 모두 실행할 경우 특정 시점에 각 tcp_* 채널에 대해 하나의 tcp_smtp 클라이언트만 실행될 수 있기 때문입니다(job_limit가 10인 SMTP_POOL을 정의한 경우에 해당하며 메일이 모든 tcp_* 채널을 대상으로 하는지 여부에 따라 달라짐). 시스템의 로드량이 많고 다양한 tcp_* 채널로 나가길 기다리는 메일을 모든 대기열이 갖고 있다고 가정하면 이는 비효율적입니다. 이러한 경우에는 경합이 발생하지 않도록 추가 tcp_* 채널에 대한 추가 풀을 정의할 수 있습니다.
예를 들어, 다음 tcp_* 채널을 설정한다고 가정해 봅니다.
tcp_yahoo smtp mx pool yahoo_pool keyword keyword keyword tcp-yahoo-daemon tcp_aol smtp mx keyword keyword keyword pool aol_pool tcp-aol-daemon tcp_hotmail smtp mx pool hotmail_pool keyword keyword keyword tcp-hotmail-daemon ... tcp_sun smtp mx pool sun_pool keyword keyword keyword tcp-sun-daemon |
각각의 새 채널에 대해 10개의 tcp_smtp_client 프로세스를 추가하기 위해 job_controller.cnf 파일에 다음을 추가할 수 있습니다.
[POOL=yahoo_pool] job_limit=10 [POOL=aol_pool] job_limit=10 [POOL=hotmail_pool] job_limit=10 ... [POOL=sun_pool] job_limit=10 |
풀에 대한 자세한 내용은 채널 실행 작업의 처리 풀을 참조하십시오. Sun Java System Messaging Server 6 2005Q4 Administration Reference를 참조하십시오.
표 10–6 Job Controller 구성 파일 옵션