文档解释
ORA-29549: class string.string has changed, Java session state cleared
Cause: A class in use by the current session was redefined or dropped, invalidating the current Java session state and requiring that it be cleared.
Action: No action required.
ORA-29549 : class string.string has changed, java session state cleared 是由于java class的变更造成的,以致于java会话的状态被清除。这是一个Oracle 保留的错误。
官方解释
ORA-29549 是在初始化Java Virtual Machine (JVM)时可能出现的一个Oracle错误。此错误是由于一个外部Java类发生变化,以致于在JVM中不能正常工作,需要清理当前会话的状态。
常见情况:
常见原因是当用户启动和终止Java进程时,外部Java类在JVM中发生变化。此错误也可能在当使用外部Java存储过程时出现。此存储过程可能是个本地Java类或者一个共享库中的类。
一般处理方法及步骤
1. 首先检查外部Java的情况,确定其是否发生变化,如果是这样,就可以重新加载。
2. 将问题复现在生产环境中,确保可以找到错误的根源。
3. 使用 ALTER SYSTEM SET JAVA_POOL_SIZE 将JVM中的缓存大小增加,尝试避免此错误发生。
4. 将JVM配置参数设置为不需要对外部类进行检查,以避免使用不安全的Java类。
5. 如果在以上处理方式中仍然无法解决,可以尝试重新启动数据库。