在JMS中,很容易找出连接是否丢失,是否发生异常。但是,如何确定连接是否再次存在?
场景:我使用JMS与服务器通信。现在我的连接断开了(服务器已关闭),这导致了异常。到目前为止,一切都很好。如果服务器再次启动并重新建立连接,我怎么知道?
我看不到任何可以提供此类信息的侦听器。
啊…旧的异常处理/重新连接难题。
有些传输提供程序将为您自动重新连接您的html" target="_blank">应用程序,而另一些传输提供程序使应用程序驱动器重新连接。通常,重新连接对应用程序隐藏异常。不利的一面是,如果 所有
远程消息传递节点都关闭,则您不希望该应用程序永远挂起,因此最终,您 必须 包括一些重新连接逻辑。
现在这是有趣的部分-
您如何以提供者中立的方式处理异常?JMS异常几乎毫无价值。例如,“安全例外”可能是Java安全策略限制太严格,文件系统权限限制太严格,LDAP凭证失败,与传输的连接失败,队列或主题的打开。失败或其他数十种与安全相关的问题。链接异常具有传输提供程序提供的详细信息,可以真正帮助调试问题。我的客户通常在这里采用三种不同的方法之一…
在您的情况下,队列和主题对象可能仅在原始连接的上下文中有效。假设提供程序自动重新连接,那么您会收到异常的事实意味着重新连接失败,并且无法还原队列和主题对象的上下文。关闭所有对象并重新连接。
是否要做一些更特定于提供程序的操作(例如区分暂时错误和永久错误)是“取决于情况”的事情之一,您必须根据具体情况加以解决。
问题内容: 我有一个需要用户输入密码的应用程序。 我想要做的是从控制台读取密码(如果操作系统支持unix)或显示JOptionPane并要求用户输入密码(如果操作系统支持图形界面(例如Windows))。 有人可能会争辩说,在上述两种情况下控制台始终可用,因此控制台输入就足够了。但是问题是,如果Java应用程序开始使用javaw.exe,则控制台不可用。因此,我需要一种方法来确定我是否可以做任何一
我编写了以下代码来检测目录是否存在。方法接受完全限定路径或相对路径。 注意:返回指定目录或文件名的完全限定路径。在我的例子中,这是。 这个代码已经运行了好几个月了。但它突然停止了工作。现在,当目录不存在时,中不会出现异常只返回一个空字符串。 我发布了一个类似的问题,有人建议我应该总是在路径的末尾追加。我试过了,以为我有一次例外,但现在没有例外。 我不知道与我通信的FTP服务器上的行为是否发生了变化
问题内容: 由于ResultSet包含从动态SQL返回的数据,是否有任何方法可以确定ResultSet是否包含特定的列名?例如,如果我运行但Column_ABC确实不存在,它将抛出异常。如何测试ResultSet是否可以从名为“ Column_ABC”的列中获取数据? 问题答案: 使用该类。 我不明白的是为什么会需要此功能。正在执行的查询或存储过程应具有已知结果。查询的列应该是已知的。需要这样的功
问题内容: 我需要使用AWS开发工具包检查文件是否存在。这是我在做什么: 它可以工作,但问题是当对象不存在时,回调(带有参数err和url)不会返回错误,并且当我尝试访问URL时,它会显示“ NoSuchObject”。 当对象不存在时,该方法是否应该返回错误对象?如何确定对象是否存在?我真的需要打电话给返回的URL吗? 问题答案: 在创建签名的URL之前,您需要检查文件是否直接从存储桶中存在。一
问题内容: 我有一个Python字典,例如: 我想检查一个键是否在字典中。我很想知道以下两种情况中哪一种更为可取,为什么? 问题答案: if ‘name’ in mydict: 是首选的pythonic版本。不鼓励使用,并且在Python 3中已删除 此方法。
我需要检查堆栈中是否有重复项(仅在基本方法pop、push、top、isempty中使用),如果堆栈没有重复项,则返回true;如果堆栈为空,则返回true;如果堆栈有重复项,则返回false 如果不使用另一个函数和最短路径,我如何做到这一点?解决方案需要使用基本方法,而不使用c的内置函数#