Sun Java System Application Server Platform Edition 8.2 发行说明

Selector.select() 抛出 IOException。Application Server 启动失败。(ID 6322825)

在当前 JDK 代码中,/dev/poll 选定器会将包含 8192pollfd 条目的数组分配给该选定器使用。这将超出 nofiles ulimit,从而导致分配失败,并显示错误“参数无效”。selector.select() 的中断导致在启动期间连接至 MQ 的 Application Server 套接字服务失败,并抛出 IOException

解决方法

放宽对 pollfd 文件描述符的限制。有两种方法可完成此操作:

  1. 以 root 用户身份在 shell 上执行 ulimit -n 8193

  2. 将文件描述符数目的严格限制增加为 8193 或更高:

    1. 使用 ulimit -n -H 检查严格限制。

    2. 如果小于 8193,请编辑 /etc/system,以添加 set rlim_fd_max=8193 命令。

    3. 重新引导计算机。