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

사이트 제공 루틴 대체($[...])

$[image,routine,argument ] 형식의 대체는 특수하게 처리됩니다. image, routine, argument 부분은 사용자 제공 루틴을 검색 및 호출하는 데 사용됩니다. UNIX의 런타임에서 MTA는 dlopendlsym을 사용하여 공유 라이브러리 image에서 routine 루틴을 동적으로 로드 및 호출합니다. 이어서 routine 루틴은 다음 인수 목록을 가진 함수로 호출됩니다.


status = routine (argument, arglength, result, reslength)

argumentresult는 252바이트 길이의 문자열 버퍼입니다. argumentresult는 포인터로 문자열에 전달됩니다(예: C에서는 char*로). arglengthreslength는 참조에 의해 전달되는 서명된 정수(Long)입니다. 입력의 경우, argument는 매핑 테이블 템플리트의 argument 문자열을 포함하고 arglength는 해당 문자열의 길이를 포함합니다. 반환 시에 결과 문자열은 result에 포함되고 그 길이는 reslength에 포함되어야 합니다. 그런 다음 이 결과 문자열은 매핑 테이블 템플리트에서 $[image,routine,argument]를 대체합니다. routine 루틴은 매핑 테이블 대체가 실패할 경우에는 0을 반환하고 성공할 경우에는 1을 반환해야 합니다. 대체가 실패할 경우 일반적으로 원래 입력 문자열이 그대로 출력 문자열로 사용됩니다.

사이트 제공 루틴 대체를 수행하는 매핑 테이블 항목에서 $C, $R 또는 $L과 같은 처리 제어 메타 문자를 사용하려는 경우 매핑 테이블 템플리트에서 사이트 제공 루틴 대체의 왼쪽에 처리 제어 메타 문자를 두어야 합니다. 그렇지 않을 경우 매핑 테이블 대체가 “실패”하면 처리 제어 메타 문자가 표시되지 않습니다.

사이트 제공 루틴 설명선 기법을 사용하면 MTA의 매핑 프로세스를 모든 종류의 복잡한 방법으로 확장할 수 있습니다. 예를 들어, PORT_ACCESS 또는 ORIG_SEND_ACCESS 매핑 테이블에서 특정한 유형의 로드 모니터링 서비스를 호출할 수 있으며 결과를 사용하여 연결이나 메일을 수락할지 여부를 결정할 수 있습니다.

사이트 제공 공유 라이브러리 이미지 image는 세계 공용이어야 합니다.