AppDynamics Knowledge Base

My EUM Processor won't start in an HA Controller setup. How do I resolve this?

My EUM Processor won't start in an HA Controller setup. How do I resolve this?

The following error is seen inside the EUM Processor log file when the EUM Processor is not able to start:

| Caused by: com.mchange.v2.resourcepool.CannotAcquireResourceException: A ResourcePool could not acquire a resource from its primary factory or source. 
| at com.mchange.v2.resourcepool.BasicResourcePool.awaitAvailable(BasicResourcePool.java:1422) 
| at com.mchange.v2.resourcepool.BasicResourcePool.prelimCheckoutResource(BasicResourcePool.java:606) 
| at com.mchange.v2.resourcepool.BasicResourcePool.checkoutResource(BasicResourcePool.java:526) 
| at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool.checkoutAndMarkConnectionInUse(C3P0PooledConnectionPool.java:756) 
| at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool.checkoutPooledConnection(C3P0PooledConnectionPool.java:683) 
| ... 14 more 
| 
+---------------------------------------------------------------------------------------

28 Aug 2017 14:12:02.746 +0200 main SqlAppStore ERROR 
| Exception caught while querying application store: 
| SQL: select * from applications where is_active=? and is_enabled=? 
| Params: [N, Y] 
| java.sql.SQLException: Connections could not be acquired from the underlying database! 
| at com.mchange.v2.sql.SqlUtils.toSQLException(SqlUtils.java:118) 
| at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool.checkoutPooledConnection(C3P0PooledConnectionPool.java:690) 
| at com.mchange.v2.c3p0.impl.AbstractPoolBackedDataSource.getConnection(AbstractPoolBackedDataSource.java:140) 
| at com.appdynamics.eumcloud.data.sql.SqlDBManager.getConnection(SqlDBManager.java:69)
| at com.appdynamics.eumcloud.data.sql.SqlAppStore.runQuery(SqlAppStore.java:345) 
| at com.appdynamics.eumcloud.data.sql.SqlAppStore.findInactiveApps(SqlAppStore.java:161) 
| at com.appdynamics.eumcloud.data.cache.AccountAppCache.refreshInactiveAccounts(AccountAppCache.java:225) 
| at com.appdynamics.eumcloud.data.cache.AccountAppCache.initialize(AccountAppCache.java:194) 
| at com.appdynamics.eum.processor.utils.EUMProcessorHelper.setupAuthenticator(EUMProcessorHelper.java:89) 
| at com.appdynamics.eum.processor.EUMProcessorServerApplication.run(EUMProcessorServerApplication.java:160) 
| at com.appdynamics.eum.processor.EUMProcessorServerApplication.run(EUMProcessorServerApplication.java:111) 
| at io.dropwizard.cli.EnvironmentCommand.run(EnvironmentCommand.java:42) 
| at io.dropwizard.cli.ConfiguredCommand.run(ConfiguredCommand.java:76) 
| at io.dropwizard.cli.Cli.run(Cli.java:70) 
| at io.dropwizard.Application.run(Application.java:72) 
| at com.appdynamics.eumcloud.EUMProcessorServer.main(EUMProcessorServer.java:40) 
| Caused by: com.mchange.v2.resourcepool.CannotAcquireResourceException: A ResourcePool could not acquire a resource from its primary factory or source. 
| at com.mchange.v2.resourcepool.BasicResourcePool.awaitAvailable(BasicResourcePool.java:1422) 
| at com.mchange.v2.resourcepool.BasicResourcePool.prelimCheckoutResource(BasicResourcePool.java:606) 
| at com.mchange.v2.resourcepool.BasicResourcePool.checkoutResource(BasicResourcePool.java:526) 
| at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool.checkoutAndMarkConnectionInUse(C3P0PooledConnectionPool.java:756) 
| at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool.checkoutPooledConnection(C3P0PooledConnectionPool.java:683) 
| ... 14 more 
| 
+---------------------------------------------------------------------------------------

This issue can happen in High Availability (HA) Controller setups, where the dbHosts property value under the #Database connection info section within the EUM properties file is pointing to the PASSIVE host of HA Controller setup.

In order to have an active connection to the eum_db schema within the Controller database, make sure to point this property value to an ACTIVE host.

Example: onprem.dbHost=<POINT_THIS_TO_THE_ACTIVE_CONTROLLER_HOST>

Note: In HA setups, the host can change dynamically, so in order to make sure that the EUM Processor remains up without manually changing the property value inside the the properties file, a Load Balancer can be put in place between the Controller and the EUM Processor which would help route connection from EUM Processor to active Controller host. 

Labels (1)
Version history
Last update:
‎08-31-2017 10:55 AM
Updated by: