Time out error when rejecting invoices:
'2022-12-15 13:56:55,004 [[ACTIVE] ExecuteThread: '14' for queue: 'weblogic.kernel.Default (self-tuning)'] ERROR uk.co.corelogic.framework.common.struts.FrameworkAction - wal-prod-app11671112615003_22289:EJB Exception: ; nested exception is: uk.co.corelogic.common.exception.DAOException: The transaction is no longer active - status: 'Marked rollback. [Reason=weblogic.transaction.internal.TimedOutException: Transaction timed out after 599 seconds
Caused by: uk.co.corelogic.common.exception.DAOException: The transaction is no longer active - status: 'Marked rollback. [Reason=weblogic.transaction.internal.TimedOutException: Transaction timed out after 599 seconds BEA1-2B9B15752EFA8B4DEE27]'. No further JDBC access is allowed within this transaction. at uk.co.corelogic.framework.payments.dao.InvoiceDAOPortable.callRejectInvoicePayments(InvoiceDAOPortable.java:1631)'
This is a known issue which we are hoping to deploy a fix for in a future release of Mosaic so please keep an eye on the release notes for that.
This is caused when a worker is trying to reject too many invoices at once.
Mosaic currently loops through each invoice one by one and applies it's reject procedures. This can be time consuming where there are many invoices to get through (tens to hundreds) and therefore the task eventually exceeds it's allotted maximum time as set by settings in Weblogic.
This causes a time out error to occur and the whole process to roll back.
In the meantime, the workaround would be to ask the worker to reject fewer invoices at any one time so that Mosaic has enough time to complete the invoices it is given. There can be a little bit of trial and error here on your part as each customer has different server hardware and timeout configurations.
You may also find that you are able to reject at other times of the day which might be quieter or at less load, times which may not coincide with log shipping copy overs, and first thing the following morning after the nightly refresh.
There is also a new occasion we have learned that those who have upgraded their SQL Server database version from 2012 to 2016 have had an issue with rejecting invoices in bulk, and there were some actions on the platform and infrastructure side to resolve this.
The advice on rejecting fewer invoices at a time would still apply as a workaround, but if you are aware that this could be the case for you then please let that be known when raising a case with us.
If you have any further queries about this, please raise a new case online and reference the title of this article.
