cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

8.4 Data Extract MessageBus configuration

8.4 Data Extract MessageBus configuration

Symptoms

2023-11-10T17:46:33,036 WARN main activemq.transport.failover.FailoverTransport:283 - Transport (tcp://localhost:61616) failed, attempting to automatically reconnect java.io.IOException: Wire format negotiation timeout: peer did not send his wire format.

 

Diagnosis

This occurs when multiple IIQ servers are being used.  The host/port pair are entered into the database during initial IIQ setup using the /WEB-INF/config/dataextract/MessageBus.xml file.  Subsequent servers are confused by the localhost host entry.

This can be changed and imported after modifying the /WEB-INF/config/dataextract/MessageBus.xml file.

<entry key="clientConnectionString" value="failover:(tcp://localhost:61616)?initialReconnectDelay=10&amp;maxReconnectAttempts=10&amp;randomize=false&amp;startupMaxReconnectAttempts=10&amp;jms.watchTopicAdvisories=false&amp;jms.redeliveryPolicy.initialRedeliveryDelay=900000&amp;jms.redeliveryPolicy.redeliveryDelay=900000"/>

It can also be updated within the IIQ UI at Global Settings>Messaging Configuration>Connection Settings>Client Connection String

Solution

Replace tcp://localhost:61616 with a resolvable host or ip address.  (tcp://IIQHost1.example.com:61616 or tcp://10.10.10.10:61616)

If hostname can change, an IP address is the most stable.

If failover is desired a second comma separated entry can be added  (tcp://IIQHost1.example.com:61616,tcp://IIQHost2:61616)

Update

When adding a secondary Message Server to the configuration, be sure to update the iiq.properties file with the correct port if you do not use the same port.  The 0.0.0.0 means it is listening to any incoming IP on that port.

activeMQMessageServiceManager.brokerUri=tcp://0.0.0.0:61616?transport.trace=true&transport.soTimeout=10000

When configuring the message configuration client connection string for the first time, use the default values and change the port(s) in the UI first, then change it in the iiq.properties file to ensure the connections can happen on restart.

When adding new servers afterwards, update the client connection string in the UI before starting a new failover host, change to the configured port in the iiq.properties file on the new host, then start the host.

Another gotcha is you need to have the ports open in the firewall for each host, since it will timeout without a good indication of why it timed out.

Comments
bvo

i am installing identityiq 8.4 and using mssql and the port is 1433.  Everytime, I run core-deploy and it failed to connect to database.

ERROR Could not create plugin of type class org.apache.logging.log4j.core.appender.RollingFileAppender for element RollingFile: java.lang.IllegalStateException: ManagerFactory [org.apache.logging.log4j.core.appender.rolling.RollingFileManager$RollingFileManagerFactory@12299890] unable to create manager for [/opt/icam/logs/tomcat/icam.log] with data [org.apache.logging.log4j.core.appender.rolling.RollingFileManager$FactoryData@2fba3fc4[pattern=/opt/icam/logs/tomcat/icam.log.%d{yyyy-MM-dd}.gz, append=true, bufferedIO=true, bufferSize=8192, policy=CompositeTriggeringPolicy(policies=[TimeBasedTriggeringPolicy(nextRolloverMillis=0, interval=1, modulate=false)]), strategy=DefaultRolloverStrategy(min=1, max=7, useMax=true), advertiseURI=null, layout=%d{ISO8601} %5p %c{4}.%M:%L - %m%n, filePermissions=null, fileOwner=null]] java.lang.IllegalStateException: ManagerFactory [org.apache.logging.log4j.core.appender.rolling.RollingFileManager$RollingFileManagerFactory@12299890] unable to create manager for [/opt/icam/logs/tomcat/icam.log] with data [org.apache.logging.log4j.core.appender.rolling.RollingFileManager$FactoryData@2fba3fc4[pattern=/opt/icam/logs/tomcat/icam.log.%d{yyyy-MM-dd}.gz, append=true, bufferedIO=true, bufferSize=8192, policy=CompositeTriggeringPolicy(policies=[TimeBasedTriggeringPolicy(nextRolloverMillis=0, interval=1, modulate=false)]), strategy=DefaultRolloverStrategy(min=1, max=7, useMax=true), advertiseURI=null, layout=%d{ISO8601} %5p %c{4}.%M:%L - %m%n, filePermissions=null, fileOwner=null]]

ERROR Could not create plugin of type class org.apache.logging.log4j.core.appender.RollingFileAppender for element RollingFile: java.lang.IllegalStateException: ManagerFactory [org.apache.logging.log4j.core.appender.rolling.RollingFileManager$RollingFileManagerFactory@12299890] unable to create manager for [/opt/icam/logs/tomcat/icam.log] with data [org.apache.logging.log4j.core.appender.rolling.RollingFileManager$FactoryData@2fba3fc4[pattern=/opt/icam/logs/tomcat/icam.log.%d{yyyy-MM-dd}.gz, append=true, bufferedIO=true, bufferSize=8192, policy=CompositeTriggeringPolicy(policies=[TimeBasedTriggeringPolicy(nextRolloverMillis=0, interval=1, modulate=false)]), strategy=DefaultRolloverStrategy(min=1, max=7, useMax=true), advertiseURI=null, layout=%d{ISO8601} %5p %c{4}.%M:%L - %m%n, filePermissions=null, fileOwner=null]] java.lang.IllegalStateException: ManagerFactory [org.apache.logging.log4j.core.appender.rolling.RollingFileManager$RollingFileManagerFactory@12299890] unable to create manager for [/opt/icam/logs/tomcat/icam.log] with data [org.apache.logging.log4j.core.appender.rolling.RollingFileManager$FactoryData@2fba3fc4[pattern=/opt/icam/logs/tomcat/icam.log.%d{yyyy-MM-dd}.gz, append=true, bufferedIO=true, bufferSize=8192, policy=CompositeTriggeringPolicy(policies=[TimeBasedTriggeringPolicy(nextRolloverMillis=0, interval=1, modulate=false)]), strategy=DefaultRolloverStrategy(min=1, max=7, useMax=true), advertiseURI=null, layout=%d{ISO8601} %5p %c{4}.%M:%L - %m%n, filePermissions=null, fileOwner=null]]
 

WARN springframework.context.support.ClassPathXmlApplicationContext.refresh:559 - Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'versionChecker' defined in class path resource [configBeans.xml]: Invocation of init method failed; nested exception is java.lang.RuntimeException: Unable to check AccessHistory database version: Unable to connect to: jdbc:sqlserver://mssql-server:1433;databaseName=identityiq;

Invocation of init method failed; nested exception is java.lang.RuntimeException: Unable to check IdentityIQ database version: Unable to connect to: jdbc:sqlserver

how to resolve this issue, this took a month to install and never work at all to make it work on rhel 8

 

thank you.

Bach-Nga

bvo

2024-02-29 09:19:41,032 main ERROR Null object returned for RollingFile in Appenders.
2024-02-29 09:19:41,032 main ERROR Unable to locate appender "file" for logger config "root"
iiq.hostname : nediacsailpoint8.dodiis.ic.gov-console
2024-02-29T09:19:42,293 WARN main springframework.context.support.ClassPathXmlApplicationContext:559 - Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'versionChecker' defined in class path resource [configBeans.xml]: Invocation of init method failed; nested exception is java.lang.RuntimeException: Unable to check AccessHistory database version: Unable to connect to: jdbc:sqlserver://10.0.160.62:1433;databaseName=identityiqah;
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'versionChecker' defined in class path resource [configBeans.xml]: Invocation of init method failed; nested exception is java.lang.RuntimeException: Unable to check AccessHistory database version: Unable to connect to: jdbc:sqlserver://mssql-server:1433;databaseName=identityiqah;

 

that would be your database schema for identityiqah.database_version not matching .  you need to run the correct sql script for upgrade or patch . 

Version history
Revision #:
8 of 8
Last update:
‎Dec 16, 2024 11:22 AM
Updated by:
 
Contributors