2015-09-02 3 views
1

Привет, я работаю с WSO2 DSS 3.0.0 и postgresql.Wso2dss соединение закрыто исключение из postgresql DB

Я развернуты несколько служб данных и называются мой Wso2esb прокси-сервисы все работает нормально, но после того, как какой-то момент времени я облицовочный ошибку в моем ДСС, как показано ниже

DS Fault Message: Error in 'SQLQuery.processNormalQuery' 
DS Code: DATABASE_ERROR 
Source Data Service:- 
Name: tlocationtrack_DataService2.0 
Location: /tlocationtrack_DataService2.0.dbs 
Description: N/A 
Default Namespace: http://ws.wso2.org/dataservice 
Current Request Name: Insertinto_tlocationtrack_OP 
Current Params: {geolocation=17.720311,78.473837, userid=2579878364153500, trackdate=1441129831385, accuracy=54.0, deviceid=353323065783531} 
Nested Exception:- 
DS Fault Message: Error in 'createProcessedPreparedStatement' 
DS Code: UNKNOWN_ERROR 
Nested Exception:- 
org.postgresql.util.PSQLException: This connection has been closed. 


     at org.wso2.carbon.dataservices.core.description.query.SQLQuery.processNormalQuery(SQLQuery.java:808) 
     at org.wso2.carbon.dataservices.core.description.query.SQLQuery.runQuery(SQLQuery.java:2098) 
     at org.wso2.carbon.dataservices.core.description.query.Query.execute(Query.java:252) 
     at org.wso2.carbon.dataservices.core.engine.CallQuery.executeElement(CallQuery.java:179) 
     at org.wso2.carbon.dataservices.core.engine.CallQueryGroup.executeElement(CallQueryGroup.java:111) 
     at org.wso2.carbon.dataservices.core.engine.OutputElement.execute(OutputElement.java:89) 
     at org.wso2.carbon.dataservices.core.description.operation.Operation.execute(Operation.java:71) 
     at org.wso2.carbon.dataservices.core.engine.DataService.invoke(DataService.java:569) 
     at org.wso2.carbon.dataservices.core.engine.DSOMDataSource.execute(DSOMDataSource.java:99) 
     at org.wso2.carbon.dataservices.core.engine.DSOMDataSource.serialize(DSOMDataSource.java:110) 
     at org.wso2.carbon.dataservices.core.engine.DSOMDataSource.getReader(DSOMDataSource.java:116) 
     at org.apache.axiom.om.impl.llom.OMSourcedElementImpl.getDirectReader(OMSourcedElementImpl.java:225) 
     at org.apache.axiom.om.impl.llom.OMSourcedElementImpl.getXMLStreamReader(OMSourcedElementImpl.java:498) 
     at org.apache.axiom.om.impl.llom.OMSourcedElementImpl.getXMLStreamReaderWithoutCaching(OMSourcedElementImpl.java:507) 
     at org.wso2.carbon.dataservices.core.DBUtils.cloneAndReturnBuiltElement(DBUtils.ja 

va:756) 
      at org.wso2.carbon.dataservices.core.dispatch.DataServiceRequest.dispatch(DataServiceRequest.java:288) 
    : 
    at java.lang.Thread.run(Thread.java:745) 
Caused by: DS Fault Message: Error in 'createProcessedPreparedStatement' 
DS Code: UNKNOWN_ERROR 
Nested Exception:- 
org.postgresql.util.PSQLException: This connection has been closed. 

     at org.wso2.carbon.dataservices.core.description.query.SQLQuery.createProcessedPreparedStatement(SQLQuery.java:1379) 
     at org.wso2.carbon.dataservices.core.description.query.SQLQuery.processNormalQuery(SQLQuery.java:766) 
     ... 52 more 
Caused by: org.postgresql.util.PSQLException: This connection has been closed. 
     at org.postgresql.jdbc2.AbstractJdbc2Connection.checkClosed(AbstractJdbc2Connection.java:714) 
     at org.postgresql.jdbc3.AbstractJdbc3Connection.prepareStatement(AbstractJdbc3Connection.java:361) 
     at sun.reflect.GeneratedMethodAccessor54.invoke(Unknown Source) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
     at java.lang.reflect.Method.invoke(Method.java:606) 
     at org.apache.tomcat.jdbc.pool.ProxyConnection.invoke(ProxyConnection.java:126) 
     at org.apache.tomcat.jdbc.pool.JdbcInterceptor.invoke(JdbcInterceptor.java:99) 
     at org.wso2.carbon.ndatasource.rdbms.ConnectionRollbackOnReturnInterceptor.invoke(ConnectionRollbackOnReturnInterceptor.java:51) 
     at org.apache.tomcat.jdbc.pool.JdbcInterceptor.invoke(JdbcInterceptor.java:99) 
     at org.apache.tomcat.jdbc.pool.interceptor.AbstractCreateStatementInterceptor.invoke(AbstractCreateStatementInterceptor.java:67) 
     at org.apache.tomcat.jdbc.pool.JdbcInterceptor.invoke(JdbcInterceptor.java:99) 
     at org.apache.tomcat.jdbc.pool.interceptor.ConnectionState.invoke(ConnectionState.java:153) 
     at org.apache.tomcat.jdbc.pool.JdbcInterceptor.invoke(JdbcInterceptor.java:99) 
     at org.apache.tomcat.jdbc.pool.TrapException.invoke(TrapException.java:41) 
     at org.apache.tomcat.jdbc.pool.JdbcInterceptor.invoke(JdbcInterceptor.java:99) 
     at org.apache.tomcat.jdbc.pool.DisposableConnectionFacade.invoke(DisposableConnectionFacade.java:63) 
     at com.sun.proxy.$Proxy12.prepareStatement(Unknown Source) 
     at org.wso2.carbon.dataservices.core.description.query.SQLQuery.createProcessedPreparedStatement(SQLQuery.java:1305) 

после этого все службы данных бросая ту же ошибку, что станет основной причиной этой ошибки, и любые изменения необходимо сделать, чтобы избежать этой ошибки.

Спасибо ... !!

ответ

0

Как настроено подключение к базе данных данных? Вы используете Carbon DataSource (вы должны!)? Если да, то вы определили тестовый запрос и включили опцию «тест по заимствованию»?

Исключение, которое вы получаете иногда, вызвано сервером базы данных, настроенным на закрытие незанятых соединений. Когда вы не настроите свой пул соединений правильно, он не обнаружит, что соединение было закрыто, и оно будет обрабатывать его на клиентский код (ваша служба данных), вызывая эту ошибку.

+0

Привет, Филипп Севестре благодарит за повторное использование, используя источник данных с углеродом, и его «тест по заимствованию» установлен как ложный. Должен ли я сделать это правдой, чтобы избежать подключения к закрытому соединению. – user4045063

+0

Привет. Да, вам нужно установить «tes on loan» в true, чтобы проверять соединения до того, как их вытащили из пула. –

+0

Привет, Филипп Севестре, я изменил тест на заимствование до истины и его работы, спасибо. – user4045063

Смежные вопросы