发帖    主题    评论    推荐    标签    作者    订阅    查搜    注册   登陆   关注
 
面向对象 设计模式 领域驱动设计 企业架构 框架 开发教程 微服务 CQRS 扩展性 并发编程 事件溯源 分布式 SOA

jboss4 热部署,ejb之间调用出错,版主能否抽空指点下,非常感谢!

2007-07-25 15:57
赞助商链接

在一个jboss4版本下,部署两个ejb组件:ejbA.jar和ejbB.jar,其中ejbB.jar组件里有个无状态session bean 调用ejbA.jar里某个无状态session bean的一个方法,它们之间调用是通过远程接口调用,运行很正常;但是当ejbA.jar重新热部署(接口没有任何改变,就是直接重新覆盖下),这时ejbB.jar调用ejbA.jar失败,异常为home接口create时出错;如果将ejbA.jar部署到另外一个jboss4环境下,ejbA.jar任意部署ejbB.jar调用都不会出错,初步怀疑jboss在实现jndi查找实例的时候建立了缓存机制,就是第一次调用的时候,发现缓存里没有,通过Context.PROVIDER_URL链接建立,以后都是从缓存里建立实例,第一次调用后,把ejbA.jar重新部署,jboss原来缓存ejbA的Home对象其实不存在了,所有在create的时候报错。但是为什么两个jboss下却是可以的,难道jboss缓存跟自己同一个jvm下home对象?如果是这样为什么不在热部署的时候清除这个缓存了?

请问这种错误是不是我估计的情况引起的,怎么解决?谢谢!!!

2007-07-26 10:24

你的判断与我的以前判断比较一致。

我感觉:在同一个JBoss下,属于JBoss可控范围,Home是缓存的,但是如果是另外一个JBoss,则加入IP地址等动态因素,因为可能在多台不同IP之间调用,所以,jBoss不会大胆来缓存HOme,这时要提升性能需要自己程序来缓存。

>如果是这样为什么不在热部署的时候清除这个缓存了
这个可能就是没有做到完美的原因。

以上也是根据我经验判断,仅提供参考。

2007-08-20 14:19

非常感谢Banq大哥的回复,看来只能等待Jboss新版本能解决次问题了。。。。

赞助商链接

赞助商链接

返回顶部

移动版 关于本站 使用帮助 联系管理员 最佳分辨率1366x768
OpenSource JIVEJDON Powered by JdonFramework Code © 2002-20 jdon.com