@Transactional(readOnly = true) public void processMessageRetries() { MessageRequestDAO msgReqDao = coreManager.createMessageRequestDAO(); List<MessageRequest> messages = msgReqDao.getMsgRequestByStatusAndTryNumber(MStatus.RETRY, maxTries); if (messages == null || messages.isEmpty()) { logger.info("No message request to retry"); return; } logger.info("Fetched " + messages.size() + " message requests for retry"); logger.info("Processing messages..."); for (MessageRequest message : messages) { try { processMessageRetry(message); } catch (Exception e) { logger.error("Error while retrying message requests: ", e); } } logger.info("Messages processed successfully"); }