In a service presently there’s a call to pub.storage:get service . Offlate i’m getting many exceptions from server
“Cannot obtain entry lock for key at pub.storage.get(storage.java:322)”
After looking at the built in services.pdf, it was revealed that we have to use either put or unlock service to release the lock. I’m wondering whether the above exception is due to not usage of these services or not ?
did any of you face such situation?? need ur inputs pls…
reason behind this question is, these exceptions are from production box , so need to get it confirmed before making further developments!
Thanks
You should use the pub.storage:lock service to implicitly lock the store prior to manipulating the data. Then, call the pub.storage:unlock service when you are finished.
It is the same reason that you would use start trans/commit/roll back for databases.
The pub.storage services allow you to put a lock on a store to prevent two services to access the same store at the same time. You can prevent this behavior by setting the lockMode parameter for pub.storage:get to ‘Read’, which allows other threads to access the same store at the same time, or indeed explicitly unlock the store using pub.storage:unlock.
thanks for suggestions… current situation is :
i have a startup service for my package which pulls some data from SAP and stores in the message store. and whenever BC receives a message from other system (destined to SAP) i get the county description from this message store and send IDoc to SAP.
So if i use get service with ‘READ’ option I could possibly get rid of this locking issue.