Symptoms
All subscriptions are not renewed while they should have been, subscription expiration is also not processed.
DailyBillingProcess task is failed with the error:
Execution Failed: ODBC code #57014: ERROR: canceling statement due to statement timeout;
Error while executing the query
In /usr/local/bm/log/BM.log the following error appear when for Daily Billing Process:
[13-11-26 02:18:13.132 Worker2.46 RQ528262 TRC] +++[2] virtual std::pair<bool, bool> bPeriodicBillingProcess::makeBillingForAccount(Int)(1011616)
[13-11-26 02:18:13.133 BM RQ528262 NTE] Exclusively locking a row (AccountID=1011616) in table Account
[13-11-26 02:22:13.136 RDBMS RQ528262 NTE] Code: 1000. ODBC code #57014: ERROR: canceling statement due to statement timeout; Error while executing the query
[13-11-26 02:22:13.137 Worker2.46 RQ528262 TRC] ...[2] *** INTERRUPTED BY EXCEPTION *** virtual std::pair<bool, bool> bPeriodicBillingProcess::makeBillingForAccount(Int)
[13-11-26 02:22:13.137 Worker2.46 RQ528262 TRC] ...[1] *** INTERRUPTED BY EXCEPTION *** Create bills, second pass
[13-11-26 02:22:13.137 Worker2.46 RQ528262 TRC] ...[0] *** INTERRUPTED BY EXCEPTION *** ErrorMessage* BM::DailyBillingProcess()
Cause
The issue is identified as bug PBA-52919. It is fixed in PBA-E 5.5.4 version.
Resolution
Please upgrade to the latest version of PBA-E. To workaround the issue please stop PBA-E:
/etc/init.d/pba stop
Restart PostgreSQL service on PBA-E database host:
/etc/init.d/postgresql restart
Start PBA-E:
/etc/init.d/pba start
Next Daily Billing Process should be completed without any problems.