Why do the TopicSession.createDurableSubscriber and TopicSession.unubscribe calls raise JMSException with the message "ORA - 4020 - deadlock detected while trying to lock object"?
Answer Posted / munnu
CreateDurableSubscriber and unsubscribe calls require exclusive access to the Topics. If there are pending JMS operations (send/publish/receive) on the same Topic before these calls are issued, the ORA - 4020 exception is raised.
There are two solutions to the problem:
1. Try to isolate the calls to createDurableSubscriber and unsubscribe at the setup or cleanup phase when there are no other JMS operations happening on the Topic. That will make sure that the required resources are not held by other JMS operational calls. Hence the error ORA - 4020 will not be raised.
2. Issue a TopicSession.commit call before calling createDurableSubscriber and unsubscribe call.
| Is This Answer Correct ? | 0 Yes | 0 No |
Post New Answer View All Answers
How do I check messages in jms queue?
What is the difference between Jms and Jvt ?
How to Configure Open JMS?
What is a messaging service?
What is a JMS client?
What is jms template?
What is the important part of JMS applications?
How to Set message priority levels?
What are the different parts of a jms message?
How do I find the jms queue in weblogic?
What is a durable queue?
Give an example of using the publish/subscribe model.
How to check jms messages in weblogic?
How do I use a startup class to initialize and later reference jms objects?
Why is my jms work not part of a user transaction (i.e., Called within a transaction but not rolled back appropriately)? How do I track down transaction problems?