Java 刷新WAS中MQ RA的MQ连接属性

Java 刷新WAS中MQ RA的MQ连接属性,java,resources,jndi,ibm-mq,ibm-was,Java,Resources,Jndi,Ibm Mq,Ibm Was,我们正在尝试在WebSphereAppServer上构建测试应用程序,该应用程序将能够尊重WebSphereMQ队列连接工厂中的更改 不幸的是,我们发现,在更改端口和QMgr名称、保存和复制更改之后,甚至在重新启动应用程序之后,都会得到MQConnFact。。从InitialContext引用,它被绑定到相同的未更改的连接工厂对象,因此它确实需要重新启动服务器以查看更改 这正常吗?从我的角度来看,我们不必重新启动服务器,甚至不必重新启动应用程序来更新对象 是的,我们关闭会话、连接和message

我们正在尝试在WebSphereAppServer上构建测试应用程序,该应用程序将能够尊重WebSphereMQ队列连接工厂中的更改

不幸的是,我们发现,在更改端口和QMgr名称、保存和复制更改之后,甚至在重新启动应用程序之后,都会得到MQConnFact。。从InitialContext引用,它被绑定到相同的未更改的连接工厂对象,因此它确实需要重新启动服务器以查看更改

这正常吗?从我的角度来看,我们不必重新启动服务器,甚至不必重新启动应用程序来更新对象

是的,我们关闭会话、连接和messageproducer对象。
如何在每次查找更新的引用时查看它?

不幸的是,WebSphere正在缓存资源并在启动时将其绑定到JNDI上下文。根据我个人的经验,只有重启才能确保资源的更改得到更新


可能有一个附带问题:为什么要更改队列连接工厂属性?集群中是否有QMGR?如果集群中有多个队列管理器,则可以使用基于CCDT文件的配置来分配负载。

如果您定义了从应用程序到相关资源的资源引用,则重新启动应用程序应强制将资源重新绑定到命名空间中。如果没有资源引用,您将需要重新启动应用程序服务器,以便将资源恢复到命名空间中。

谢谢您的回答。我们的测试应用程序背后的原因是我们采用了客户应用程序,该应用程序使用spring并在Db中存储conn属性。通过刷新spring上下文,该应用程序可以在重新启动时查看这些更改的属性。但是我们试图迁移到WebSphere管理的连接,以便通过AppServer管理和监视连接。它仍然需要服务器重新启动,因为上下文引用是由websphere缓存的。我们甚至尝试在获取上下文之前放置特殊选项,以不缓存资源,但这也不起作用。