首先,我们正在运行在WAS 5.1上运行的Java Web应用程序。在此之后,我们使用Oracle数据库。我们面临的问题非常简单,但经过几个小时的谷歌搜索,我决定问你。
我们有一个在WAS上运行的应用程序。当我们启动服务器时,WAS设置他的DataSource,使其指向数据库。一切正常,期待DBA必须重启数据库服务器。当他们这样做时,数据源不再有效,我们必须手动重启所有服务器,如果可能的话,我们目前正在尝试纠正这个问题。我们需要找到一种方法来实现它,因为我们的应用程序有3个预生产环境,并且有两个与之关联的服务器,一个用于应用程序,另一个是报告生成器Web服务。因此,当DBA想要重启服务器时(他们通常不告诉我们!)我们必须重启六台服务器。我想知道在Java中是否有办法重置数据源,以便我们不需要重新启动服务器。
对于您的信息,WebSphere是v5.1,Oracle是9g,Java 1.4.2.17。
我们也使用RAD:
版本:6.0.1 构建ID:20050725_1800
答案 0 :(得分:1)
您应该将应用程序服务器配置为在将连接租赁给客户端之前始终测试连接。我对Websphere并不熟悉,但是在WebLogic中,您可以设置一个jdbc sql语句,例如select中的select 1,并且容器会从连接池中删除过时的连接。
以下是有关如何在Websphere中执行此操作的链接
答案 1 :(得分:0)
根据我从你的笔记中读到的内容,你应该收到Stale连接异常,因为在重新启动数据库时WAS有过时的句柄(在它的池中)。
可以将数据源配置配置为在检测到过时连接后清除整个池。默认策略是清除单个连接。
采用这种方法会阻止您重新启动WAS服务器。
这个领域有很多资源 http://www-01.ibm.com/support/docview.wss?uid=swg21063645
HTH
Manglu