Hi everyone,
I have been working with Budget Monitoring, and it seems to be a never-ending source of issues. 😂
This time, I am facing the following problem: the Budget Update cron task starts executing but never completes, and as a result, it does not run again.
I reviewed the logs, but the only relevant error I could find is the following:
[10/2/26 17:07:04:595 BOT] 000812e7 SystemErr R java.lang.NullPointerException
[10/2/26 17:07:04:595 BOT] 000812e7 SystemErr R at psdi.app.po.Budget.updateBudget(Budget.java:302)
[10/2/26 17:07:04:595 BOT] 000812e7 SystemErr R at psdi.app.po.virtual.BudgetUpdateSet.execute(BudgetUpdateSet.java:72)
[10/2/26 17:07:04:595 BOT] 000812e7 SystemErr R at psdi.webclient.system.beans.DataBean.execute(DataBean.java:6661)
[10/2/26 17:07:04:595 BOT] 000812e7 SystemErr R at psdi.webclient.beans.po.AsynJobAppBean.execute(AsynJobAppBean.java:36)
[10/2/26 17:07:04:595 BOT] 000812e7 SystemErr R at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[10/2/26 17:07:04:595 BOT] 000812e7 SystemErr R at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:90)
[10/2/26 17:07:04:595 BOT] 000812e7 SystemErr R at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:55)
[10/2/26 17:07:04:595 BOT] 000812e7 SystemErr R at java.lang.reflect.Method.invoke(Method.java:508)
[10/2/26 17:07:04:595 BOT] 000812e7 SystemErr R at psdi.webclient.system.session.AsyncProcess.run(AsyncProcess.java:172)
[10/2/26 17:07:04:595 BOT] 000812e7 SystemErr R at java.lang.Thread.run(Thread.java:825)
I have tried enabling several additional loggers to find more information, but so far I have not found any additional clues. I also looked at the Maximo classes involved in the process and ran several SQL queries against the database, but I have not found anything obviously wrong with the data.
About a month ago, I had a different issue with Budget Monitoring related to the number of rows being fetched. I increased the mxe.db.fetchResultStopLimit.BUDGETFLAG property to 50000, which resolved that issue. However, this time the failure is a NullPointerException inside psdi.app.po.Budget.updateBudget(), and I have not been able to determine which object or data condition is causing it.
I can reproduce the same problem manually. When I use Update Budget Lines from the More Actions menu, the process also fails with a similar NullPointerException.

The Budget Update cron task is configured as follows. I know the 10-second schedule is kinda aggressive, but otherwise Maximo ends up ignoring some transactions.
Has anyone encountered this particular NullPointerException in Budget.updateBudget() before?
Is there a logger that can provide more detail about the processing performed by this class, or another recommended way to identify the specific Budget Rule, Budget Flag, or transaction that causes the failure?
I would like to know if there is a better way to trace/debug the execution of this method in Maximo.
Some additional information about the environment:
- IBM WebSphere Application Server 9.0.5.10
- Tivoli's Process Automation Engine 7.6.1.2-IFIX20211122-2326
- IBM Maximo Asset Management 7.6.1.2
- IBM Tpae Integration Framework 7.6.1.2
- IBM Maximo Asset Management Work Centers 7.6.0.4
- IoT Connection Utility 7.6.0.3
- Database: DB2 11.1
#Customizations#MaximoApplicationSuite------------------------------
Axel Alamilla
It consol
------------------------------