gpt4 book ai didi

java - 早上数据库访问失败

转载 作者:行者123 更新时间:2023-11-29 01:22:12 25 4
gpt4 key购买 nike

我正在构建一个带有登录名的系统。当我只是在自己的计算机上测试它时,它运行得非常好。一旦我将它上传到我们的服务器,我们就开始遇到问题......它不会在早上登录几秒钟。其余时间工作正常。

我昨天和今天才遇到这个问题,而且我每天早上只能测试一次,所以还很难给出太多细节。这是设置:

首页是使用javascript和angular js的html页面。它打开一个空框架,然后对页面内容发出 ajax 请求。对于任何返回值为“访问权限不足”的失败 ajax 请求,它将取消隐藏包含登录表单的 div。该登录表单将页面清空并提供一个提交按钮。单击提交按钮后,它会向 Java 服务器发送一个 ajax 登录请求。该请求返回后,页面将再次隐藏登录表单,一切照常进行。

在后端,我们有一个运行 1.6 和 1.7 之间的 java 服务器(是的,我知道,我应该知道得更多——服务器报告它是 1.7.001,但是 1.7 功能像基于字符串的 switch-case语句不起作用,因此我们在上传时针对 1.6 java 进行编译。这是我们正在解决的一个已知问题。)我们正在使用 Stripes 来执行前端代码。数据库为mysql数据库,位于同一台服务器上。

出现这个错误的时候,总是早上第一次登录。我加载页面,输入用户/密码,然后单击登录。页面闪烁并返回到登录屏幕。我还没有清除登录后的用户/密码,因为我们还在测试阶段,所以我可以再次点击“登录”,然后再点击十几次才最终登录。这个问题有只发生了两次:昨天和今天,早上第一次登录。

我的同事在之前的项目(同一台服务器)上的另一个类似设置中遇到了类似的问题。他说他认为问题与 sql server 关闭连接有关,而 java server 没有意识到连接已关闭,但他不确定,也不知道如何解决。

我什至不知道要提供什么其他信息、要显示什么代码或类似的东西。我在任何地方都能找到的最好的建议是“设置一个预定事件,每隔几个小时就发出一次万无一失的数据库请求”,但这看起来太……笨拙了。如果有人可以帮助我,我很想能够测试一个更明确的问题和解决方案。如果有人能告诉我他们希望看到什么代码来解决这个问题,我会很乐意将其粘贴。更多信息?只是问。范围似乎如此............我不知道哪些部分可能是相关的。

编辑 1:错误代码!

[ERROR] - Database Error 1 on verify
java.sql.SQLException: Already closed.
at org.apache.tomcat.dbcp.dbcp.PoolableConnection.close(PoolableConnection.java:114)
at org.apache.tomcat.dbcp.dbcp.PoolingDataSource$PoolGuardConnectionWrapper.close(PoolingDataSource.java:191)

编辑 2:连接代码

这来 self 们专门为所有 mysql 数据库连接保留的对象。

private static ConnectionSource coreConnection = null;
private static DataSource coreDataSource = null;

public static ConnectionSource getCoreConnection() throws SQLException, NamingException {
if (coreConnection == null || !coreConnection.isOpen()) {
Context env = (Context)new InitialContext().lookup("java:comp/env");
coreDataSource = (DataSource)env.lookup("webapps/test");
coreConnection = new DataSourceConnectionSource(coreDataSource, new MysqlDatabaseType());
}
return coreConnection;
}

最佳答案

配置连接池以验证连接。然后连接池将向数据库发送一个简单的查询(您在配置期间指定)。如果该查询失败,它将关闭连接并为您提供一个新连接,否则它将就地使用它。这有助于解决诸如此类的问题以及数据库在服务器背后发生故障的问题。

关于java - 早上数据库访问失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17110059/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com