What is java.util.concurrent.locks.ReentrantLock$FairSync seen in thread dump

What is java.util.concurrent.locks.ReentrantLock$FairSync seen in thread dump

book

Article ID: KB0084329

calendar_today

Updated On:

Products Versions
TIBCO BusinessEvents Enterprise Edition All

Description

I am seeing threads waiting for  java.util.concurrent.locks.ReentrantLock$FairSync. What is  java.util.concurrent.locks.ReentrantLock$FairSync?

Issue/Introduction

What is java.util.concurrent.locks.ReentrantLock$FairSync

Environment

All

Resolution

java.util.concurrent.locks.ReentrantLock$FairSync might be seen in the following cases.

1) Single-Threaded RTC. 
2). Join condition in a rule.

1). Single-Threaded RTC(concurrent RTC = false)
For single-Threaded RTC, only one thread gets the lock(java.util.concurrent.locks.ReentrantLock$FairSync) and executes its RTC. Other threads have to wait to execute its RTC in turn. 

2). Join condition
When a rule contains join condition(comparison on objects, e.g child@parent == parent), evaluation on the join condition also requires the lock.

See the attached thread dumps (Filename: threaddump_singleRTC.txt, threadump_joinCondition.txt) for detailed examples.

Attachments

What is java.util.concurrent.locks.ReentrantLock$FairSync seen in thread dump get_app
What is java.util.concurrent.locks.ReentrantLock$FairSync seen in thread dump get_app