2012-06-15 134 views
1

在下面的語句中的「coldfusion.runtime.RWLock」參考:什麼是堆棧跟蹤

java.lang.Object.wait(Object.java:???)[Native Method] 
- waiting on <0x6ab0eb48> (a coldfusion.runtime.RWLock) 
coldfusion.runtime.RWLock.waitForLock(RWLock.java:154) 

什麼是「0x6ab0eb48」是指什麼?它是堆上的內存地址嗎?這是對堆棧的某種引用嗎?是否有可能將該引用轉換爲像導致阻塞的代碼行一樣有用?

在不同時間發生的同一問題的全堆棧跟蹤。 (Native Method) - 在coldfusion.runtime的coldfusion.runtime.RWLock.waitForLock(RWLock.java:154)上等待[0x00000000e0eac670](一個coldfusion.runtime.RWLock)。 RWLock.requestWriteLock(RWLock.java:124) - 在coldfusion.runtime.LockManager.requestNamedLock(LockManager.java)上的coldfusion.runtime.RWLock.requestLock(RWLock.java:46)處鎖定[0x00000000e0eac670](一個coldfusion.runtime.RWLock) :73)at coldfusion.tagext.lang.LockTag.doStartTag(LockTag.java:186)at cfmodules2eJOModule $ CD35DE93ADBE111EADECF17DDC3D9E362etransfer173107414 $ funcSETMODULECONFIGSMEMENTO.runFunction(D:\ JO3 \ jobOffice \ config \ transfer \ definitions \ modules.JOModule $ CD35DE93ADBE111EADECF17DDC3D9E36.transfer: 193)在coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:418)at coldfusion.filter.SilentFilter.invoke(SilentFilter.java:47)at coldfusion.runtime.UDFMethod $ ReturnTypeFilter.invoke (UDFMethod.java:360)at coldfusion.runtime.UDFMethod $ ArgumentCollectionFilter.invoke(UDFMethod.java:324)at coldfusion.filter.FunctionAccessFilter.invoke(FunctionAccessFilter.java:59)at coldfusion.runtime.UDFMethod.runFilterChain(UDFMethod。在Coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:320)at coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:453)at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:463) coldfusion.runtime.CfJspPage._invoke(CfJspPage.java:2222)at coldfusion.tagext.lang.InvokeTag.doEndTag(InvokeTag.java:362)at coldfusion.runtime.CfJspPage._emptyTcfTag(CfJspPage.java:2662)at cfMethodInvoker2ecfc210361352 $ funcINVOKEMETHOD在Coldfusion.filter.SilentFilter.invoke處使用coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:418).runFunction(D:\ JO3 \ jobOffice \ transfer \ com \ dynamic \ MethodInvoker.cfc:47)(SilentFilter.java: 47)at coldfusion.runtime.UDFMethod $ ReturnTypeFilter.invoke(UDFMethod.java:360)at coldfusion.runtime.UDFMethod $ ArgumentColl在coldfusion.runtime.UDFMethod.invoke(UDFMethod)處的coldfusion.runtime.UDFMethod.runFilterChain(UDFMethod.java:277)處的coldfusion.filter.FunctionAccessFilter.invoke(FunctionAccessFilter.java:59)處的ectionFilter.invoke(UDFMethod.java:324) Coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:448)at coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:308)at coldfusion.runtime.CfJspPage._invoke(CfJspPage.java:2272)在cfTransferPopulator2ecfc918825853 $ funcPOPULATEONETOMANY.runFunction(d:\ JO3 \ jobOffice \轉印\ COM \動態\ TransferPopulator.cfc:113)在coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:418)在coldfusion.filter.SilentFilter.invoke( SilentFilter.java:47)在coldfusion.runtime.UDFMethod $ ReturnTypeFilter.invoke(UDFMethod.java:360)在coldfusion.runtime.UDFMethod $ ArgumentCollectionFilter.invoke(UDFMethod.java:324)在coldfusion.filter.FunctionAccessFilter.invoke(FunctionAccessFilter .java:59)在coldfusion.runtime.UDFMethod.runFilterChain(UDFMethod.java:2 77)在coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:192)在coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:448)在coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:308)在Coldfusion。在coldfusion.runtime.UDFMethod.invoke(UDFMethod.java)上的cfDynamicManager2ecfc127705980 $ funcPOPULATEONETOMANY.runFunction(D:\ JO3 \ jobOffice \ transfer \ com \ dynamic \ DynamicManager.cfc:93)上的runtime.CfJspPage._invoke(CfJspPage.java:2272) :418)at coldfusion.filter.SilentFilter.invoke(SilentFilter.java:47)at coldfusion.runtime.UDFMethod $ ReturnTypeFilter.invoke(UDFMethod.java:360)at coldfusion.runtime.UDFMethod $ ArgumentCollectionFilter.invoke(UDFMethod.java: 324)在coldfusion.filter.FunctionAccessFilter.invoke(FunctionAccessFilter.java:59)在coldfusion.runtime.UDFMethod.runFilterChain(UDFMethod.java:277)在coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:192)在ColdFusion的。 runtime.TemplateProxy.invoke(TemplateProxy.java:448)at coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.ja (d:\ JO3 \ jobOffice \ transfer \ com \ Transfer。)中的coldfusion.runtime.CfJspPage._invoke(CfJspPage.java:2272)在Coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:418)at coldfusion.filter.SilentFilter.invoke(SilentFilter.java:47)at coldfusion.runtime.UDFMethod $ ReturnTypeFilter.invoke(UDFMethod.java:360 )在coldfusion.runtime.UDFMethod $ ArgumentCollectionFilter.invoke(UDFMethod.java:324)在coldfusion.filter.FunctionAccessFilter.invoke(FunctionAccessFilter.java:59)在coldfusion.runtime.UDFMethod.runFilterChain(UDFMethod.java:277)在ColdFusion的.funtime.UDFMethod.invoke(UDFMethod.java:192)at coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:448)at coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:308)at coldfusion.runtime.CfJspPage。 _invoke(CfJspPage.java:2272)在cfmodules2eJOModule $ $ CD35DE93ADBE111EADECF17DDC3D9E362etransfer173107414 funcLOADMODULECONFIGS.runFunction(d:\ JO3 \ jobOffice \配置\轉印\定義\ modules.JOModule $ CD35DE93ADBE111EADECF17DDC3D9E36.transfer:140)在coldfusion.runtime.UDFMethod.invoke(UDFMethod .java:418)在coldfusion.filter.SilentFilte r.invoke(SilentFilter.java:47)at coldfusion.runtime.UDFMethod $ returnTypeFilter.invoke(UDFMethod.java:360)at coldfusion.runtime.UDFMethod $ ArgumentCollectionFilter.invoke(UDFMethod.java:324)at coldfusion.filter.FunctionAccessFilter .invoke(FunctionAccessFilter.java:59)at coldfusion.runtime.UDFMethod.runFilterChain(UDFMethod.java:277)at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:192)at coldfusion.runtime.CfJspPage._invokeUDF(CfJspPage。在UDFMethod.java:418上使用cfmodules2eJOModule $ CD35DE93ADBE111EADECF17DDC3D9E362etransfer173107414 $ funcGETMODULECONFIGSSTRUCT.runFunction(D:\ JO3 \ jobOffice \ config \ transfer \ definitions \ modules.JOModule $ CD35DE93ADBE111EADECF17DDC3D9E36.transfer:303) )at coldfusion.filter.SilentFilter.invoke(SilentFilter.java:47)at coldfusion.runtime.UDFMethod $ ReturnTypeFilter.invoke(UDFMethod.java:360)at coldfusion.runtime.UDFMethod $ ArgumentCollectionFilter.invoke(UDFMethod.java:324)在coldfusion.filter.FunctionAccess在coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:192)處的coldfusion.runtime.UDFMethod.runFilterChain(UDFMethod.java:277)處的Filter.invoke(FunctionAccessFilter.java:59)at coldfusion.runtime.TemplateProxy.invoke(TemplateProxy的.java:448)在coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:308)在coldfusion.runtime.CfJspPage._invoke(CfJspPage.java:2272)在cfCPSecurity2ecfc397466374 $ funcPREPROCESS.runFunction(d:\ JO3 \ jobOffice \ SYS \ jo \ core \ m2plugin \ CPSecurity.cfc:18)at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:418)at coldfusion.filter.SilentFilter.invoke(SilentFilter.java:47)at coldfusion.runtime.UDFMethod $在coldfusion.runtime.UDFMethod處使用ReturnTypeFilter.invoke(UDFMethod.java:360),在coldfusion.runtime.UDFMethod.runFilterChain處使用coldfusion.filter.FunctionAccessFilter.invoke(FunctionAccessFilter.java:59)處理$ ArgumentCollectionFilter.invoke(UDFMethod.java:324) (UDFMethod.java:277)at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:192)at coldfusion.runtime.TemplateProx在coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:308)處的coldfusion.runtime.CfJspPage._invoke(CfJspPage.java:2272)處,在cfPluginManager2ecfc1495337580 $ funcPREPROCESS.runFunction(D:\)處添加y.invoke(TemplateProxy.java:448)在Coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:418)at coldfusion.runtime.UDFMethod $ ReturnTypeFilter.invoke(UDFMethod.java:360)at coldfusion.runtime(JO3 \ jobOffice \ MachII \ framework \ PluginManager.cfc:405) .UDFMethod $ ArgumentCollectionFilter.invoke(UDFMethod.java:324)在coldfusion.filter.FunctionAccessFilter.invoke(FunctionAccessFilter.java:59)在coldfusion.runtime.UDFMethod.runFilterChain(UDFMethod.java:277)在coldfusion.runtime.UDFMethod。在coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:448)處調用(UDFMethod.java:192)at coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:308)at coldfusion.runtime.CfJspPage._invoke(CfJspPage.java :2272)at cfRequestHandler2ecfc1676430457 $ funcPROCESSEVENTS.runFunction(D:\ JO3 \ jobOffice \ MachII \ framework \ Req uestHandler.cfc:275)在coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:418)在coldfusion.runtime.UDFMethod $ ReturnTypeFilter.invoke(UDFMethod.java:360)在coldfusion.runtime.UDFMethod $ ArgumentCollectionFilter.invoke(UDFMethod在Coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:192)處的coldfusion.runtime.UDFMethod.runFilterChain(UDFMethod.java:277)處的coldfusion.filter.FunctionAccessFilter.invoke(FunctionAccessFilter.java:59)在coldfusion.runtime.UDFMethod.invoke(UDFMethod。)處的cfinclude.runtime.CfJspPage._invokeUDF(CfJspPage.java:2471)處的cfRequestHandler2ecfc1676430457 $ funcHANDLEREQUEST.runFunction(D:\ JO3 \ jobOffice \ MachII \ framework \ RequestHandler.cfc:208)在Coldfusion.runtime.UDFMethod上使用$:ReturnTypeFilter.invoke(UDFMethod.java:360)at coldfusion.runtime.UDFMethod $ ArgumentCollectionFilter.invoke(UDFMethod.java:324)at coldfusion.filter.FunctionAccessFilter.invoke(FunctionAccessFilter.java :59)在coldfusion.runtime.UDFMethod.runFilterChain(UDFMethod。在Coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:308)at coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:448)at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:192) coldfusion.runtime.CfJspPage._invoke(CfJspPage.java:2272)at cfmach2dii2ecfc1440816939 $ funcHANDLEREQUEST.runFunction(D:\ JO3 \ jobOffice \ MachII \ mach-ii.cfc:210)at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java :418)在coldfusion.runtime.UDFMethod $ ReturnTypeFilter.invoke(UDFMethod.java:360)在coldfusion.runtime.UDFMethod $ ArgumentCollectionFilter.invoke(UDFMethod.java:324)在coldfusion.filter.FunctionAccessFilter.invoke(FunctionAccessFilter.java: 59)at coldfusion.runtime.UDFMethod.runFilterChain(UDFMethod.java:277)at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:192)at coldfusion.runtime.CfJspPage._invokeUDF(CfJspPage.java:2471)at cfmach2dii2ecfc1440816939 $ funfusion.runtime.UDFMethod.invoke(UDFMetho d.java:418)在coldfusion.runtime.UDFMethod $ ReturnTypeFilter.invoke(UDFMethod.java:360)在coldfusion.runtime.UDFMethod $ ArgumentCollectionFilter.invoke(UDFMethod.java:324)在coldfusion.filter.FunctionAccessFilter.invoke(FunctionAccessFilter的.java:59)在coldfusion.runtime.UDFMethod.runFilterChain(UDFMethod.java:277)在coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:192)在coldfusion.runtime.CfJspPage._invokeUDF(CfJspPage.java:2471)在coldfusion.runtime.CfJspPage._invoke(CfJspPage.java:2290)在cfApplication2ecfc1530162842 $ funcONREQUESTSTART.runFunction(d:\ JO3 \ wwwroot的\的Application.cfc:48)在coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:418)在coldfusion.runtime.UDFMethod $ ReturnTypeFilter.invoke(UDFMethod.java:360)在coldfusion.runtime.UDFMethod $ ArgumentCollectionFilter.invoke(UDFMethod.java:324)在coldfusion.filter.FunctionAccessFilter.invoke(FunctionAccessFilter.java:59)在coldfusion.runtime.UDFMethod.runFilterChain(UDFMethod.java:277)at coldfusion.runtime.UDFMethod.inv在Coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:448)處的coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:308)處的coldfusion.runtime.AppEventInvoker.invoke(AppEventInvoker.java)中的oke(UDFMethod.java:192) :74)在coldfusion.runtime.AppEventInvoker.onRequestStart(AppEventInvoker.java:221)在coldfusion.filter.ApplicationFilter.invoke(ApplicationFilter.java:273)在coldfusion.filter.MonitoringFilter.invoke(MonitoringFilter.java:40)在ColdFusion的.filter.PathFilter.invoke(PathFilter.java:86)在coldfusion.filter.ExceptionFilter.invoke(ExceptionFilter.java:70)在coldfusion.filter.ClientScopePersistenceFilter.invoke(ClientScopePersistenceFilter.java:28)在coldfusion.filter.BrowserFilter。調用(BrowserFilter.java:38)在coldfusion.filter.NoCacheFilter.invoke(NoCacheFilter.java:46)在coldfusion.filter.GlobalsFilter.invoke(GlobalsFilter.java:38)在coldfusion.filter.DatasourceFilter.invoke(DatasourceFilter.java :22)在coldfusion.filter.RequestThrottleFilter.invoke(RequestTh在Coldfusion.CfmServlet.service(CfmServlet.java:175)處的coldfusion.bootstrap.BootstrapServlet.service(BootstrapServlet.java:89)在jrun.servlet.FilterChain.doFilter(FilterChain.java:86)at com.intergral.fusionreactor.filter.FusionReactorFilter.b(FusionReactorFilter.java:386)在com.intergral.fusionreactor.filter.FusionReactorFilter.c(FusionReactorFilter.java:264)在com.intergral.fusionreactor.filter.FusionReactorFilter.doFilter( FusionReactorFilter.java:174)在jrun.servlet.FilterChain.doFilter(FilterChain.java:94)在coldfusion.monitor.event.MonitoringServletFilter.doFilter(MonitoringServletFilter.java:42)在coldfusion.bootstrap.BootstrapFilter.doFilter(BootstrapFilter.java :46)at jrun.servlet.FilterChain.doFilter(FilterChain.java:94)at jrun.servlet.FilterChain.service(FilterChain.java:101)at jrun.servlet.ServletInvoker.invoke(ServletInvoker.java:106)at jrun .servlet.JRunInvokerChain.invokeNext(JRunInvokerChain.java:42)at jrun.servlet.JRunRequestDispatcher。在jrun.servlet.ServletEngineService.dispatch(ServletEngineService.java:543)在jrun.servlet.jrpp.JRunProxyService.invokeRunnable(JRunProxyService.java:203)調用(JRunRequestDispatcher.java:286)在jrunx.scheduler.ThreadPool $ DownstreamMetrics.invokeRunnable (ThreadPool.java:320)在jrunx.scheduler.ThreadPool $ ThreadThrottle.invokeRunnable(ThreadPool.java:428)在jrunx.scheduler.ThreadPool $ UpstreamMetrics.invokeRunnable(ThreadPool.java:266)在jrunx.scheduler.WorkerThread.run( WorkerThread.java:66)

+0

是整個堆棧跟蹤?如果沒有,你可以發佈嗎?從我所能找到的,似乎這個錯誤往往與使用一個命名的'cflock'有關。 –

回答

3

十六進制引用的確引用了Heap上的一個對象。如上所述,RWLock類可能與<cflock>有關。你理想的需要是一個完整的堆棧跟蹤。如果你從上面的鎖定行讀下來,你會得到你的代碼的引用,其中包括coldfusion行號,這意味着你可以找出發生了什麼。 如果遇到死鎖,那麼該引用可能會顯示在堆棧轉儲中的其他位置。要生成並分析其中的一個,看到這個帖子對我是什麼在起作用:When ColdFusion is maxing out the CPU, how do I find out what it's chewing/choking on?

+0

現在貼滿上面的堆棧跟蹤。有問題的一行是在TransferORM生成的方法中。該方法本身並不顯着。它有一個CfLock,它以實體的類名和PK命名。它有幾個循環,但沒有訪問任何可能導致問題的外部資源。 什麼是困惑我的是,服務器進入狀態時,我看到周圍的10個線程使用相同的堆棧跟蹤,所有等待上相同的「地址」,例如,「0x6ab0eb48」這些線程最終完成,這個情況持續發生,直到我們反彈服務。我想看看什麼代碼0x6ab0eb48是。 – Dave

+0

直到我們反彈的服務,同樣的問題發生保持(相同的鎖,但不同的「地址」每隔幾分鐘。我已經做了「抓住一個堆棧跟蹤每20秒」的方法,並使用IBM DTA,看看發生了什麼。線程正在移動(即正在執行),但是緩慢。我使用ProcExp.exe查看每個正在運行的線程的CPU使用情況,這些線程與IBM TDA中的堆棧跟蹤相關,每個線程使用大約3-5% 。CPU – Dave

+0

,看看有什麼是生活在一個地址,你應該能夠使用JMAP:http://docs.oracle.com/javase/6/docs/technotes/tools/share/jmap.html - 它會寫出來全堆到磁盤和慢下來,而它的運行,以便確保你有空間,然後你可以用與jHat:http://docs.oracle.com/javase/6/docs/technotes/tools/share/ jhat.html來查看堆轉儲爲了運行JHat(超過堆轉儲的大小),需要大量內存 – barnyr