KB Article #181439
sysupgrade apply fails on multi-node system with ActiveMQ
Problem
The system being upgrade contains an ActiveMQ broker in one group with another group being a client to this service.
During the "sysupgrade apply" step of the ActiveMQ client node a generic sysupgrade error occurs :-
Node Manager started.
Starting gateway HOST for group GROUPNAME
Data apply (create topology, import data) failed
------------------------------------------------
ERROR: com.vordel.api.nm.NodeManagerAPIException: Node Manager error: error occurred on call from Node Manager on 'HOST' to https://HOST:8085' for URL '/api/configuration' and 'PUT'
.
HTTP status: 500.
Error code: 102
Looking at the last trace file for the new instance being created we see that it's blocked trying to connect to JMS because the last line doesn't change after a long wait.
INFO 22/Nov/2020:13:05:56.073 [75a1:e653ba5f0200aa2d85d76ebd] JMS service: max number threads: 20 INFO 22/Nov/2020:13:05:56.077 [75a1:e653ba5f0200aa2d85d76ebd] JMS service: com.vordel.jms.apache.activemq.InitialContextFactory => failover://(ssl://amq-server1:61616,ssl://amq-server2:61616) DEBUG 22/Nov/2020:13:05:56.079 [75a1:e653ba5f0200aa2d85d76ebd] Executing reconnect to JMS Service GrpName INFO 22/Nov/2020:13:05:56.142 [75a1:e653ba5f0200aa2d85d76ebd] Connecting to JMS service GrpName with no credentials INFO 22/Nov/2020:13:05:56.283 [75a1:e653ba5f0200aa2d85d76ebd] Starting JMS connection to GrpName
Resolution
This was solved by adding a timeout parameter to the ActiveMQ JMS URL:-
Edit the project via Policy Studio and enter the connection string as below
failover://(ssl://amq-server1:61616,ssl://amq-server2:61616)?initialReconnectDelay=2000&maxReconnectAttempts=2
This new fed will need to be placed in the upgrade location for the group that failed to deploy
/<New Install dir>/upgrade/bin/out/upgrade/esgroups/groups/group-N/
Re-run the sysupgrade apply with --force which should now succeed because of the connection timeout.
For further information about the Active MQ failover timeouts see https://activemq.apache.org/failover-transport-reference.html
also for TCP transport http://activemq.apache.org/tcp-transport-reference