Thread interrupted when trying to obtain WRITE lock for cache MetricAccumulatorCache

What product/components do you use and which version/fix level?

|Product|webMethods Integration Server| API Gateway
|—|—|
|Version|10.3.0.0|
|Updates|IS_10.3_Core_Fix7|
|Build Number|118|

What are trying to achieve? Please describe in detail.

Production services is gettting this error occeasionaly.

Do you get any error messages? Please provide a full error message screenshot and log file.

Thread interrupted when trying to obtain WRITE lock for cache MetricAccumulatorCache

[319445]2021-09-28 08:21:05 GST [YAI.0203.0100W] [default][AP172APH08] Thread interrupted when trying to obtain WRITE lock for cache MetricAccumulatorCache
[319444] at java.lang.Thread.run(Thread.java:748)
[319443] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
[319442] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
[319441] at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
[319440] at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
[319439] at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
[319438] at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
[319437] at com.softwareag.pg.pgmen.processors.DCProcessor.run(DCProcessor.java:38)
[319436] at com.softwareag.pg.pgmen.processors.AccumulatorManager.exec(AccumulatorManager.java:147)
[319435] at com.softwareag.pg.pgmen.processors.AccumulatorManager.drain(AccumulatorManager.java:112)
[319434] at com.softwareag.pg.pgmen.processors.AccumulatorManager.addEventsToAccumulators(AccumulatorManager.java:127)
[319433] at com.softwareag.pg.pgmen.cache.ehcache.EhcacheMetricAccumulatorCache.addEventsToAccumulators(EhcacheMetricAccumulatorCache.java:158)
[319432] at com.softwareag.pg.pgmen.cache.ehcache.EhcacheCacheImplementationBase.executeWithTimedWriteLock(EhcacheCacheImplementationBase.java:242)
[319431] at net.sf.ehcache.Cache.tryWriteLockOnKey(Cache.java:4006)
[319430] at org.terracotta.modules.ehcache.concurrency.NonStopSyncWrapper.tryLock(NonStopSyncWrapper.java:69)
[319429]net.sf.ehcache.constructs.nonstop.concurrency.LockOperationTimedOutNonstopException: try lock timed out
[319428]2021-09-28 08:21:05 GST [YAI.0203.0100W] [default][AP172APH08] Thread interrupted when trying to obtain WRITE lock for cache MetricAccumulatorCache
[319427] at java.lang.Thread.run(Thread.java:748)
[319426] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)

From what I gather, this happens when there’s a network communication delay between components.
If your events and metrics are working as expected in spite of this error, then you can ignore it; else, you can create a support ticket.

KM

I has to restart the server for better performance and logs are reaching to more than 2 GB/day just becaouse this error again and again.

-09-28 00:00:06 GST [YAI.0203.0100W] [default][AP172APH08] Thread interrupted when trying to obtain WRITE lock for cache MetricAccumulatorCache
net.sf.ehcache.constructs.nonstop.concurrency.LockOperationTimedOutNonstopException: try lock timed out
at org.terracotta.modules.ehcache.concurrency.NonStopSyncWrapper.tryLock(NonStopSyncWrapper.java:69)
at net.sf.ehcache.Cache.tryWriteLockOnKey(Cache.java:4006)
at com.softwareag.pg.pgmen.cache.ehcache.EhcacheCacheImplementationBase.executeWithTimedWriteLock(EhcacheCacheImplementationBase.java:242)
at com.softwareag.pg.pgmen.cache.ehcache.EhcacheMetricAccumulatorCache.addEventsToAccumulators(EhcacheMetricAccumulatorCache.java:158)
at com.softwareag.pg.pgmen.processors.AccumulatorManager.addEventsToAccumulators(AccumulatorManager.java:127)
at com.softwareag.pg.pgmen.processors.AccumulatorManager.drain(AccumulatorManager.java:112)
at com.softwareag.pg.pgmen.processors.AccumulatorManager.exec(AccumulatorManager.java:147)
at com.softwareag.pg.pgmen.processors.DCProcessor.run(DCProcessor.java:38)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
2021-09-28 00:00:06 GST [YAI.0203.0100W] [default][AP172APH08] Thread interrupted when trying to obtain WRITE lock for cache MetricAccumulatorCache
net.sf.ehcache.constructs.nonstop.concurrency.LockOperationTimedOutNonstopException: try lock timed out
at org.terracotta.modules.ehcache.concurrency.NonStopSyncWrapper.tryLock(NonStopSyncWrapper.java:69)
at net.sf.ehcache.Cache.tryWriteLockOnKey(Cache.java:4006)
at com.softwareag.pg.pgmen.cache.ehcache.EhcacheCacheImplementationBase.executeWithTimedWriteLock(EhcacheCacheImplementationBase.java:242)
at com.softwareag.pg.pgmen.cache.ehcache.EhcacheMetricAccumulatorCache.addEventsToAccumulators(EhcacheMetricAccumulatorCache.java:158)
at com.softwareag.pg.pgmen.processors.AccumulatorManager.addEventsToAccumulators(AccumulatorManager.java:127)
at com.softwareag.pg.pgmen.processors.AccumulatorManager.drain(AccumulatorManager.java:112)
at com.softwareag.pg.pgmen.processors.AccumulatorManager.exec(AccumulatorManager.java:147)
at com.softwareag.pg.pgmen.processors.DCProcessor.run(DCProcessor.java:38)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)

I suggest the following -

  • Check if your file descriptors need a tune-up (link)
  • I see this issue reported (and fixed) on 10.1 and 10.5 per fix documentation, but not reported for 10.3 - can you consider installing the latest fixes? IS is at Fix 18, while you’re on Fix 7; in addition, consider API GW and TC fixes as well
  • If installing fixes is not possible or the issue isn’t resolved even after fixes, then do create a support ticket

KM

1 Like