In IS 9.5, I am calling a service that has service caching enabled, properties Stateless=True and Cache results=True. During testing I performed a JVM thread dump and noticed many threads blocked.
Is there any way to get the service cache to work without locking? This is killing performance when many concurrent requests are being processed.
Running thread
…
at net.sf.ehcache.Cache.get(Cache.java:1590)
at net.sf.ehcache.Cache.get(Cache.java:1557)
at com.wm.app.b2b.server.ostore.EhcacheStore.load(EhcacheStore.java:104)
- locked <0x5ef5c1ca> (a com.wm.app.b2b.server.ostore.EhcacheStore)
at com.wm.app.b2b.server.ostore.CacheEntryList.access(CacheEntryList.java:75)
at com.wm.app.b2b.server.ostore.ServiceCacheImpl.get(ServiceCacheImpl.java:124)
- locked <0x32c9387b> (a com.wm.app.b2b.server.ostore.ServiceCacheImpl)
at com.wm.app.b2b.server.ostore.ServerCache.get(ServerCache.java:385)
at com.wm.app.b2b.server.CacheManager.invoke(CacheManager.java:196)
…
Blocked thread (there are many of these)
…
at com.wm.app.b2b.server.ostore.ServiceCacheImpl.get(ServiceCacheImpl.java:111)
- waiting on <0x32c9387b> (a com.wm.app.b2b.server.ostore.ServiceCacheImpl) owned by thread=“HTTP Handler 10.2.6.225” Id=28805
at com.wm.app.b2b.server.ostore.ServerCache.get(ServerCache.java:385)
at com.wm.app.b2b.server.CacheManager.invoke(CacheManager.java:196)
…
#Integration-Server-and-ESB#webMethods#Flow-and-Java-services