2011-08-21 52 views
0

希望有人能够帮助我解决方案,以启动后台线程来监视我的数据库连接。我们的应用程序部署在weblogic 92中,我想知道是否有一种方法可以在应用程序运行时启动运行的线程?谢谢Weblogic + dameon线程

我试图监视我的数据库,以确保我可以切换数据库,如果我的连接失败。出于这个原因,我正在寻找一个简单的解决方案来运行后台任务。

回答

0

根据您想要检查的条件以及要执行的操作,您可以使用WebLogic诊断框架。您可以在检测到某种情况时发送JMS消息,然后使用MDB执行任何您想要的操作。

更新您的问题条件&您想采取的行动,我可以提供更多的细节。

一般来说,开始你自己的线程是不可取的。

更新: 通过您的描述我猜你不使用JNDI或WebLogic数据源。如果您使用WebLogic中的数据源进行连接池,会更好。 WebLogic可以检测到池中的连接不良,并在将其提供给应用程序之前重新创建它。

如果您指的是不同的数据库,那么WebLogic具有具有故障转移功能的多数据源选项。你应该做的是配置两个数据源 - 一个主要和一个次要 - 然后创建一个多数据源来包装它们。然后,您应该在应用程序中使用多数据源的JNDI。显然,如果你这样做,你需要确保两个数据库实例之间的数据是一致的。

这不会使您的应用程序特定于WebLogic,因为它只是对JNDI名称的更改。 WebLogic负责其余部分。

+0

谢谢杰夫;问题已更新。 – user815809

1

即使在许多应用程序服务器中,您也不应该在Java EE服务器中创建自己的线程,请参阅Why is spawning threads in Java EE container discouraged?了解一些背景和变通方法。

+0

谢谢@fvu。我知道这一点,但没有将我的代码直接链接到Weblogic,我希望这是可能的。我试图监视我的数据库,以确保我可以在连接失败时切换数据库。出于这个原因,我正在寻找一个简单的解决方案来运行后台任务。 – user815809