Java应用程序有时会变慢并且抛出无法连接到数据库异常

时间:2014-04-08 15:33:10

标签: java database java-ee tomcat

我在java应用程序中遇到问题。 我的JAVA应用程序基于servlet和JSP,并在类似于struts的自定义旧框架中编写。 问题是有时应用程序访问速度变慢,有时使用它会引发异常,例如连接数据库失败。 我发现代码块从哪里抛出异常,所有这些代码块都做了一些数据库工作。但问题是来自stackstrace,我无法确定确切的问题,比如问题发生了什么。 Stacktrace只告诉我抛出异常的方法,至少我理解的是什么。 这是一个堆栈跟踪,

Exception: java.lang.Exception: Failed to connect to database /
at example.example.example.examplemethod(example.java:1009)
at example.example.example.insert_prio(example.java:347)
at example.actions.example.runAction(example.java:87)
at example.kernel.exampleAppController.runActions(Unknown Source)
at example.kernel.exampleAppController.runRequest(Unknown Source)
at example.shells.example.TSFexampleDispatcher.runRequest(Unknown Source)
at example.shells.web.example.runRequest(Unknown Source)
at example.shells.web.example.service(Unknown Source)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at example.example.listingObjects.SessionFilter.doFilter(SessionFilter.java:65)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:204)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
at org.apache.catalina.valves.FastexampleAccessLogValve.invoke(FastexampleAccessLogValve.java:481)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:526)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:307)
at org.apache.jk.example.HandlerRequest.invoke(HandlerRequest.java:385)
at org.apache.jk.example.ChannelSocket.invoke(ChannelSocket.java:748)
at org.apache.jk.example.ChannelSocket.processConnection(ChannelSocket.java:678)
at org.apache.jk.example.SocketConnection.runIt(ChannelSocket.java:871)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
at java.lang.Thread.run(Thread.java:595)

请帮我弄清楚在这种情况下会出现什么问题。 还有什么可能会使应用程序变慢?当应用程序运行缓慢时,我们检查了数据库,它已启动并运行,我们还检查了应用程序服务器内存, 它也足够免费了。 服务器细节: os:Red Hat Linux jdk:1.5.0_03 tomcat:5.5.9 ram:16 gb

  

执行查询的部分代码

public void method_name() throws someException{

        connection_variable = database.connect("JNDI");


        String query = "SQL Query";

        variable = database.prepareStatement(query);

        try{    

            variable.setInt(1,this.variable1 );
            ..
            database.update(variable);
            database.commit();


        } catch (Exception e) {
            database.rollback();
        } finally {
            variable.close();
        }

0 个答案:

没有答案