Sun Java System Messaging Server 6.3 管理指南

添加附加池的示例

作业控制器可以创建并管理传送邮件的通道作业。这些通道作业在作业控制器内的进程池中运行。可以将池看作是一个运行通道作业的“地方”。池提供了一个计算区域,一组作业可以在其中运行而不与池外的作业竞争资源。请注意,在 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

有关池的更多信息,请参见12.5.4 用于通道执行作业的处理池

表 10–6 作业控制器配置文件选项

选项 

说明 

常规选项

说明

INTERFACE_ADDRESS=adapter

指定应绑定作业控制器的 IP 地址接口。指定的值(适配器)可以是 ANYALLLOCALHOST 之一,也可以是一个 IP 地址。默认情况下,作业控制器绑定到所有地址(相当于指定 ALLANY)。指定 INTERFACE_ADDRESS=LOCALHOST 表示作业控制器仅接受来自本地计算机内的连接。这不会影响正常操作,因为作业控制器不支持任何计算机之间的操作。但是,这对于 HA 代理可能正在检查作业控制器是否响应的 HA 环境可能并不适合。如果运行 Messaging Server 的计算机处于 HA 环境中,且具有一个“内部网络”适配器和一个“外部网络”适配器,而您不能确信防火墙可以阻止到高端口号的连接,则应考虑指定“内部网络”适配器的 IP 地址。

MAX_MESSAGES=integer

作业控制器以内存内结构保留有关邮件的信息。在较大的待办事项构建的事件中,可能需要限制此结构的大小。如果待办事项中的邮件数量超过了此处指定的参数,则有关后续邮件的信息将不会保留在内存中。因为邮件消息始终会被写入磁盘,所以邮件不会丢失,但是在作业控制器所知道的邮件数量降至此数量的一半之前,不会发送邮件。此时,作业控制器将模拟 imsimta cache -sync 命令扫描队列目录。最小值为 10。

默认值为 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 开始,并从此刻起每隔 7 小时 15 分钟就会再次发生。

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] 部分中,该选项将被忽略。