在后台用Java刷新网页的问题

是这样的,我在后台用Java获取了建立在Weblogic上的数据源,并用它来连接别的数据库取数。
但是这数据库连接有超时的控制。隔一段时间不动(Inactive),再刷新,就会报错说连接已关闭。只有重启Weblogic服务才能从新连接上数据库。

目前我自己的解决方法是:在前台JSP页面上弄个自动刷新的控制,每10分钟就刷新一次页面,这样可以保持数据库连接一直是活动状态。

但是问题又来了:必须是开着浏览器开着页面,这段刷新的代码才会被执行。如果我关闭浏览器了,就不能自动刷新了。

这样的悲剧体现在:需要一直在服务器上开着一个网页负责刷新页面;如果重启服务器了,不但要开Weblogic的服务,同时也要再开一个页面来刷新网页……

如果可以在后台用Java刷新网页或者数据库连接,那就最好了。

请问各位大侠有什么高明的解决方法么?

7个回答

[quote]请问实现方法是怎样的?麻烦您提示一下啊![/quote]
代码类似下面:
[code="java"]
class Task implements Runnable
{
@Override
public void run()
{
//要执行的任务,即刷新数据库
}
}

ScheduledExecutorService scheduledService = Executors.newScheduledThreadPool(1);
//每隔5秒执行一次任务
scheduledService.scheduleAtFixedRate(task, 0, 5, TimeUnit.SECONDS);
[/code]

不过我觉得你的问题不是要在后台开线程刷新连接,连接池都会
自己维护连接的,你是不是从连接池获取了一个Connection后
一直没有调用connection.close()方法释放连接到连接池中?

在后台启动一个线程,定时刷新不就可以了吗?

这是很艹蛋的想法,数据源不能定义超时时间么?一般的连接池都是可以定义连接多久没用就自动释放然后重新取

[quote]隔一段时间不动(Inactive),再刷新,就会报错说连接已关闭[/quote]这跟你的weblogic有什么关系啊?

你用 HttpClient 模仿 “在前台JSP页面上弄个自动刷新的控制” 这个功能,看看行不行?

[quote]调用了Weblogic上的连接,这连接会自动超时关闭。[/quote]
那也只是 weblogic 断开了你的连接啊,你干嘛要重启动 weblogic 呢?

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐