11回复
2年前
【赏金15元】jvm类加载错误
问题背景:
- 通个自定义类加载器隔离两个版本的oracle驱动(ojdbc6和ojdbc8)实现同时访问多个版本的oracle。
- 用于加载ojdbc6和ojdbc8两个版本驱动的自定义ClassLoader为兄弟关系,相互隔离
问题现象:
1.先通过ojdbc6访问低版本oracle再通过ojdbc8访问高版本oracle没问题。
2.先通过ojdbc8连续多次访问高版本oracle,然后通过ojdbc6查询低版本oracle某个库下面的table列表时出现依赖冲突,debug发展在ojdbc6环境下T4CDriverExtension类引用的T4CPrepareStatement类是ojdbc8环境加载的,而且可以确认加载加载T4CDriverExtension类的类加载器和当前线程上下文类加载器都是ojdbc6环境的自定义ClassLoader。
希望有jvm大神解答一下是什么原因导致原本相互隔离的两个ClassLoader却出现了上述的类加载错误问题,谢谢
【赏金领取规则及入口】
麻烦大家关注【Heapdump性能社区】公众号,及时接收信息!
1177 阅读