Sun Java System Messaging Server 6.3 管理指南

12.5.5 服務工作限制

關鍵字:maxjobsfilesperjob

每次郵件在通道中排入佇列時,工作控制器均可確保會有一項遞送郵件的工作正在執行中。這可能涉及到啟動新的工作程序、新增執行緒或只指明工作已在執行中。但是,單一服務工作可能不足以確保及時遞送所有的郵件。(如需有關工作控制器概念和配置的詳細資訊,請參閱10.4.8 工作控制器檔案12.5.4 通道執行工作的處理區8.7 工作控制器)。

對於任何指定的安裝都會啟動合理的最大數量的程序與執行緒以遞送郵件。此最大數量取決於幾個因素,例如處理器的數量、磁碟的速度和連線的特徵。在 MTA 配置中,可以控制以下內容:

為執行指定通道而啟動的程序之最大數,是對通道設定的 maxjobs 和通道執行所在的處理區設定之 JOB_LIMIT 最小值。

假定有一封郵件需要處理。通常,工作控制器會啟動新的程序詳情如下:

尤其對於 SMTP 通道,新的執行緒或程序會在不同主機的郵件排入佇列時啟動。因此,對於 SMTP 通道,工作控制器會啟動新的程序,詳情如下。假定有一封郵件需要處理:

請參閱12.5.8 SMTP 通道執行緒

filesperjob 關鍵字可用於使 MTA 建立其他服務工作。此關鍵字接受單一正整數參數,指定在處理佇列項目 (即檔案) 的多個服務工作建立之前,有多少個佇列項目必須傳送至關聯的通道。如果此值小於或等於零,則表示佇列只請求一個服務工作。不指定關鍵字就相當於指定零值。此關鍵字的效果已經最大化;較大的估算數量將是實際建立的服務工作數量。

filesperjob 關鍵字會以實際佇列項目或檔案的數目除以指定值。請注意,指定郵件所產生的佇列項目之數目由多個因素所控制,包括但不僅限於 singlesingle_sys 關鍵字的使用,以及郵遞清單中標頭修改動作的規格。

maxjobs 關鍵字對可並行執行的服務工作之總數設定了一個上限。此關鍵字之後必須加整數值;即使服務工作的估算數目大於此值,實際上仍只會建立 maxjobs 數目的工作。如果未指定 maxjobs,則此值預設為 100。通常,maxjobs 的設定值應小於或等於通道使用的任何服務處理區中可同時執行的工作之總數。