When Nucleus starts up a component, it also starts up other components referenced by that component’s properties. Nucleus can resolve circular references, where a component referred to by another component has properties that refer back to the first component. Circular references can cause deadlocks, which result from multiple threads trying to lock the two components in different orders. To debug deadlock problems, add this setting to the Nucleus.properties
file:
debugComponentLock=true
If debugComponentLock
is set to true
and a potential deadlock is detected, a DeadlockException
is thrown and displayed in the console. The exception indicates the lock in question, the thread it conflicts with, and the locks held on each side. Locks are named after the components involved, which can help determine which component is causing the problem. One or more of the components is incompletely initialized, so you need to fix the source of the problem and restart the Oracle Commerce Platform.