2013-04-10 4 views
5

से जुड़ा नहीं है मेरे पास जब्स, सीम, हाइबरनेट और एच 2 के साथ एक एप्लिकेशन है। मैंने बाहरी फाइल से डेटाबेस में डेटा आयात करने के लिए एक सरल कार्रवाई लिखा।के कारण: java.sql.SQLException: कनेक्शन एक प्रबंधित कनेक्शन.org.jboss.resource.ada

@Name("importAction") 
@AutoCreate 
@Scope(ScopeType.CONVERSATION) 
@Transactional 
public class ImportCosAction extends AbstractAction { 

saveOrUpdate(member); 

protected void saveOrUpdate(AbstractEntity entity) { 
    final Session session = getSession(); 
     session.saveOrUpdate(entity); 
    flushSession(); 
} 

यह संख्या के लिए अपेक्षा के अनुरूप हालांकि, कुछ बिंदु पर मैं निम्नलिखित अपवाद मिल काम करता है:

16:50:13,558 ERROR [JDBCExceptionReporter] Connection is not associated with a managed connec[email protected]3c4b0529 
16:50:13,558 ERROR [AbstractFlushingEventListener] Could not synchronize database state with session 
org.hibernate.exception.GenericJDBCException: Could not execute JDBC batch update 
     at org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:126) 
     at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:114) 
     at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66) 
     at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:275) 
     at org.hibernate.jdbc.AbstractBatcher.prepareStatement(AbstractBatcher.java:114) 
     at org.hibernate.jdbc.AbstractBatcher.prepareStatement(AbstractBatcher.java:109) 
     at org.hibernate.jdbc.AbstractBatcher.prepareBatchStatement(AbstractBatcher.java:244) 
     at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2252) 
     at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2688) 
     at org.hibernate.action.EntityInsertAction.execute(EntityInsertAction.java:79) 
     at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:279) 
     at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:263) 
     at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:167) 
     at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:321) 
     at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:50) 
     at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1027) 
     at org.jboss.seam.persistence.HibernateSessionProxy.flush(HibernateSessionProxy.java:187) 
     at com.capecapital.dealmarket.usecase.AbstractAction.flushSession(AbstractAction.java:434) 
     at com.capecapital.dealmarket.usecase.registration.AbstractRegistrationAction.createNewAccount(AbstractRegistrationAction.java:251) 
     at com.capecapital.dealmarket.usecase.registration.RegistrationAction.primRegister(RegistrationAction.java:71) 
     at com.capecapital.dealmarket.usecase.registration.AbstractRegistrationAction.register(AbstractRegistrationAction.java:146) 
     at com.capecapital.dealmarket.usecase.importCoS.ImportCosAction.register(ImportCosAction.java:401) 
     at com.capecapital.dealmarket.usecase.importCoS.ImportCosAction.execute(ImportCosAction.java:154) 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
     at java.lang.reflect.Method.invoke(Method.java:597) 
     at org.jboss.seam.util.Reflections.invoke(Reflections.java:22) 
     at org.jboss.seam.intercept.RootInvocationContext.proceed(RootInvocationContext.java:32) 
     at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:56) 
     at org.jboss.seam.transaction.RollbackInterceptor.aroundInvoke(RollbackInterceptor.java:28) 
     at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68) 
     at org.jboss.seam.transaction.TransactionInterceptor$1.work(TransactionInterceptor.java:97) 
     at org.jboss.seam.util.Work.workInTransaction(Work.java:47) 
     at org.jboss.seam.transaction.TransactionInterceptor.aroundInvoke(TransactionInterceptor.java:91) 
     at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68) 
     at org.jboss.seam.core.MethodContextInterceptor.aroundInvoke(MethodContextInterceptor.java:44) 
     at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68) 
     at org.jboss.seam.intercept.RootInterceptor.invoke(RootInterceptor.java:107) 
     at org.jboss.seam.intercept.JavaBeanInterceptor.interceptInvocation(JavaBeanInterceptor.java:185) 
     at org.jboss.seam.intercept.JavaBeanInterceptor.invoke(JavaBeanInterceptor.java:103) 
     at com.capecapital.dealmarket.usecase.importCoS.ImportCosAction_$$_javassist_seam_18.execute(ImportCosAction_$$_javassist_seam_18.java) 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
     at java.lang.reflect.Method.invoke(Method.java:597) 
     at org.jboss.el.util.ReflectionUtil.invokeMethod(ReflectionUtil.java:335) 
     at org.jboss.el.util.ReflectionUtil.invokeMethod(ReflectionUtil.java:280) 
     at org.jboss.el.parser.AstMethodSuffix.getValue(AstMethodSuffix.java:59) 
     at org.jboss.el.parser.AstMethodSuffix.invoke(AstMethodSuffix.java:65) 
     at org.jboss.el.parser.AstValue.invoke(AstValue.java:96) 
     at org.jboss.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:276) 
     at com.sun.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:68) 
     at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:88) 
     at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102) 
     at javax.faces.component.UICommand.broadcast(UICommand.java:387) 
     at org.ajax4jsf.component.AjaxViewRoot.processEvents(AjaxViewRoot.java:329) 
     at org.ajax4jsf.component.AjaxViewRoot.broadcastEventsForPhase(AjaxViewRoot.java:304) 
     at org.ajax4jsf.component.AjaxViewRoot.processPhase(AjaxViewRoot.java:261) 
     at org.ajax4jsf.component.AjaxViewRoot.processApplication(AjaxViewRoot.java:474) 
     at org.openfaces.ajax.richfaces.A4JAjaxViewRoot.access$301(A4JAjaxViewRoot.java:28) 
     at org.openfaces.ajax.richfaces.A4JAjaxViewRoot$1.parentProcessApplication(A4JAjaxViewRoot.java:51) 
     at org.openfaces.ajax.CommonAjaxViewRoot.processApplication(CommonAjaxViewRoot.java:197) 
     at org.openfaces.ajax.richfaces.A4JAjaxViewRoot.processApplication(A4JAjaxViewRoot.java:112) 
     at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:82) 
     at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100) 
     at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118) 
     at javax.faces.webapp.FacesServlet.service(FacesServlet.java:265) 
     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) 
     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
     at org.openfaces.util.ResourceFilter.doFilter(ResourceFilter.java:99) 
     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) 
     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
     at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:83) 
     at org.jboss.seam.web.RewriteFilter.doFilter(RewriteFilter.java:63) 
     at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69) 
     at org.jboss.seam.web.RedirectFilter.doFilter(RedirectFilter.java:45) 
     at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69) 
     at com.capecapital.dealmarket.filter.UserAgentFilter.doFilter(UserAgentFilter.java:46) 
     at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69) 
     at org.jboss.seam.web.IdentityFilter.doFilter(IdentityFilter.java:40) 
     at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69) 
     at org.jboss.seam.web.MultipartFilter.doFilter(MultipartFilter.java:90) 
     at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69) 
     at com.capecapital.dealmarket.filter.DealmarketExceptionFilter.doFilter(DealmarketExceptionFilter.java:72) 
     at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69) 
     at org.jboss.seam.web.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:42) 
     at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69) 
     at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:206) 
     at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290) 
     at org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:388) 
     at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:515) 
     at org.jboss.seam.web.Ajax4jsfFilter.doFilter(Ajax4jsfFilter.java:56) 
     at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69) 
     at com.capecapital.dealmarket.filter.RequestLoggingFilter.doFilter(RequestLoggingFilter.java:90) 
     at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69) 
     at org.jboss.seam.web.HotDeployFilter.doFilter(HotDeployFilter.java:53) 
     at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69) 
     at org.jboss.seam.web.LoggingFilter.doFilter(LoggingFilter.java:60) 
     at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69) 
     at org.jboss.seam.servlet.SeamFilter.doFilter(SeamFilter.java:158) 
     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) 
     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
     at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96) 
     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) 
     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
     at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:235) 
     at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) 
     at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:190) 
     at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:433) 
     at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:92) 
     at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.process(SecurityContextEstablishmentValve.java:126) 
     at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:70) 
     at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) 
     at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) 
     at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) 
     at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:330) 
     at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:829) 
     at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:598) 
     at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447) 
     at java.lang.Thread.run(Thread.java:662) 
Caused by: java.sql.SQLException: Connection is not associated with a managed connec[email protected]3c4b0529 
     at org.jboss.resource.adapter.jdbc.WrappedConnection.lock(WrappedConnection.java:81) 
     at org.jboss.resource.adapter.jdbc.WrappedStatement.lock(WrappedStatement.java:64) 
     at org.jboss.resource.adapter.jdbc.WrappedStatement.executeBatch(WrappedStatement.java:767) 
     at org.hibernate.jdbc.BatchingBatcher.doExecuteBatch(BatchingBatcher.java:70) 
     at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:268) 
     ... 117 more 

उत्तर

6

यह त्रुटि है कि आपके कोड एक कनेक्शन अब वैध नहीं है कि (यानी उपयोग कर रहा है इसका मतलब है। किसी कनेक्शन त्रुटि या अमान्य कनेक्शन कैश के कारण बंद/नष्ट कनेक्शन, जहां कैश किए गए कनेक्शन को कोड अपस्ट्रीम के किसी अन्य भाग द्वारा बंद किया जाता है)। आपके मामले में पूल से कनेक्शन आईडी @3c4b0529 है। तो आप यह देखने के लिए TRACE स्तर लॉगिंग में इसका उल्लेख कर सकते हैं कि क्या आप यह पता लगा सकते हैं कि कनेक्शन बंद क्यों हुआ था (कुछ त्रुटि के कारण डीबी मारे गए कनेक्शन या नेटवर्क समस्याएं या कनेक्शन को गलत तरीके से संभालने वाले एप्लिकेशन कोड)।

  1. आप अपने कोड के रूप में लंबे सौदे को पूरा करने के लिए नहीं लेने के लिए अनुकूलन करना चाहिए। दूसरा विकल्प TransactionManager सेम के लिए deploy/transaction-jboss-beans.xml में लेन-देन समय बाहर बढ़ाने के लिए है: -

    .... ....

    डिफ़ॉल्ट मान 5 मिनट (300 सेकंड) है। इस लेन-देन के समय को बढ़ाने से मदद मिल सकती है लेकिन यह वास्तव में मूल कारण को हल नहीं करता है, जो आपके आवेदन में लंबे समय तक चलने वाले लेनदेन है। लेनदेन के समय को बढ़ाने का दुष्प्रभाव यह है कि आप संसाधनों को अधिक समय तक रखते हैं ताकि यह जेबॉस में अन्य सेवाओं के प्रदर्शन पर नकारात्मक प्रभाव डाल सके।

मुझे आशा है कि आप उत्पादन में h2 का उपयोग करने की योजना नहीं बना रहे हैं। h2 दृढ़ता के लिए उत्पादन के उपयोग के लिए नहीं है।

  1. आपको यह सुनिश्चित करने के लिए अपनी डेटा स्रोत सेटिंग्स भी जांचनी चाहिए कि idle-timeout-minutes अक्षम नहीं है (0 पर सेट करें)। डिफ़ॉल्ट 15 मिनट है, यदि आप उस अवधि से अधिक समय तक लेनदेन के बीच निष्क्रिय हो रहे हैं तो आप इसे बढ़ा सकते हैं।

  2. आखिरकार, सुनिश्चित करें कि आप किसी डेटा स्रोत कनेक्शन ऑब्जेक्ट्स या कथन को कैश नहीं कर रहे हैं जहां आप एक पुराने कनेक्शन या बहुत लंबे समय तक एक कथन पर हो रहे हैं।

+0

जवाब देने के लिए धन्यवाद। दुर्भाग्य से टाइमआउट में वृद्धि ने समस्या का समाधान नहीं किया .. – user2266685

+0

क्या आप वास्तव में किसी भी समय लेन-देन का समय देखते थे? मैंने 3 संभावित समाधानों पर चर्चा की। आपके आवेदन को कोड करने और कॉन्फ़िगर करने के आधार पर समाधान अलग-अलग होगा। – CoolBeans

+0

नहीं, मैंने इसे समय-समय पर नहीं देखा, लेकिन जब मैं आयात करने के लिए रिकॉर्ड्स की संख्या को कम करता हूं तो सब कुछ ठीक काम करता है। – user2266685

0

हाल ही में मैं एक ही समस्या का सामना करना पड़ गया था, यह डिबगिंग के बाद मैं यह पता लगाने की है कि मैं कनेक्शन बंद करने गया था इससे पहले कि मैं एक वक्तव्य पर अमल सुनिश्चित करें कि आपके कनेक्शन अभी भी खुला है और वैध है।

संबंधित मुद्दे