会话故障转移时,将丢失所有对打开文件或网络连接的引用。编码应用程序时必须考虑到此限制。
您只能将某些对象绑定到支持故障转移的分布式会话中。与 Servlet 2.4 规范不同,如果将不支持故障转移的对象类型绑定到分布式会话中,Sun Java System Application Server 不会抛出 IllegalArgumentException。
您可以将以下对象绑定到支持故障转移的分布式会话中:
所有 EJB 组件的本地主引用和对象引用。
共存的无状态会话、有状态会话或实体 Bean 引用。
分布式无状态会话、有状态会话或实体 Bean 引用。
InitialContext 和 java:comp/env 的 JNDI 上下文。
UserTransaction 对象。但是,如果从未重新启动失败的实例,则会丢失所有就绪的全局事务,并且可能无法正确回滚或提交这些事务。
可序列化的 Java 类型。
您不能将以下对象类型绑定到支持故障转移的会话中:
JDBC 数据源
Java 消息服务 (Java Message Service, JMS) ConnectionFactory 和 Destination 对象
JavaMail™ 会话
连接工厂
受管对象
Web 服务引用
对于这些对象,故障转移通常不起作用。但是,在某些情况下故障转移也可能发挥作用,例如,如果对象为可序列化对象。