Scheduled reports are not delivered on time, Enforce shows the following warning
Code | 2405 |
Summary | Unable to run scheduled report |
Detail | The scheduled report REPORT DISTRIBUTION Confirmation Task-EM owned by <user account> encountered an error: protect manager error [602]. |
Check Enforce(tomcat logs) for the following:
SEVERE [org.apache.ojb.odmg.TransactionImpl] Cannot obtain PersistenceBroker from PersistenceBrokerFactory, found PBKey was org.apache.ojb.broker.PBKey: jcdAlias=oracle-thin, user=null, password=null
Cause:
org.apache.ojb.broker.PBFactoryException: Borrow broker from pool failed, using PBKey org.apache.ojb.broker.PBKey: jcdAlias=oracle-thin, user=null, password=nullorg.apache.ojb.broker.PBFactoryException: Borrow broker from pool failed, using PBKey org.apache.ojb.broker.PBKey: jcdAlias=oracle-thin, user=null, password=null
at org.apache.ojb.broker.core.PersistenceBrokerFactoryDefaultImpl.createPersistenceBroker(PersistenceBrokerFactoryDefaultImpl.java:120)
at org.apache.ojb.odmg.TransactionImpl.getBrokerInternal(TransactionImpl.java:1182)
at org.apache.ojb.odmg.TransactionImpl.getBroker(TransactionImpl.java:1196)
at com.vontu.model.ojb.OJBTransaction.<init>(OJBTransaction.java:61)
at com.vontu.model.ojb.OJBSystem.beginTransaction(OJBSystem.java:329)
at com.vontu.model.ModelProxy.beginTransaction(ModelProxy.java:51)
at com.vontu.model.notification.NotificationModel.beginTransaction(NotificationModel.java:151)
at com.vontu.model.ModelProxy.beginTransaction(ModelProxy.java:51)
at com.vontu.incidenthandler.command.enforce.TransactionControlPrePostProcessor.preProcess(TransactionControlPrePostProcessor.java:64)
at com.vontu.command.CommandRuntime.preProcess(CommandRuntime.java:941)
at com.vontu.command.CommandRuntime.executeCommands(CommandRuntime.java:731)
at com.vontu.command.CommandRuntime.access$000(CommandRuntime.java:103)
at com.vontu.command.CommandRuntime$CommandExecutor.run(CommandRuntime.java:1238)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.util.NoSuchElementException
at org.apache.commons.pool.impl.GenericKeyedObjectPool.borrowObject(GenericKeyedObjectPool.java:808)
at org.apache.ojb.broker.core.PersistenceBrokerFactoryDefaultImpl.createPersistenceBroker(PersistenceBrokerFactoryDefaultImpl.java:101)
... 15 more
Many reports sent in parallel can exhaust the active connection pool for oracle. This setting can be configured in OJB.properties
Open OJB.properties located in the config directory on Enforce
Locate the following lines:
# maximum number of brokers that can be borrowed from the
# pool at one time. When non-positive, there is no limit.
maxActive=20
Increase this number incrementally until the issue is no longer observed.