ActiveMQ Configuration making Sailpoint down

Which IIQ version are you inquiring about?

Version 8.4

Share all details related to your problem, including any error messages you may have received.

Hello,
We recently upgraded to 8.4 without any major issue. After upgrading, I enabled Messaging from global settings without changing anything(default values). Once I shut down tomcat and restarted it, SailPoint is not loading. I am looking at the logs and I see that the error is being thrown from ActiveMQ. On the set up for ActiveMQ I see these properties on IIQ.properties:
messageServiceFactory.type=activemq
activeMQMessageServiceManager.brokerUri=tcp://localhost:61616?transport.trace=true&transport.soTimeout=10000
activeMQMessageServiceManager.activemqLocker=org.apache.activemq.store.jdbc.LeaseDatabaseLocker

ActiveMQ Broker System Usage limit sizing in Megabytes

activeMQMessageServiceManager.memoryLimit=1024
activeMQMessageServiceManager.storeLimit=100000
activeMQMessageServiceManager.tempLimit=50000

I have tried localhost:61616?, (tomcatserverMachine):61616, as well and still cannot load sailpoint.
Should I be entering the identityiq database machine ? or should I be entering Access History database machine? they are all seperate for us.
Can someone help me bring SailPoint up? Is there something wrong I am doing on IIQ.properties?
Also how should I be setting up ActiveMQ properly to use Access History?

LOGS:
2024-02-14T00:17:59,882 ERROR ServerThread sailpoint.messagebus.impl.ActiveMQMessageServiceManager:120 startupBrokerService - The ActiveMQ JDBCAdapter class has not been supplied and broker setup is unable to continue.
2024-02-14T00:17:59,889 INFO ServerThread hibernate.engine.internal.StatisticalLoggingSessionEventListener:258 end - Session Metrics {
235000 nanoseconds spent acquiring 1 JDBC connections;
0 nanoseconds spent releasing 0 JDBC connections;
12700 nanoseconds spent preparing 2 JDBC statements;
606300 nanoseconds spent executing 2 JDBC statements;
0 nanoseconds spent executing 0 JDBC batches;
3400 nanoseconds spent performing 2 L2C puts;
0 nanoseconds spent performing 0 L2C hits;
0 nanoseconds spent performing 0 L2C misses;
466800 nanoseconds spent executing 1 flushes (flushing a total of 1 entities and 0 collections);
0 nanoseconds spent executing 0 partial-flushes (flushing a total of 0 entities and 0 collections)
}
2024-02-14T00:17:59,886 ERROR ServerThread sailpoint.messagebus.impl.ActiveMQMessageServiceManager:217 startupBrokerService - There has been an error when setting up the broker persistence.
sailpoint.tools.GeneralException: The ActiveMQ JDBCAdapter class has not been supplied and broker setup is unable to continue.
at sailpoint.messagebus.impl.ActiveMQMessageServiceManager.startupBrokerService(ActiveMQMessageServiceManager.java:121) [identityiq.jar:8.4 Build bdd0ed4de58-20230919-192552]
at sailpoint.messagebus.impl.ActiveMQMessageServiceManager.start(ActiveMQMessageServiceManager.java:96) [identityiq.jar:8.4 Build bdd0ed4de58-20230919-192552]
at sailpoint.server.EmbeddedBrokerService.start(EmbeddedBrokerService.java:53) [identityiq.jar:8.4 Build bdd0ed4de58-20230919-192552]
at sailpoint.server.Servicer.manageLife(Servicer.java:1251) [identityiq.jar:8.4 Build bdd0ed4de58-20230919-192552]
at sailpoint.server.Servicer.applyServerOverrides(Servicer.java:1142) [identityiq.jar:8.4 Build bdd0ed4de58-20230919-192552]
at sailpoint.server.Servicer.processServices(Servicer.java:1047) [identityiq.jar:8.4 Build bdd0ed4de58-20230919-192552]
at sailpoint.server.Servicer.run(Servicer.java:831) [identityiq.jar:8.4 Build bdd0ed4de58-20230919-192552]
2024-02-14T00:17:59,892 INFO ServerThread hibernate.engine.internal.StatisticalLoggingSessionEventListener:258 end - Session Metrics {
229600 nanoseconds spent acquiring 1 JDBC connections;
0 nanoseconds spent releasing 0 JDBC connections;
11300 nanoseconds spent preparing 2 JDBC statements;
490600 nanoseconds spent executing 2 JDBC statements;
0 nanoseconds spent executing 0 JDBC batches;
4400 nanoseconds spent performing 2 L2C puts;
0 nanoseconds spent performing 0 L2C hits;
0 nanoseconds spent performing 0 L2C misses;
345000 nanoseconds spent executing 1 flushes (flushing a total of 1 entities and 0 collections);
0 nanoseconds spent executing 0 partial-flushes (flushing a total of 0 entities and 0 collections)
}
2024-02-14T00:17:59,889 ERROR ServerThread sailpoint.messagebus.impl.ActiveMQMessageServiceManager:99 start - An error has occurred when trying to start the activemq broker: There has been an error when setting up the broker persistence.
2024-02-14T00:17:59,896 INFO ServerThread hibernate.engine.internal.StatisticalLoggingSessionEventListener:258 end - Session Metrics {
237500 nanoseconds spent acquiring 1 JDBC connections;
0 nanoseconds spent releasing 0 JDBC connections;
10500 nanoseconds spent preparing 2 JDBC statements;
468600 nanoseconds spent executing 2 JDBC statements;
0 nanoseconds spent executing 0 JDBC batches;
3600 nanoseconds spent performing 2 L2C puts;
0 nanoseconds spent performing 0 L2C hits;
0 nanoseconds spent performing 0 L2C misses;
333000 nanoseconds spent executing 1 flushes (flushing a total of 1 entities and 0 collections);
0 nanoseconds spent executing 0 partial-flushes (flushing a total of 0 entities and 0 collections)
}

Regards,
Ankit Aryal

1 Like

ActiveMQ creates 3x tables on first start.
Does your database user have sufficient permissions to perform some DMLs?

Yes the database User have sufficient permissions to perform DMLs. I keep getting these errors:
2024-02-15T10:50:28,197 WARN main sailpoint.messagebus.impl.ActiveMQMessageServiceManager:525 executeStatement - Could not create JDBC tables; they could already exist. Failure was: CREATE INDEX ACTIVEMQ_MSGS_EIDX ON ACTIVEMQ_MSGS (EXPIRATION) Message: Cannot find the object “ACTIVEMQ_MSGS” because it does not exist or you do not have permissions. SQLState: S0012 Vendor code: 1088
2024-02-15T10:50:28,197 WARN main activemq.store.jdbc.JDBCPersistenceAdapter:648 log - Failure details: Cannot find the object “ACTIVEMQ_MSGS” because it does not exist or you do not have permissions.
com.microsoft.sqlserver.jdbc.SQLServerException: Cannot find the object “ACTIVEMQ_MSGS” because it does not exist or you do not have permissions.
at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:265) ~[mssql-jdbc-12.2.0.jre8.jar:?]
at com.microsoft.sqlserver.jdbc.SQLServerStatement.getNextResult(SQLServerStatement.java:1695) ~[mssql-jdbc-12.2.0.jre8.jar:?]
at com.microsoft.sqlserver.jdbc.SQLServerStatement.doExecuteStatement(SQLServerStatement.java:920) ~[mssql-jdbc-12.2.0.jre8.jar:?]
at com.microsoft.sqlserver.jdbc.SQLServerStatement$StmtExecCmd.doExecute(SQLServerStatement.java:814) ~[mssql-jdbc-12.2.0.jre8.jar:?]
at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7685) ~[mssql-jdbc-12.2.0.jre8.jar:?]
at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:4048) ~[mssql-jdbc-12.2.0.jre8.jar:?]
at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeCommand(SQLServerStatement.java:272) ~[mssql-jdbc-12.2.0.jre8.jar:?]
at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeStatement(SQLServerStatement.java:246) ~[mssql-jdbc-12.2.0.jre8.jar:?]
at com.microsoft.sqlserver.jdbc.SQLServerStatement.execute(SQLServerStatement.java:787) ~[mssql-jdbc-12.2.0.jre8.jar:?]
at org.apache.commons.dbcp2.DelegatingStatement.execute(DelegatingStatement.java:193) ~[commons-dbcp2-2.9.0.jar:2.9.0]
at org.apache.commons.dbcp2.DelegatingStatement.execute(DelegatingStatement.java:193) ~[commons-dbcp2-2.9.0.jar:2.9.0]
at sailpoint.messagebus.impl.ActiveMQMessageServiceManager.executeStatement(ActiveMQMessageServiceManager.java:522) ~[identityiq.jar:8.4 Build bdd0ed4de58-20230919-192552]
at sailpoint.messagebus.impl.ActiveMQMessageServiceManager.doCreateTables(ActiveMQMessageServiceManager.java:489) ~[identityiq.jar:8.4 Build bdd0ed4de58-20230919-192552]
at sailpoint.messagebus.impl.ActiveMQMessageServiceManager.startupBrokerService(ActiveMQMessageServiceManager.java:130) ~[identityiq.jar:8.4 Build bdd0ed4de58-20230919-192552]
at sailpoint.messagebus.impl.ActiveMQMessageServiceManager.start(ActiveMQMessageServiceManager.java:96) ~[identityiq.jar:8.4 Build bdd0ed4de58-20230919-192552]
at sailpoint.server.EmbeddedBrokerService.start(EmbeddedBrokerService.java:53) ~[identityiq.jar:8.4 Build bdd0ed4de58-20230919-192552]
at sailpoint.server.Servicer.startStartupService(Servicer.java:384) ~[identityiq.jar:8.4 Build bdd0ed4de58-20230919-192552]
at sailpoint.server.Servicer.configureStartup(Servicer.java:367) ~[identityiq.jar:8.4 Build bdd0ed4de58-20230919-192552]
at sailpoint.server.Environment.start(Environment.java:455) ~[identityiq.jar:8.4 Build bdd0ed4de58-20230919-192552]
at sailpoint.server.SystemStarter.springInit(SystemStarter.java:59) ~[identityiq.jar:8.4 Build bdd0ed4de58-20230919-192552]
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[?:?]
at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
at java.lang.reflect.Method.invoke(Method.java:568) ~[?:?]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeCustomInitMethod(AbstractAutowireCapableBeanFactory.java:1925) ~[spring-beans-5.2.24.RELEASE.jar:5.2.24.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1867) ~[spring-beans-5.2.24.RELEASE.jar:5.2.24.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1795) ~[spring-beans-5.2.24.RELEASE.jar:5.2.24.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:594) ~[spring-beans-5.2.24.RELEASE.jar:5.2.24.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:516) ~[spring-beans-5.2.24.RELEASE.jar:5.2.24.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:324) ~[spring-beans-5.2.24.RELEASE.jar:5.2.24.RELEASE]
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) [spring-beans-5.2.24.RELEASE.jar:5.2.24.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:322) [spring-beans-5.2.24.RELEASE.jar:5.2.24.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202) [spring-beans-5.2.24.RELEASE.jar:5.2.24.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:311) [spring-beans-5.2.24.RELEASE.jar:5.2.24.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202) [spring-beans-5.2.24.RELEASE.jar:5.2.24.RELEASE]
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:897) [spring-beans-5.2.24.RELEASE.jar:5.2.24.RELEASE]
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:879) [spring-context-5.2.24.RELEASE.jar:5.2.24.RELEASE]
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:551) [spring-context-5.2.24.RELEASE.jar:5.2.24.RELEASE]
at org.springframework.context.support.ClassPathXmlApplicationContext.(ClassPathXmlApplicationContext.java:144) [spring-context-5.2.24.RELEASE.jar:5.2.24.RELEASE]
at org.springframework.context.support.ClassPathXmlApplicationContext.(ClassPathXmlApplicationContext.java:85) [spring-context-5.2.24.RELEASE.jar:5.2.24.RELEASE]
at sailpoint.spring.SpringStarter.start(SpringStarter.java:333) [identityiq.jar:8.4 Build bdd0ed4de58-20230919-192552]
at sailpoint.web.StartupContextListener.contextInitialized(StartupContextListener.java:91) [identityiq.jar:8.4 Build bdd0ed4de58-20230919-192552]
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4768) [catalina.jar:9.0.64]
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5230) [catalina.jar:9.0.64]
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) [catalina.jar:9.0.64]
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:726) [catalina.jar:9.0.64]
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:698) [catalina.jar:9.0.64]
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:696) [catalina.jar:9.0.64]
at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1185) [catalina.jar:9.0.64]
at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1933) [catalina.jar:9.0.64]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539) [?:?]
at java.util.concurrent.FutureTask.run(FutureTask.java:264) [?:?]
at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75) [tomcat-util.jar:9.0.64]
at java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:123) [?:?]
at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:1095) [catalina.jar:9.0.64]
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:477) [catalina.jar:9.0.64]
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1618) [catalina.jar:9.0.64]
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:319) [catalina.jar:9.0.64]
at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:123) [catalina.jar:9.0.64]
at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:423) [catalina.jar:9.0.64]
at org.apache.catalina.util.LifecycleBase.setState(LifecycleBase.java:366) [catalina.jar:9.0.64]
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:946) [catalina.jar:9.0.64]
at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:835) [catalina.jar:9.0.64]
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) [catalina.jar:9.0.64]
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1396) [catalina.jar:9.0.64]
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1386) [catalina.jar:9.0.64]
at java.util.concurrent.FutureTask.run(FutureTask.java:264) [?:?]
at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75) [tomcat-util.jar:9.0.64]
at java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:145) [?:?]
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:919) [catalina.jar:9.0.64]
at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:263) [catalina.jar:9.0.64]
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) [catalina.jar:9.0.64]
at org.apache.catalina.core.StandardService.startInternal(StandardService.java:432) [catalina.jar:9.0.64]
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) [catalina.jar:9.0.64]
at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:930) [catalina.jar:9.0.64]
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) [catalina.jar:9.0.64]
at org.apache.catalina.startup.Catalina.start(Catalina.java:772) [catalina.jar:9.0.64]
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[?:?]
at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
at java.lang.reflect.Method.invoke(Method.java:568) ~[?:?]
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:345) [bootstrap.jar:9.0.64]
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:476) [bootstrap.jar:9.0.64]
2024-02-15T10:50:28,213 WARN main sailpoint.messagebus.impl.ActiveMQMessageServiceManager:525 executeStatement - Could not create JDBC tables; they could already exist. Failure was: CREATE TABLE identityiqdev1.ACTIVEMQ_ACKS(CONTAINER VARCHAR(250) NOT NULL, SUB_DEST VARCHAR(250), CLIENT_ID VARCHAR(250) NOT NULL, SUB_NAME VARCHAR(250) NOT NULL, SELECTOR VARCHAR(250), LAST_ACKED_ID BIGINT, CONSTRAINT PK_ACTIVEMQ_ACKS PRIMARY KEY ( CONTAINER, CLIENT_ID, SUB_NAME)) Message: The specified schema name “databaseName” either does not exist or you do not have permission to use it. SQLState: S0001 Vendor code: 2760
2024-02-15T10:50:28,213 WARN main activemq.store.jdbc.JDBCPersistenceAdapter:648 log - Failure details: The specified schema name “identityiqdev1” either does not exist or you do not have permission to use it.
com.microsoft.sqlserver.jdbc.SQLServerException: The specified schema name “identityiqdev1” either does not exist or you do not have permission to use it.
at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:265) ~[mssql-jdbc-12.2.0.jre8.jar:?]
at com.microsoft.sqlserver.jdbc.SQLServerStatement.getNextResult(SQLServerStatement.java:1695) ~[mssql-jdbc-12.2.0.jre8.jar:?]
at com.microsoft.sqlserver.jdbc.SQLServerStatement.doExecuteStatement(SQLServerStatement.java:920) ~[mssql-jdbc-12.2.0.jre8.jar:?]
at com.microsoft.sqlserver.jdbc.SQLServerStatement$StmtExecCmd.doExecute(SQLServerStatement.java:814) ~[mssql-jdbc-12.2.0.jre8.jar:?]
at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7685) ~[mssql-jdbc-12.2.0.jre8.jar:?]
at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:4048) ~[mssql-jdbc-12.2.0.jre8.jar:?]
at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeCommand(SQLServerStatement.java:272) ~[mssql-jdbc-12.2.0.jre8.jar:?]
at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeStatement(SQLServerStatement.java:246) ~[mssql-jdbc-12.2.0.jre8.jar:?]
at com.microsoft.sqlserver.jdbc.SQLServerStatement.execute(SQLServerStatement.java:787) ~[mssql-jdbc-12.2.0.jre8.jar:?]
at org.apache.commons.dbcp2.DelegatingStatement.execute(DelegatingStatement.java:193) ~[commons-dbcp2-2.9.0.jar:2.9.0]
at org.apache.commons.dbcp2.DelegatingStatement.execute(DelegatingStatement.java:193) ~[commons-dbcp2-2.9.0.jar:2.9.0]
at sailpoint.messagebus.impl.ActiveMQMessageServiceManager.executeStatement(ActiveMQMessageServiceManager.java:522) ~[identityiq.jar:8.4 Build bdd0ed4de58-20230919-192552]
at sailpoint.messagebus.impl.ActiveMQMessageServiceManager.doCreateTables(ActiveMQMessageServiceManager.java:489) ~[identityiq.jar:8.4 Build bdd0ed4de58-20230919-192552]
at sailpoint.messagebus.impl.ActiveMQMessageServiceManager.startupBrokerService(ActiveMQMessageServiceManager.java:130) ~[identityiq.jar:8.4 Build bdd0ed4de58-20230919-192552]
at sailpoint.messagebus.impl.ActiveMQMessageServiceManager.start(ActiveMQMessageServiceManager.java:96) ~[identityiq.jar:8.4 Build bdd0ed4de58-20230919-192552]
at sailpoint.server.EmbeddedBrokerService.start(EmbeddedBrokerService.java:53) ~[identityiq.jar:8.4 Build bdd0ed4de58-20230919-192552]
at sailpoint.server.Servicer.startStartupService(Servicer.java:384) ~[identityiq.jar:8.4 Build bdd0ed4de58-20230919-192552]
at sailpoint.server.Servicer.configureStartup(Servicer.java:367) ~[identityiq.jar:8.4 Build bdd0ed4de58-20230919-192552]
at sailpoint.server.Environment.start(Environment.java:455) ~[identityiq.jar:8.4 Build bdd0ed4de58-20230919-192552]
at sailpoint.server.SystemStarter.springInit(SystemStarter.java:59) ~[identityiq.jar:8.4 Build bdd0ed4de58-20230919-192552]
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[?:?]
at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
at java.lang.reflect.Method.invoke(Method.java:568) ~[?:?]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeCustomInitMethod(AbstractAutowireCapableBeanFactory.java:1925) ~[spring-beans-5.2.24.RELEASE.jar:5.2.24.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1867) ~[spring-beans-5.2.24.RELEASE.jar:5.2.24.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1795) ~[spring-beans-5.2.24.RELEASE.jar:5.2.24.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:594) ~[spring-beans-5.2.24.RELEASE.jar:5.2.24.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:516) ~[spring-beans-5.2.24.RELEASE.jar:5.2.24.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:324) ~[spring-beans-5.2.24.RELEASE.jar:5.2.24.RELEASE]
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) [spring-beans-5.2.24.RELEASE.jar:5.2.24.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:322) [spring-beans-5.2.24.RELEASE.jar:5.2.24.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202) [spring-beans-5.2.24.RELEASE.jar:5.2.24.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:311) [spring-beans-5.2.24.RELEASE.jar:5.2.24.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202) [spring-beans-5.2.24.RELEASE.jar:5.2.24.RELEASE]
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:897) [spring-beans-5.2.24.RELEASE.jar:5.2.24.RELEASE]
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:879) [spring-context-5.2.24.RELEASE.jar:5.2.24.RELEASE]
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:551) [spring-context-5.2.24.RELEASE.jar:5.2.24.RELEASE]
at org.springframework.context.support.ClassPathXmlApplicationContext.(ClassPathXmlApplicationContext.java:144) [spring-context-5.2.24.RELEASE.jar:5.2.24.RELEASE]
at org.springframework.context.support.ClassPathXmlApplicationContext.(ClassPathXmlApplicationContext.java:85) [spring-context-5.2.24.RELEASE.jar:5.2.24.RELEASE]
at sailpoint.spring.SpringStarter.start(SpringStarter.java:333) [identityiq.jar:8.4 Build bdd0ed4de58-20230919-192552]
at sailpoint.web.StartupContextListener.contextInitialized(StartupContextListener.java:91) [identityiq.jar:8.4 Build bdd0ed4de58-20230919-192552]
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4768) [catalina.jar:9.0.64]
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5230) [catalina.jar:9.0.64]
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) [catalina.jar:9.0.64]
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:726) [catalina.jar:9.0.64]

Also I see on the messaging tab there are user IDs and PW to be entered. Which ids should I be using? the databse user id and pw or spadmin or just leave it as is?

Then you have exactly the suspected issue.
The ACTIVEMQ_* tables must created in the same schema as IdentityIQ. If they are not in place, then something is wrong with your database configuration.

If some elements are allready exists, I would delete them and give it a new try one more times, until it is all in correct/same schema. :wink:

good luck

Hello @chriskk You are right. I see that the ActiveMQ is trying to create table on diferent schema. Our database is “identityiqdev1” but the schema is “identityiq”. What I see in logs is this:
The specified schema name “identityiqdev1” either does not exist or you do not have permission to use it. SQLState: S0001 Vendor code: 2760
This means that sailpoint is confusing database name with the table name. Is there anywhere on configuration or on server side that we can change this to read the schema name and not the database name? We do not want to change the database schema name from database.

Just talk with your database admins, they could try to set a default schema for your user.
Not use, if this help, but this is a custom configuration issue with mssql :wink:

Hey @chriskk , Did you have to install ActiveMQ in tomcat before any of this to take place? I was researching and found that ActiveMQ needs to be installed as a war deployment for tomcat. Not sure how iiq is leveraging activeMQ but does this step need to be done before enabling messaging?

ActiveMQ is included in IIQ and is started when it is enabled.
And no, its not necessary to install manually. But yes, its still an option to install ActiveMQ separately and configure it as external (not embedded).

We had similar issues with our username “identityiq_dev”, but we took the easiest solution and renamed our username. Another option would be to move the IIQ tables to “identityiq_dev” (maybe in your case).

And yes, IIQ is max. inconsistent with many topics, we have to deal with that… :confused:

Just a note, this is your first attempt to run IIQ with ActiveMQ, the next problems will come when u run IIQ+ActiveMQ in a Kubernetes cluster :wink:

Hi @chriskk ,

I do have same issue with containers. One container is coming up and the iiq application is working fine, but on other containers, the iiq failing.
Could you please suggest on how to overcome the issue.

Below are the logs

Caused by: sailpoint.tools.GeneralException: Unable to start activemq connection. Make sure the broker is available and ready to receive messages.
        at sailpoint.messagebus.impl.ActiveMQMessageService.startConnection(ActiveMQMessageService.java:409)
        at sailpoint.messagebus.impl.ActiveMQMessageService.<init>(ActiveMQMessageService.java:94)
        at sailpoint.messagebus.api.MessageServiceFactory.createMessageService(MessageServiceFactory.java:74)
        at sailpoint.messagebus.monitoring.impl.BrokerConnectionHealthChecker.checkHealthStatus(BrokerConnectionHealthChecker.java:33)
        ... 66 more
Caused by: javax.jms.JMSException: Disposed due to prior exception
        at org.apache.activemq.util.JMSExceptionSupport.create(JMSExceptionSupport.java:56)
        at org.apache.activemq.ActiveMQConnection.syncSendPacket(ActiveMQConnection.java:1405)
        at org.apache.activemq.ActiveMQConnection.ensureConnectionInfoSent(ActiveMQConnection.java:1488)
        at org.apache.activemq.ActiveMQConnection.start(ActiveMQConnection.java:530)
        at sailpoint.messagebus.impl.ActiveMQMessageService.startConnection(ActiveMQMessageService.java:395)
        ... 69 more
Caused by: org.apache.activemq.transport.TransportDisposedIOException: Disposed due to prior exception
        at org.apache.activemq.transport.ResponseCorrelator.onException(ResponseCorrelator.java:125)
        at org.apache.activemq.transport.TransportFilter.onException(TransportFilter.java:114)
        at org.apache.activemq.transport.failover.FailoverTransport.propagateFailureToExceptionListener(FailoverTransport.java:1154)
        at org.apache.activemq.transport.failover.FailoverTransport.doReconnect(FailoverTransport.java:1103)
        at org.apache.activemq.transport.failover.FailoverTransport$2.iterate(FailoverTransport.java:151)
        at org.apache.activemq.thread.PooledTaskRunner.runTask(PooledTaskRunner.java:133)
        at org.apache.activemq.thread.PooledTaskRunner$1.run(PooledTaskRunner.java:48)
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
        at java.base/java.lang.Thread.run(Unknown Source)
Caused by: java.io.IOException: Wire format negotiation timeout: peer did not send his wire format.
        at org.apache.activemq.transport.WireFormatNegotiator.oneway(WireFormatNegotiator.java:99)
        at org.apache.activemq.transport.failover.FailoverTransport.restoreTransport(FailoverTransport.java:859)
        at org.apache.activemq.transport.failover.FailoverTransport.doReconnect(FailoverTransport.java:1029)
        ... 6 more

20-Mar-2024 10:45:10.789 SEVERE [main] org.apache.catalina.core.StandardContext.startInternal One or more listeners failed to start. Full details will be found in the appropriate container log file
20-Mar-2024 10:45:10.792 SEVERE [main] org.apache.catalina.core.StandardContext.startInternal Context [/iiq] startup failed due to previous errors
20-Mar-2024 10:45:10.823 WARNING [main] org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesJdbc The web application [iiq] registered the JDBC driver [com.mysql.cj.jdbc.Driver] but failed to unregister it when the web application was stopped. To prevent a memory leak, the JDBC Driver has been forcibly unregistered.
20-Mar-2024 10:45:10.826 WARNING [main] org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesThreads The web application [iiq] appears to have started a thread named [Log4j2-TF-3-Scheduled-1] but has failed to stop it. This is very likely to create a memory leak. Stack trace of thread:

Regards
Madhu

Please have a look at this IIQ Wiki article: 8.4 Data Extract MessageBus configuration

It is ‘relativ’ simple and working with a failover princip. Pls note, this is an ActiveMQ detail and the best information will find on official ActiveMQ sites.

But what we have done was to open the MessageBusConfiguration in IIQ
IIQ → Global Settings → Messaging Configuration

The “client connection string” needs to extend with all your node’s.

Example:
failover:(tcp://localhost:61616)?initialReconnectDelay=10&maxReconnectAttempts=10&randomize=false&startupMaxReconnectAttempts=10&jms.watchTopicAdvisories=false&jms.redeliveryPolicy.initialRedeliveryDelay=900000&jms.redeliveryPolicy.redeliveryDelay=900000

relvant is the beginning with ‘failover’:
failover:(tcp://server1:61616,tcp://server2:61616,tcp://server3:61616,…)

note: it is always only one node active, the active node is saved in database. If the timestamp in database is no longer in time, the node is maybe dead and another node takes over.

Thanks @chriskk for your inputs.
I am able to setup MQ on a kubernetes pod, but comminucation is not successful between IIQ and MQ pods using Kubernetes service.

For failover, it is not possible to rely on inidividual pod details. I am thinking to use kubernetes Ingress configuration for the same.