Just a little, Iβm a new developer who recently took on a major project after the senior developer left the company before I could develop a full understanding of how he structured it. I will try to explain my problem as best as possible.
This application creates several MessageListner threads to read objects from JMS queues. After the object is received, the data is processed based on some business logic, and then displayed on the save object, which will be stored in the oracle database using the sleeping EntityManager.
Until a few weeks ago there were no serious problems with this configuration in the last year or so, since I joined the project. But for one of the queues (the problem is allocated for this particular queue), a spring-driven bean that processes the received object hangs according to the method below. My debugging led me to the conclusion that she completed everything within the method, but hangs after completion. After several weeks of trying to resolve this, I am at the end of my rope with this problem. Any help with this would be greatly appreciated.
Since each MessageListner receives its own processor, this suspension method only affects incoming data in a single queue.
@Transactional(propagation = Propagation.REQUIRES_NEW , timeout = 180) public void update(UserRelatedData userData, User user,Company company,...) { ... ....
I inserted the debug statements just to go through this method, and it completes everything, including entityMgr.flush. ().
source share