我有一个使用Postgresql作为数据库的J2EE应用程序(Tomcat)。 这个应用程序在开发中工作正常,但在我的分段环境中尝试时失败。
我怀疑我有某种数据库通信的问题,但我没有得到任何错误,表明它可能是什么。 有没有人有一个简单的方法来显示我的应用程序已成功连接到数据库并运行查询?
我的数据库问题的证据是从检查代码。 我得到一个空指针exception,最有可能的path返回null是如果代码莫名其妙地不能将对象插入数据库。
为了感兴趣,我的登台环境是在EC2上运行的Ubuntu,这个应用程序使用Spring JDBC来访问大多数数据库。 哦,是的,我确实在tomcat lib目录下有postgresql的JDBC jar文件(尽pipe在文档中似乎存在一些分歧,应该是lib还是common / lib)。 我也是一个坏男孩,一直在对扩展的WAR文件进行更改,尝试不同的东西。
我closures了Tomcat安全pipe理器,并且以postgres超级用户的身份连接(是的,我知道这两个东西都是长期的不好的,但是如果它在我添加限制之前就开始运行的话就会很好)。
非常感谢您的帮助。
查看你的postgres日志,如果连接失败,你应该看到FATAL消息。 如果你不这样做,你可能还没有到达数据库,所以你需要validation什么都不是(防火墙,selinux等)和/或数据库configuration符合你的代码的期望。
另一个提示是尝试使用不同的客户端连接到新服务器(我推荐psql),并使用您的代码使用的相同凭据。 如果你可以连接到psql,那么你的代码有问题,如果不是的话,问题可能在db或dbconfiguration本身之间。
只要打开查询日志logging(将log_min_duration_statement设置为0 ),就可以显示出(a)正在执行什么查询,以及(b)每个正在执行多长时间(现在不太有趣,或许是时间…)。