Why do the TopicSession.createDurableSubscriber and TopicSession.unubscribe calls raise JMSException with the message "ORA - 4020 - deadlock detected while trying to lock object"?
Answer / 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 |
What is jms protocol?
How to handle non-transacted sessions with respect to jms?
What is a jms server?
Can a jms queue have multiple listeners?
What are the types of messages that are supported by JMS?
What is Publish/Subscribe approach?
What is synchronous messaging?
What is the principle difference between the working mechanism of jms and rpc?
How may messaging models do JMS provide for and what are they?
What is the Role of the JMS Provider?
What is the difference between Byte Message and Stream Message?
What is the use of jms? In which situations we are using jms?