Sun Java System Messaging Server 6 2005Q4 管理指南

新增額外處理區的範例

工作控制器用於建立和管理遞送郵件的通道工作。這些通道工作在工作控制器內的處理區中執行。可以認為池是通道工作執行的「地方」。儲存區提供一個運算區域,可供一組工作在其中作業,而無需與儲存區外部的工作競爭資源。請注意,job_controller 中設定的工作限制是針對每個池的。因此,例如,如果您將 SMTP_POOLjob_limit 定義為 10,則在任一給定時間內,僅能有 10 個 tcp_smtp 用戶端程序在該池中執行。

在某些情況下,可能需要建立額外的 tcp_* 通道 (例如,用於特別緩慢的郵件站點的 tcp 通道)。最好是讓這些通道在不同的處理區中執行。原因為,如果建立了十個不同的 tcp_* 通道且均在 SMTP_POOL 中執行,則在任一給定時間內,每個 tcp_* 通道上可能僅有一個 tcp_smtp 用戶端在執行 (取決於是否存在有目標為所有 tcp_* 通道的郵件,並且是否給定 SMTP_POOLjob_limit 定義為 10)。如果系統負載很重,並且所有佇列中均有郵件等待透過各個 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

為使每個新通道有十個 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 工作主控台配置檔案選項

選項 

說明 

一般選項 

說明 

INTERFACE_ADDRESS=adapter

指定工作控制器應連結至的 IP 位址介面。指定的值 (配接卡) 可以是 ANYALLLOCALHOST 中的任何一個,也可以是 IP 位址。依預設,工作控制器連結至所有位址 (相當於指定 ALLANY)。指定 INTERFACE_ADDRESS=LOCALHOST 意味著工作控制器僅接受來自本地機器內的連線。這不會影響正常作業,因為工作控制器不支援機器之間的作業。但是,這在 HA 環境中可能並不適合,因為 HA 代理程式可能正在檢查工作控制器是否回應。如果正在執行 Messaging Server 的機器處於 HA 環境中,並具有一個「內部網路」配接卡和一個「外部網路」配接卡,並且您不信任防火牆對連線至高連接埠號碼的阻斷功能,您應考量指定「內部網路」配接卡的 IP 位址。

MAX_MESSAGES=integer

工作控制器將以內部記憶體結構保留有關郵件的資訊。如果建立大型儲存區,則可能需要限制此結構的大小。如果儲存區中的郵件數目超過了此處指定的參數,則有關後續郵件的資訊將不會保留在記憶體中。因為郵件始終被寫入磁碟,因此不會丟失,但是在工作控制器已知的郵件數目下降至此數目的一半之前,它們不會被遞送。此時,工作控制器將模擬 imsimta cache -sync 指令,掃描佇列目錄。

預設為 100000。 

SECRET=file_spec

用於保護傳送至工作控制器的請求的共用機密。 

SYNCH_TIME=time_spec

工作控制器有時會掃描磁碟上的佇列檔案以檢查是否有遺漏的檔案。依預設,此作業在工作控制器啟動四小時後開始,每隔四小時執行一次。time_spec 的格式為 HH:MM/ hh:mm/ hh:mm。變數 hh.mm 是事件的間隔時間 (以小時 [h] 和分鐘 [ m] 為單位)。變數 HH:MM 是事件在一天中第一次發生的時間。例如,指定 15:45/7:15 表示事件在 15:45 開始,並從此刻起每七小時十五分鐘發生一次。

TCP_PORT=integer

指定工作控制器應在其上偵聽請求封包的 TCP 連接埠。請勿變更此選項,除非該預設與您系統上的其他 TCP 應用程式發生衝突。如果確實要變更此選項,請變更 MTA 調校檔案 msg_svr_base/config/imta_tailor 中相應的 IMTA_JBC_SERVICE 選項,以便它可以匹配。TCP_PORT 選項將在全域套用,如果它顯示在 [CHANNEL] 或 [POOL] 區段中,則將被忽略。

池選項

說明

JOB_LIMIT=integer

指定處理區可以同時 (平行) 使用的程序的最大數目。JOB_LIMIT 將分別套用至每個池;工作的最大總數是所有池的 JOB_LIMIT 參數的總和。如果在區段外設定,則可以由未指定 JOB_LIMIT 的任何 [POOL] 區段用做預設。在 [CHANNEL] 區段中會忽略此選項。

通道選項

說明

MASTER_COMMAND=file_spec

指定工作控制器建立的 UNIX 系統程序要執行的指令的完整路徑 (執行通道並將該通道上的外寄郵件移出佇列)。如果在區段外設定,則可以由未指定 MASTER_COMMAND 的任何 [CHANNEL] 區段用做預設。在 [POOL] 區段中會忽略此選項。

MAX_LIFE_AGE=integer

指定通道主要工作的最長存在時間 (以秒為單位)。如果沒有為通道指定該參數,則使用全域預設值。如果未指定預設值,則使用 14400 (240 分鐘)。 

MAX_LIFE_CONNS=integer

除了最長存在時間參數以外,通道主要工作的存在期限還受其詢問工作控制器是否有郵件的次數的限制。如果沒有為通道指定該參數,則使用全域預設值。如果未指定預設值,則使用 300。 

SLAVE_COMMAND=file_spec

指定工作控制器建立的 UNIX 系統程序要執行的指令的完整路徑 (執行通道並輪詢通道上內送的所有郵件)。大多數 MTA 通道不具有 SLAVE_COMMAND。如果是這種情況,則應指定保留值 NULL。如果在區段外設定,則可以由未指定 SLAVE_COMMAND 的任何 [CHANNEL] 區段用做預設。在 [POOL] 區段中會忽略此選項。