spring integration - JBoss WorkManager Thread in BLOCKED state -


we're using jboss 5 , jdk 1.6. use spring integration poll files multiple directory.

<file:inbound-channel-adapter id="flowinboundfileadapter" directory="${service.integration.path}" scanner="recursivescanner" filter="custompathfilefilter"     channel="myinchannel" auto-create-directory="false" auto-startup="true" prevent-duplicates="true" queue-size="10">     <poller max-messages-per-poll="10" fixed-rate="10" time-unit="seconds" task-executor="taskexecutor" />   </file:inbound-channel-adapter>   <beans:bean id="recursivescanner" class="org.springframework.integration.file.recursiveleafonlydirectoryscanner" /> 

we realized thread dump threads (198 out of 200) blocked @ .integration.file.filters.acceptoncefilelistfilter.accept(acceptoncefilelistfilter.java:60). we're not sure if deadlock or else? how can resolve it? can kill them without restarting jboss?

thread: workmanager(2)-1 : priority:5, demon:true, threadid:71, threadstate:waiting - waiting on <0x6b25d66e> (a java.util.concurrent.locks.abstractqueuedsynchronizer$conditionobject) sun.misc.unsafe.park(native method) java.util.concurrent.locks.locksupport.park(locksupport.java:158) java.util.concurrent.locks.abstractqueuedsynchronizer$conditionobject.await(abstractqueuedsynchronizer.java:1987) java.util.concurrent.priorityblockingqueue.take(priorityblockingqueue.java:220) org.jboss.resource.adapter.mail.inflow.newmsgsworker.run(newmsgsworker.java:76) org.jboss.resource.work.workwrapper.execute(workwrapper.java:205) org.jboss.util.threadpool.basictaskwrapper.run(basictaskwrapper.java:260) java.util.concurrent.threadpoolexecutor$worker.runtask(threadpoolexecutor.java:886) java.util.concurrent.threadpoolexecutor$worker.run(threadpoolexecutor.java:908) java.lang.thread.run(thread.java:662)  locked synchronizers :  - locked <0x699f91ee> (a java.util.concurrent.locks.reentrantlock$nonfairsync) thread: workmanager(2)-2 : priority:5, demon:true, threadid:115, threadstate:blocked - waiting on <0x1f3fd8f5> (a java.lang.object) org.springframework.integration.file.filters.acceptoncefilelistfilter.accept(acceptoncefilelistfilter.java:60) org.springframework.integration.file.filters.abstractfilelistfilter.filterfiles(abstractfilelistfilter.java:39) org.springframework.integration.file.filters.compositefilelistfilter.filterfiles(compositefilelistfilter.java:93) org.springframework.integration.file.defaultdirectoryscanner.listfiles(defaultdirectoryscanner.java:69) org.springframework.integration.file.filereadingmessagesource.scaninputdirectory(filereadingmessagesource.java:276) org.springframework.integration.file.filereadingmessagesource.receive(filereadingmessagesource.java:250) org.springframework.integration.endpoint.sourcepollingchanneladapter.receivemessage(sourcepollingchanneladapter.java:111) org.springframework.integration.endpoint.abstracttransactionsynchronizingpollingendpoint.dopoll(abstracttransactionsynchronizingpollingendpoint.java:67) org.springframework.integration.endpoint.abstractpollingendpoint$1.call(abstractpollingendpoint.java:146) org.springframework.integration.endpoint.abstractpollingendpoint$1.call(abstractpollingendpoint.java:144) org.springframework.integration.endpoint.abstractpollingendpoint$poller$1.run(abstractpollingendpoint.java:236) org.springframework.integration.util.errorhandlingtaskexecutor$1.run(errorhandlingtaskexecutor.java:52) com.dashboard.service.security.spring.securitycontextawaretaskexecutor$1.run(securitycontextawaretaskexecutor.java:26) org.springframework.jca.work.delegatingwork.run(delegatingwork.java:57) org.jboss.resource.work.workwrapper.execute(workwrapper.java:205) org.jboss.util.threadpool.basictaskwrapper.run(basictaskwrapper.java:260) java.util.concurrent.threadpoolexecutor$worker.runtask(threadpoolexecutor.java:886) java.util.concurrent.threadpoolexecutor$worker.run(threadpoolexecutor.java:908) java.lang.thread.run(thread.java:662)  locked synchronizers :  - locked <0x12106b7> (a java.util.concurrent.locks.reentrantlock$nonfairsync) thread: workmanager(2)-3 : priority:5, demon:true, threadid:116, threadstate:blocked - waiting on <0x1f3fd8f5> (a java.lang.object) org.springframework.integration.file.filters.acceptoncefilelistfilter.accept(acceptoncefilelistfilter.java:60) org.springframework.integration.file.filters.abstractfilelistfilter.filterfiles(abstractfilelistfilter.java:39) org.springframework.integration.file.filters.compositefilelistfilter.filterfiles(compositefilelistfilter.java:93) org.springframework.integration.file.defaultdirectoryscanner.listfiles(defaultdirectoryscanner.java:69) org.springframework.integration.file.filereadingmessagesource.scaninputdirectory(filereadingmessagesource.java:276) org.springframework.integration.file.filereadingmessagesource.receive(filereadingmessagesource.java:250) org.springframework.integration.endpoint.sourcepollingchanneladapter.receivemessage(sourcepollingchanneladapter.java:111) org.springframework.integration.endpoint.abstracttransactionsynchronizingpollingendpoint.dopoll(abstracttransactionsynchronizingpollingendpoint.java:67) org.springframework.integration.endpoint.abstractpollingendpoint$1.call(abstractpollingendpoint.java:146) org.springframework.integration.endpoint.abstractpollingendpoint$1.call(abstractpollingendpoint.java:144) org.springframework.integration.endpoint.abstractpollingendpoint$poller$1.run(abstractpollingendpoint.java:236) org.springframework.integration.util.errorhandlingtaskexecutor$1.run(errorhandlingtaskexecutor.java:52) com.dashboard.service.security.spring.securitycontextawaretaskexecutor$1.run(securitycontextawaretaskexecutor.java:26) org.springframework.jca.work.delegatingwork.run(delegatingwork.java:57) org.jboss.resource.work.workwrapper.execute(workwrapper.java:205) org.jboss.util.threadpool.basictaskwrapper.run(basictaskwrapper.java:260) java.util.concurrent.threadpoolexecutor$worker.runtask(threadpoolexecutor.java:886) java.util.concurrent.threadpoolexecutor$worker.run(threadpoolexecutor.java:908) java.lang.thread.run(thread.java:662)  locked synchronizers :  - locked <0x4524fab4> (a java.util.concurrent.locks.reentrantlock$nonfairsync) 

my best guess have huge number of files in directory; each time scan directory have check each 1 in filter.

having extremely large number of files degrade performance.

it's better rename/remove files when have processed them.

if can't that, try new watchservicedirectoryscanner. retrieve new files.


Comments

Popular posts from this blog

java - Run spring boot application error: Cannot instantiate interface org.springframework.context.ApplicationListener -

reactjs - React router and this.props.children - how to pass state to this.props.children -

Excel VBA "Microsoft Windows Common Controls 6.0 (SP6)" Location Changes -