Sun Java System Messaging Server 6 2005Q4 관리 설명서

일반 오류 메시지

MTA가 시작되지 않으면 명령줄에 일반 오류 메시지가 표시됩니다. 이 절에서는 일반 오류 메시지를 설명하고 진단합니다.


주 –

고유한 사용자 MTA 구성을 진단하려면 imsimta test -rewrite -debug 유틸리티를 사용하여 사용자의 MTA 주소 다시 쓰기 및 채널 매핑 프로세스를 검사합니다. 이 유틸리티를 사용하여 메일을 실제로 보내지 않고도 해당 구성을 확인할 수 있습니다. MTA 구성 확인을 참조하십시오.


또한 MTA 하위 구성 요소는 이 장에서 설명하지 않은 다른 오류 메시지를 표시할 수도 있습니다. 명령줄 유틸리티 및 구성에 대한 장은 Sun Java System Messaging Server Administration Reference를 참조하고 각 하위 구성 요소에 대한 자세한 내용은 5장에서 10장을 참조하십시오. 이 절에서는 다음 오류 유형에 대해 설명합니다.

mm_init 오류

mm_init 오류는 일반적으로 MTA 구성 문제를 나타냅니다. imsimta test -rewrite 유틸리티를 실행하면 이러한 오류가 표시됩니다. imsimta cnbuild, 채널, 서버 또는 브라우저와 같은 다른 유틸리티에서도 이와 같은 오류를 반환합니다.

일반적으로 발생하는 mm_init 오류는 다음과 같습니다.

bad equivalence for alias. . .

별칭 파일 항목의 오른쪽의 서식 지정이 잘못되었습니다.

cannot open alias include file. . .

별칭 파일에 포함된 파일을 열 수 없습니다.

duplicate aliases found. . .

두 개의 별칭 파일 항목의 왼쪽이 동일합니다. 중복된 별칭을 찾아서 제거해야 합니다. 행 번호 XXXerror line #XXX 오류 메시지를 찾습니다. 해당 행에서 중복된 별칭을 수정할 수 있습니다.

duplicate host in channel table. . .

이 오류 메시지는 MTA 구성에 공식 호스트 이름이 같은 두 개의 채널 정의가 있다는 것을 표시합니다.

사용자 구성 파일(imta.cnf)의 다시 쓰기 규칙(위쪽)에 추가로 생긴 빈 행으로 인해 MTA는 나머지 구성 파일을 채널 정의로 해석하게 됩니다. 파일의 맨 처음 행이 빈 행이 아니어야 합니다. 동일한 패턴(왼쪽)의 다시 쓰기 규칙이 많으므로 MTA는 이 규칙을 고유하지 않은 공식 호스트 이름을 가진 채널 정의로 해석합니다. 모든 중복된 공식 호스트 이름을 가진 채널 정의 및 파일의 위(다시 쓰기 규칙)쪽에 있는 잘못된 모든 빈 행에 대해 MTA 구성을 확인합니다.

duplicate mapping name found. . .

이 메시지는 두 개의 매핑 테이블이 같은 이름을 가지고 있다는 것을 나타내며 중복된 매핑 테이블 중 한 개는 제거되어야 합니다. 하지만 매핑 파일의 서식 지정 오류로 인해 MTA에서 무관한 것을 매핑 테이블 이름으로 잘못 해석할 수도 있습니다. 예를 들어, 매핑 테이블 항목을 적절하게 들여쓰지 않으면 MTA에서 항목의 왼쪽이 실질적인 매핑 테이블 이름인 것으로 잘못 생각할 수 있습니다. 일반 형식 매핑 테이블을 검사하고 매핑 테이블 이름을 확인합니다.


주 –

빈 행은 매핑 테이블 이름을 가진 모든 행의 앞뒤에 있어야 합니다. 하지만 어떤 빈 행도 매핑 테이블의 항목 간에 산재해 있으면 안 됩니다.


mapping name is too long. . .

이 오류는 매핑 테이블 이름이 너무 길어서 줄여야 함을 의미합니다. 매핑 파일의 서식 지정 오류로 인해 MTA에서 무관한 것을 매핑 테이블 이름으로 잘못 해석할 수도 있습니다. 예를 들어, 매핑 테이블 항목을 적절하게 들여쓰지 않으면 MTA에서 항목의 왼쪽이 실질적인 매핑 테이블 이름인 것으로 잘못 생각할 수 있습니다. 매핑 파일 및 매핑 테이블 이름을 확인합니다.

error initializing ch_ facility compiled character set version mismatch

이 메시지가 표시되면 imsimta chbuild 명령을 통해 컴파일된 문자 세트 테이블을 다시 컴파일하고 다시 설치해야 합니다. 자세한 내용은 Sun Java System Messaging Server 6 2005Q4 Administration Referenceimsimta chbuild를 참조하십시오.

error initializing ch_ facility no room in. . .

일반적으로 이 오류 메시지는 MTA 문자 세트 내부 테이블의 크기를 조정해야 한다는 것을 의미하며 다음 명령을 통해 컴파일된 문자 세트 테이블을 다시 만듭니다.


imsimta chbuild -noimage -maximum -option
imsimta chbuild

위와 같이 변경하기 전에는 아무것도 다시 컴파일하거나 다시 시작하지 않도록 합니다. imsimta chbuild에 대한 자세한 내용은 Sun Java System Messaging Server 6 2005Q4 Administration Referenceimsimta chbuild를 참조하십시오.

local host alias or proper name too long for system. . .

이 오류는 로컬 호스트 별칭 또는 해당 이름이 너무 길다는 것을 나타냅니다(채널 블록에서 두 번째 또는 후속 이름 중 하나의 오른쪽). 하지만 초기 MTA 구성 파일(예: 다시 쓰기 규칙의 추가적인 빈 행)의 일부 구문 오류로 인해 MTA에서 무관한 것을 채널 정의로 잘못 해석할 수도 있습니다. 구성 파일의 표시된 행을 확인하는 것 외에도 다른 구문 오류에 대해 위의 해당 행을 확인합니다. 특히 MTA에서 이 오류를 표시하는 행이 다시 쓰기 규칙으로 사용되는 경우 반드시 그 위의 추가적인 빈 행을 확인해야 합니다.

no equivalence addresses for alias. . .

별칭 파일에 있는 항목의 오른쪽(번역 값)이 없습니다.

no official host name for channel. . .

이 오류는 채널 정의 블록에 필수적인 두 번째 행(공식 호스트 이름 행)이 없다는 것을 나타냅니다. 채널 정의 블록에 대한 자세한 내용은 Sun Java System Messaging Server Administration Reference의 MTA 구성 및 명령줄 유틸리티 장 및 12 장, 채널 정의 구성을 참조하십시오. 각 채널 정의 블록 전후에는 빈 행이 필요하지만 채널 정의의 채널 이름과 공식 호스트 이름 행 사이에 빈 행이 있어서는 안 됩니다. 또한 빈 행은 MTA 구성 파일의 다시 쓰기 규칙 부분에 허용되지 않습니다.

공식 호스트 이름이 너무 긴 경우

채널(채널 정의 블록의 두 번째 행)의 공식 호스트 이름 길이는 128자의 8진수로 제한됩니다. 채널에 더 긴 공식 호스트 이름을 사용하려면 이를 자리 표시자 이름으로 줄인 다음 다시 쓰기 규칙을 사용하여 긴 이름을 짧은 공식 호스트 이름에 일치시킵니다. l(로컬) 채널 호스트 이름을 사용하면 이 시나리오를 볼 수 있습니다. 예를 들면 다음과 같습니다.


Original l Channel:
!delivery channel to local /var/mail store
l subdirs 20 viaaliasrequired maxjobs 7 pool LOCAL_POOL
walleroo.pocofronitas.thisnameismuchtoolongandreallymakesnosensebutitisan
example.monkey.gorilla.orangutan.antidisestablismentarianism.newt.salaman
der.lizard.gecko.komododragon.com

Create Place Holder:
!delivery channel to local /var/mail store 
l subdirs 20 viaaliasrequired maxjobs 7 pool LOCAL_POOL
newt

Create Rewrite Rule:
newt.salamander.lizard.gecko.komododragon.com   $U%$D@newt

l(로컬) 채널을 사용하는 경우에는 REVERSE 매핑 테이블을 사용해야 합니다. 사용법 및 구문에 대한 자세한 내용은 Sun Java System Messaging Server Administration Reference의 MTA configuration 장을 참조하십시오.

초기 MTA 구성 파일의 특정 구문 오류(예: 다시 쓰기 규칙의 추가적인 빈 행)로 인해 MTA에서 무관한 것을 채널 정의로 잘못 해석할 수 있습니다. 이로 인해 의도된 다시 쓰기 규칙이 공식 호스트 이름으로 해석될 수 있습니다. 구성 파일의 표시된 행을 확인하는 것 외에도 다른 구문 오류에 대해 위의 해당 행을 확인합니다. 특히 MTA에서 이 오류를 표시하는 행이 다시 쓰기 규칙으로 사용되는 경우 반드시 그 위의 추가적인 빈 행을 확인해야 합니다.

컴파일된 구성 버전이 일치하지 않는 경우

imsimta cnbuild 유틸리티의 기능 중 하나는 신속하게 로드되는 이미지에 MTA 구성 정보를 컴파일하는 것입니다. 컴파일 형식은 엄격히 정의되며 MTA의 버전에 따라 상당한 차이가 있습니다. 사소한 변경 사항이 패치 릴리스의 일부로 발생할 수 있습니다.

이와 같은 변경 사항이 발생하면 호환되지 않는 형식을 감지할 수 있도록 내부 버전 필드도 변경됩니다. 호환되지 않는 형식이 감지되면 MTA 구성 요소가 위의 오류와 같이 정지합니다. 이 문제에 대한 해결책은 imsimta cnbuild 명령을 사용하여 새로 컴파일된 구성을 생성하는 것입니다.

또한 업데이트된 구성 정보를 얻을 수 있도록 imsimta restart 명령을 사용하여 모든 상주 MTA 서버 프로세스를 다시 시작하는 것도 좋은 방법입니다.

스왑 공간 오류

제대로 작동하게 하려면 사용자의 메시징 시스템에 충분한 스왑 공간을 구성하는 것이 중요합니다. 사용자의 구성에 따라 필수 스왑 공간 크기가 다릅니다. 일반적인 조정 권장 사항으로는 스왑 공간의 크기가 적어도 주 기억 장치 크기의 3배여야 합니다.

다음은 스왑 공간이 없음을 알리는 오류 메시지입니다.

jbc_channels: chan_execute [1]: fork failed: Not enough space

이 오류를 Job Controller 로그 파일에서 볼 수도 있습니다. 다른 스왑 공간 오류는 사용자 구성에 따라 다릅니다.

다음 명령을 사용하여 사용한 스왑 공간과 남은 스왑 공간 크기를 확인할 수 있습니다.

파일 열기 또는 오류 만들기

메일을 보내려면 MTA는 MTA 메일 대기열 디렉토리에서 구성 파일을 읽거나 메일 파일을 만듭니다. 구성 파일은 MTA 또는 MTA의 SKD에 대해 쓰여진 모든 프로그램으로 읽을 수 있어야 합니다. 설치하는 동안 적절한 사용 권한이 이 파일에 할당됩니다. 구성 파일을 만드는 MTA 유틸리티 및 절차도 사용 권한을 할당합니다. 시스템 관리자가 해당 파일을 보호하는 경우에는 다른 권한있는 사용자 또는 일부 사이트별 절차를 통해 MTA에서 구성 정보를 읽지 못할 수 있습니다. 이런 경우 “파일 열기” 오류 또는 예기치 않은 동작이 발생합니다. imsimta test -rewrite 유틸리티는 구성 파일 읽기에 문제가 발생하면 추가 정보를 보고합니다. Sun Java System Messaging Server 6 2005Q4 Administration Referenceimsimta test를 참조하십시오.

MTA가 권한이 있는 계정에서는 작동하고 권한이 없는 계정에서는 작동하지 않는 것처럼 보이는 경우에는 MTA 테이블 디렉토리의 파일 사용 권한이 문제의 원인일 수 있습니다. 구성 파일 및 해당 디렉토리에서 사용 권한을 확인합니다. 중요 파일의 소유권 확인을 참조하십시오.

일반적으로 "파일 만들기" 오류는 MTA 메일 대기열 디렉토리에서 메일 파일을 만드는 중에 발생하는 문제를 나타냅니다. 파일 만들기 문제를 진단하려면 메일 대기열 디렉토리 확인을 참조하십시오.

유효하지 않은 호스트/도메인 오류

브라우저를 통해 주소가 MTA에 제공되는 경우 이 오류가 나타날 수 있습니다. 또는, 오류 반환 메일 메시지의 일부로 오류가 지연되고 반환될 수 있습니다. 두 경우 모두 이 오류 메시지는 MTA가 지정된 호스트에게 메일을 전달할 수 없다는 것을 나타냅니다. 지정된 호스트에게 메일을 보낼 수 없는 이유를 확인하려면 다음 문제 해결 절차를 수행해야 합니다.

SMTP 채널 오류, os_smtp_* 오류

다음 오류는 반드시 MTA 오류인 것은 아닙니다. os_smtp_open, os_smtp_read, 및 os_smtp_write 등 os_smtp_* 오류이러한 오류는 MTA가 네트워크 계층에서 발생한 문제를 보고할 때 생성됩니다. 예를 들어, os_smtp_open 오류는 원격측 네트워크 연결을 열 수 없다는 것을 의미합니다. MTA가 주소 지정 오류나 채널 구성 오류로 인해 잘못된 시스템에 연결되도록 구성되어 있을 수 있습니다. 일반적으로 os_smtp_* 오류는 DNS 또는 네트워크연결 문제로 인해 발생하며 특히, 이전에 작업 채널 또는 주소였다면 os_smtp_read 또는 os_smtp_write 오류는 보통 다른 쪽에서 연결을 중단하거나 네트워크 문제로 인해 연결이 중단되었다는 것을 나타냅니다.

네트워크 및 DNS 문제는 일시적인 경우가 많습니다. 따라서 가끔 발생하는 os_smtp_* 오류는 신경쓰지 않아도 됩니다. 하지만 이 오류가 지속적으로 나타난다는 것은 기본 네트워크 문제를 나타내는 것일 수 있습니다.

특정 os_smtp_* 오류에 대한 자세한 내용을 얻으려면 해당 채널에서 디버깅을 활성화합니다. 시도된 SMTP 대화의 세부 사항을 표시하는 디버그 채널 로그 파일을 조사합니다. 특히 SMTP 대화 중에 언제 네트워크 문제가 발생했는지 확인합니다. 그 시간으로 네트워크 또는 원격측 문제의 유형을 알 수도 있습니다. 경우에 따라 네트워크 수준 디버깅(예: TCP/IP 패킷 추적)을 수행하여 보내거나 받은 메일을 확인할 수 있습니다.