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.

Internal content