2011-10-11 13 views
8

के साथ वसंत अंतर्दृष्टि दुर्घटनाग्रस्त हो जाती है, मैं अपने spring mvc वेबपैप का पता लगाने के लिए वसंत अंतर्दृष्टि का उपयोग करना चाहता हूं। जब टीसी सर्वर 2.5 डेवलपर संस्करण शुरू, अपने आवेदन आता है, लेकिन मैं कंसोल में निम्न संदेश देखें:"असंतुलित फ्रेम स्टैक"

20.10.2011 09:24:24 com.springsource.insight.intercept.trace.SimpleFrameBuilder enter 
FATAL: Frame stack exceeded MAX_FRAMES_PER_TRACE limit or has been aborted limit: 3000 frameCount: 3000 aborted: false 
20.10.2011 09:24:24 com.springsource.insight.collection.errorhandling.AdviceErrorHandlingAspect ajc$around$com_springsource_insight_collection_errorhandling_AdviceErrorHandlingAspect$1$e76a6b03 
FATAL: Error swallowed in advice adviceexecution(void com.springsource.insight.collection.AbstractOperationCollectionAspect.afterReturning(Object, JoinPoint.StaticPart)) 

-

java.lang.IllegalStateException: Imbalanced frame stack! (exit() called too many times) 
com.springsource.insight.intercept.trace.ThreadLocalFrameBuilder.exit(ThreadLocalFrameBuilder.java:61) 
com.springsource.insight.collection.DefaultOperationCollector.exit(DefaultOperationCollector.java:111) 
com.springsource.insight.collection.DefaultOperationCollector.exitNormal(DefaultOperationCollector.java:67) 
com.springsource.insight.plugin.springtx.TransactionOperationCollectionAspect.ajc$afterReturning$com_springsource_insight_plugin_springtx_TransactionOperationCollectionAspect$2$e13fb3a0(TransactionOperationCollectionAspect.aj:61) 
org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:724) 
org.springframework.transaction.interceptor.TransactionAspectSupport.commitTransactionAfterReturning(TransactionAspectSupport.java:393) 
org.springframework.transaction.aspectj.AbstractTransactionAspect.ajc$afterReturning$org_springframework_transaction_aspectj_AbstractTransactionAspect$3$2a73e96c(AbstractTransactionAspect.aj:78) 
... 

मैं इस संदेश के बाद कुछ नियंत्रक कार्यों कॉल कर सकते हैं, लेकिन किसी बिंदु पर सर्वर सिर्फ मेरे अनुरोधों को संभालने से इंकार कर देता है और ब्राउज़र में एक ही स्टैक ट्रेस भेजता है।

क्या किसी को इस समस्या का अनुभव हुआ है? यहां तक ​​कि अंतर्दृष्टि प्लगइन annotation, hibernate, jdbc या spring-tx समस्या को हल नहीं करता है।

उत्तर

8

Jon Travis लगभग बिल्कुल सही है, लेकिन प्रणाली संपत्ति

-Dinsight-max-frames 

डिफ़ॉल्ट मान 3000 है अंतर्दृष्टि के रूप में देखा है -इंटरसेप्ट-1.5.1.SR2.jar: com.springsource.insight.intercept.trace.FrameBuilder

-Dinsight-max-frames=6000 पर मान बदलने से मेरे लिए समस्या ठीक हो गई।

+0

हो सकता है क्योंकि विकल्प के नीचे जॉन-ट्रेविस उल्लेख -Dinsite.max नहीं है।फ्रेम – chrislovecnm

+0

@chrislovecnm विकल्प '-Dinsight-max-frames' है। इस के बीच बहुत सूक्ष्म अंतर और @ जोन ट्रैविस ने क्या लिखा। बिंदुओं के बजाय डैश नोट करें। –

8

इस कोड में से कुछ को हाल के संस्करणों में सुधार किया गया है।

आप स्प्रिंग जानकारी देने के लिए चाहते हो सकता है 1.5.1 एक कोशिश - यह टीसी सर्वर 2.6.1 के साथ आता है और के माध्यम से springsource.org/insight

संपादित करें उपलब्ध है: इस मुद्दे को आप देख रहे हैं कि एक ही ट्रेस करने का प्रयास किया है बहुत सारे फ्रेम जमा करें (डिफ़ॉल्ट रूप से यह 1000 पर गिनती रोकता है)। ऐसा इसलिए है क्योंकि आपका एप्लिकेशन स्टार्टअप पर कई SQL कॉल कर सकता है, या कई अन्य वाद्ययंत्र कॉल कर सकता है। एक बार यह पता चला है, यह फ्रेम इकट्ठा करना बंद कर देगा और (वर्तमान में) असंतुलित फ्रेम ढेर प्राप्त करें। त्रुटि आपके मामले के लिए सौम्य है।

आप जावा sysproperty (insight.max.frames) सेट करके अधिकतम फ्रेम्स को अधिकतम में बढ़ा सकते हैं।

bin/setenv.sh में, बस JVM_OPTS में जोड़ें:

-Dinsight.max.frames=2000 
+0

हाय। इस संकेत के लिए धन्यवाद। अब मुझे केवल एप्लिकेशन स्टार्टअप में त्रुटि मिलती है, लेकिन केवल एक बार। बाद में मैं बिना किसी सीमा के अपने आवेदन के साथ काम कर सकता हूं। शायद कोई मुझे पहली त्रुटि का कारण बता सकता है, लेकिन जब तक मैं अंतर्दृष्टि वसंत कर सकता हूं, सब कुछ ठीक है;) – powerMicha

+0

आपके विस्तृत स्पष्टीकरण के लिए धन्यवाद। दरअसल हम स्टार्टअप पर बहुत सी एसक्यूएल कॉल कर रहे हैं। लेकिन 50000 तक अंतर्दृष्टि.मैक्स.फ्रेम को भी बदलना संदेश को ठीक नहीं करता है। मैं यह पता लगाने की कोशिश करूंगा कि कौन से कथन त्रुटियों का कारण बन रहे हैं और उन्हें अनुकूलित करने का प्रयास करें। – powerMicha

+0

बीटीडब्ल्यू: sysproperty को बदलना प्रतीत होता है फ्रेम के # प्रभाव को प्रभावित नहीं करता है। ऊपर मैं संदेश देख सकता हूं: 'फ़्रेम स्टैक MAX_FRAMES_PER_TRACE सीमा से अधिक हो गया है या निरस्त सीमा समाप्त हो गई है: 3000 फ्रेमकाउंट: 3000 निरस्त: झूठा' जो sysproperty – powerMicha

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