站長(zhǎng)資訊網(wǎng)
        最全最豐富的資訊網(wǎng)站

        線上項(xiàng)目運(yùn)行中遇到的問(wèn)題解析

        最初只是異常提示數(shù)據(jù)庫(kù)連接不上, 連接池不夠..類(lèi)似這樣的:

        Error querying database. Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection

        第一次接觸服務(wù)器和線上項(xiàng)目, 慌的一皮, 不知道要怎么做, 百度說(shuō)是代碼有問(wèn)題, 有連接數(shù)據(jù)庫(kù)的連接沒(méi)關(guān)閉, 因?yàn)榇a是前同事寫(xiě)的, 我之前也沒(méi)參與過(guò)這個(gè)項(xiàng)目,一直費(fèi)盡心思想要定位到?jīng)]有關(guān)閉連接的代碼, 試過(guò)很多方法, 設(shè)置連接數(shù)據(jù)庫(kù)用戶(hù)權(quán)限等,最后還是聯(lián)系的前同事,他輕描淡寫(xiě)的把Mysql的最大連接數(shù)增加后,問(wèn)題解決了..

        安穩(wěn)的過(guò)了一段時(shí)間有了新需求, 這個(gè)項(xiàng)目增加了2個(gè)功能, 本地測(cè)試沒(méi)問(wèn)題后重新打包部署..

        結(jié)果整個(gè)項(xiàng)目都崩了..

        后臺(tái)訪問(wèn)不了, 終端的請(qǐng)求也請(qǐng)求不到了…癱了.. 頭皮發(fā)麻

        項(xiàng)目部署后正常執(zhí)行了, 但是訪問(wèn)不到網(wǎng)頁(yè), 情況是這樣的:

        設(shè)備也訪問(wèn)不到接口,獲取不到數(shù)據(jù)..

        日志是這樣的:

        九月 27, 2018 10:29:19 上午 org.apache.catalina.core.StandardWrapperValve invoke

        嚴(yán)重: Servlet.service() for servlet [DispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException:

        ### Error querying database. Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is org.apache.commons.dbcp.SQLNestedException: Cannot get a connection, pool error Timeout waiting for idle object

        ### The error may exist in file [C:UsersAdministratorDesktopapache-tomcat-7.0.70webappsROOTWEB-INFclassesmapper***.xml]

        ### The error may involve com.hyt.adv.selectMachineStateByMachineCode

        ### The error occurred while executing a query

        ### Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is org.apache.commons.dbcp.SQLNestedException: Cannot get a connection, pool error Timeout waiting for idle object] with root cause

        java.util.NoSuchElementException: Timeout waiting for idle object

        at org.apache.commons.pool.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:1134)

        at org.apache.commons.dbcp.PoolingDataSource.getConnection(PoolingDataSource.java:106)

        at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:1044)

        at org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(DataSourceUtils.java:111)

        at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:77)

        at org.mybatis.spring.transaction.SpringManagedTransaction.openConnection(SpringManagedTransaction.java:84)

        at org.mybatis.spring.transaction.SpringManagedTransaction.getConnection(SpringManagedTransaction.java:70)

        at org.apache.ibatis.executor.BaseExecutor.getConnection(BaseExecutor.java:337)

        at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:84)

        at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:62)

        at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:325)

        at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:156)

        at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:103)

        at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:83)

        at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:148)

        at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:141)

        at org.apache.ibatis.session.defaults.DefaultSqlSession.selectOne(DefaultSqlSession.java:77)

        at sun.reflect.GeneratedMethodAccessor66.invoke(Unknown Source)

        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

        at java.lang.reflect.Method.invoke(Method.java:498)

        at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:434)

        at com.sun.proxy.$Proxy16.selectOne(Unknown Source)

        at org.mybatis.spring.SqlSessionTemplate.selectOne(SqlSessionTemplate.java:167)

        at com.***.***.***.***.***(***.java:64)

        at com.***.***.***.***.***(***.java:439)

        at com.***.***.***.***.***(***.java:309)

        at sun.reflect.GeneratedMethodAccessor65.invoke(Unknown Source)

        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

        at java.lang.reflect.Method.invoke(Method.java:498)

        at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)

        at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133)

        at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:116)

        at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)

        at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)

        at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)

        at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:963)

        at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:897)

        at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)

        at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)

        at javax.servlet.http.HttpServlet.service(HttpServlet.java:650)

        at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)

        at javax.servlet.http.HttpServlet.service(HttpServlet.java:731)

        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)

        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)

        at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)

        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)

        at com.***.***.***.***.***(***.java:57)

        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)

        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)

        at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:197)

        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)

        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)

        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)

        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:218)

        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)

        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505)

        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:169)

        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)

        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)

        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:442)

        at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1082)

        at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:623)

        at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316)

        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)

        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)

        at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)

        at java.lang.Thread.run(Thread.java:745)

        九月 27, 2018 10:29:19 上午 org.apache.catalina.core.StandardWrapperValve invoke

        嚴(yán)重: Servlet.service() for servlet [DispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException:

        ### Error querying database. Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is org.apache.commons.dbcp.SQLNestedException: Cannot get a connection, pool error Timeout waiting for idle object

        ### The error may exist in file [C:UsersAdministratorDesktopapache-tomcat-7.0.70webappsROOTWEB-INFclassesmapper***.xml]

        ### The error may involve com.hyt.adv.selectMachineStateByMachineCode

        ### The error occurred while executing a query

        ### Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is org.apache.commons.dbcp.SQLNestedException: Cannot get a connection, pool error Timeout waiting for idle object] with root cause

        java.util.NoSuchElementException: Timeout waiting for idle object

        at org.apache.commons.pool.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:1134)

        at org.apache.commons.dbcp.PoolingDataSource.getConnection(PoolingDataSource.java:106)

        at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:1044)

        at org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(DataSourceUtils.java:111)

        at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:77)

        at org.mybatis.spring.transaction.SpringManagedTransaction.openConnection(SpringManagedTransaction.java:84)

        at org.mybatis.spring.transaction.SpringManagedTransaction.getConnection(SpringManagedTransaction.java:70)

        at org.apache.ibatis.executor.BaseExecutor.getConnection(BaseExecutor.java:337)

        at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:84)

        at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:62)

        at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:325)

        at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:156)

        at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:103)

        at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:83)

        at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:148)

        at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:141)

        at org.apache.ibatis.session.defaults.DefaultSqlSession.selectOne(DefaultSqlSession.java:77)

        at sun.reflect.GeneratedMethodAccessor66.invoke(Unknown Source)

        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

        at java.lang.reflect.Method.invoke(Method.java:498)

        at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:434)

        at com.sun.proxy.$Proxy16.selectOne(Unknown Source)

        at org.mybatis.spring.SqlSessionTemplate.selectOne(SqlSessionTemplate.java:167)

        at com.***.***.***.***.***(***.java:64)

        at com.***.***.***.***.***(***.java:439)

        at com.***.***.***.***.***(***.java:309)

        at sun.reflect.GeneratedMethodAccessor65.invoke(Unknown Source)

        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

        at java.lang.reflect.Method.invoke(Method.java:498)

        at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)

        at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133)

        at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:116)

        at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)

        at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)

        at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)

        at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:963)

        at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:897)

        at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)

        at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)

        at javax.servlet.http.HttpServlet.service(HttpServlet.java:650)

        at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)

        at javax.servlet.http.HttpServlet.service(HttpServlet.java:731)

        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)

        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)

        at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)

        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)

        at com.hyt.advcompany.config.myCORSFilter.doFilter(myCORSFilter.java:57)

        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)

        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)

        at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:197)

        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)

        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)

        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)

        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:218)

        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)

        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505)

        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:169)

        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)

        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)

        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:442)

        at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1082)

        at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:623)

        at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316)

        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)

        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)

        at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)

        at java.lang.Thread.run(Thread.java:745)

        試著再把最大連接數(shù)調(diào)大…

        — 查看最大連接數(shù)

        show variables like '%max_connections%';

        — 設(shè)置最大連接數(shù)

        set global max_connections=10000;

        不管用了.

        又陷入了僵局…

        最后還是請(qǐng)教前同事來(lái)救命..

        前同事二話不說(shuō),

        復(fù)制遷移數(shù)據(jù)庫(kù),把5臺(tái)服務(wù)器搭了個(gè)Lvs+nginx+keepalived主從熱備集群

        (忽然想到了他離職前好像說(shuō)讓我搭個(gè)集群,事情太多,一直沒(méi)弄)

        原來(lái)是項(xiàng)目前期, 后臺(tái)連接和終端請(qǐng)求訪問(wèn)量少, 小幾千.. 服務(wù)器可以承受..

        越到后來(lái), 終端連接訪問(wèn)的數(shù)量直線上升, 服務(wù)器就抗不住了..

        就是高并發(fā)了…

        集群搭好后用nginx反向代理把所有請(qǐng)求分發(fā)給其他的5臺(tái)服務(wù)器…

        然而又發(fā)現(xiàn)新的問(wèn)題:

        請(qǐng)求只能接收一部分,另外有一部分的請(qǐng)求總是接收不到..

        前同事也沒(méi)辦法了…

        略過(guò)各種看日志找原因….

        服務(wù)器是windows server 2008 R2

        nginx是官方版1.13.6

        查了很久才知道 windows版本的nginx有句柄限制,

        單個(gè)工作進(jìn)程最大只能接收1024個(gè)請(qǐng)求.. 4個(gè)最多還不到5000…

        又找怎么解除限制…

        原來(lái)有個(gè)專(zhuān)門(mén)破解的nginx下載地址:

        http://nginx-win.ecsds.eu/download/

        隨便哪個(gè)版本都行..

        下載下來(lái)趕緊在服務(wù)器上啟動(dòng)..

        結(jié)果啟動(dòng)不了.. 類(lèi)似于不兼容的那種,直接應(yīng)用程序停止響應(yīng).x*000000

        MDZZ..

        應(yīng)該是哪里缺少文件…

        卻又不顯示缺少什么文件..

        逼的不行了.. 把所有的版本都下載下來(lái)了

        一個(gè)一個(gè)的試, 還是不行,

        最后只能把文檔下來(lái)啃文檔…

        靠谷歌翻譯擼完文檔才明白…

        啟動(dòng)前要安裝C++組件.. 而且64位的系統(tǒng), 64位和32位都要安裝

        32位的只安裝32位的..

        安裝完了, 把注冊(cè)表注冊(cè)一下,把dll文件放在系統(tǒng)文件目錄里.

        再次啟動(dòng)..

        完美運(yùn)行…

        趕緊測(cè)試一下, 然后更改配置, 上傳到服務(wù)器啟動(dòng)..

        問(wèn)題解決!!!!

        贊(0)
        分享到: 更多 (0)
        網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)
        主站蜘蛛池模板: 国产精品视频一区二区三区不卡| 亚洲国产成人久久精品99| 欧美亚洲国产成人精品| 亚洲AⅤ永久无码精品AA| 亚洲欧美日韩精品久久| 久久永久免费人妻精品下载| 久久免费99精品国产自在现线| 精品国产自在在线在线观看| 久久久精品2019免费观看| 日韩福利视频精品专区| 99久久精品免费| 国产精品久久久久久福利69堂| 日韩精品一区二区三区中文| 久久精品视频91| 国产精品区AV一区二区| 久久精品www| 国产99视频精品一区| 久久综合国产乱子伦精品免费| 中文字幕精品久久| 四虎精品亚洲一区二区三区| 国亚洲欧美日韩精品| 国产成人精品免费视频大全| 久久99精品国产99久久6男男| 国产精品国产亚洲精品看不卡| 亚洲av午夜福利精品一区人妖 | 亚洲av无码国产精品夜色午夜| 精品国产欧美一区二区三区成人| 97精品在线播放| 亚洲午夜久久久精品影院| 精品在线免费观看| 97久久精品无码一区二区天美| 精品少妇无码AV无码专区| 欧美精品v欧洲精品| 日韩精品无码一本二本三本| 亚洲av成人无码久久精品| 蜜国产精品jk白丝AV网站| 日韩精品无码专区免费播放| 亚洲av无码精品网站| 精品亚洲麻豆1区2区3区| 老司机午夜精品视频资源| 国产在线精品免费aaa片|