Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/383.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 远程JNDI查找-刷新缓存对象_Java_Jakarta Ee_Jms_Jndi - Fatal编程技术网

Java 远程JNDI查找-刷新缓存对象

Java 远程JNDI查找-刷新缓存对象,java,jakarta-ee,jms,jndi,Java,Jakarta Ee,Jms,Jndi,我使用JNDI查找来定位远程JMS连接工厂和队列。在应用程序启动时进行查找,然后缓存这些对象以供进一步使用 一切正常,直到我重新启动连接工厂和队列所在的远程JMS服务器。JMS服务器重新启动后,应用程序将无法再创建JMS连接,它将挂起在connectionFactory.createConnection()中。我唯一能解决这个问题的方法是重新启动我们熟悉的应用程序 我的问题是:在检测到JMS服务器已重新启动后,是否需要刷新这些JNDI对象(连接工厂+队列) JMS服务器不是JNDI服务器。我会清

我使用JNDI查找来定位远程JMS连接工厂和队列。在应用程序启动时进行查找,然后缓存这些对象以供进一步使用

一切正常,直到我重新启动连接工厂和队列所在的远程JMS服务器。JMS服务器重新启动后,应用程序将无法再创建JMS连接,它将挂起在
connectionFactory.createConnection()
中。我唯一能解决这个问题的方法是重新启动我们熟悉的应用程序


我的问题是:在检测到JMS服务器已重新启动后,是否需要刷新这些JNDI对象(连接工厂+队列)

JMS服务器不是JNDI服务器。我会清除缓存。好吧,也许我没有使用正确的术语,所以JMS服务器不是JNDI服务器。创建初始上下文然后查找对象是一项消耗资源的任务-你说我不应该缓存这些对象吗?这正是我已经说过的。“消耗的资源”可以忽略不计:这一切都发生在内存中。每当您有与远程服务通信的代码时,您都需要以一种能够处理该服务脱机并随后再次可用的方式来编写它。JMS服务器不是JNDI服务器。我会清除缓存。好吧,也许我没有使用正确的术语,所以JMS服务器不是JNDI服务器。创建初始上下文然后查找对象是一项消耗资源的任务-你说我不应该缓存这些对象吗?这正是我已经说过的。“消耗的资源”可以忽略不计:这一切都发生在内存中。每当您有与远程服务通信的代码时,您都需要以一种能够处理该服务脱机并随后再次可用的方式来编写它。