若在部署 Access Manager 客户机 SDK (amclientsdk.jar) 后启用轮询,可能发生如下错误:
错误:发送轮询错误: com.iplanet.am.util.ThreadPoolException: amSessionPoller 线程池的作业队列已满。
部署分布式验证 UI 服务器、J2EE 代理后,或者在客户机上部署了 Access Manager 客户机 SDK 的情况下,均可能发生此类错误。
解决方法。如果只有数百个并发会话,则在 AMConfig.properties 文件或者 AMAgents.properties 文件中添加以下属性和值:
com.sun.identity.session.polling.threadpool.size=10 com.sun.identity.session.polling.threadpool.threshold=10000
如果有数千或数万个会话,则应将值设置为与运行 amtune-identity 脚本后 Access Manager AMConfig.properties 文件中通知的值相同。例如,对于一台有 4 GB RAM 的计算机,Access Manager amtune-identity 脚本会设置以下值:
com.sun.identity.session.notification.threadpool.size=28 com.sun.identity.session.notification.threadpool.threshold=76288
在拥有 4 GB RAM 的客户机上部署了分布式验证 UI 服务器或 Access Manager 客户机 SDK 后,应在客户机端的 AMAgent.properties 或 AMConfig.properties 文件中设置类似的值。