We just upgraded our container from Karaf 2.2.10 to 2.3.3 and are now
having some significant issues on shutdown. Previously, everything would
shut down in a normal order but now for some reasons things with lower
start levels are shutting down first. Our big problem is ActiveMQ. We have
our activemq broker starting with a start level of 60 and our normal
bundles (mostly camel) starting at 80. But on shutdown the first thing that
shows up in the logs is this.
23:46:38,243 | INFO | Thread-2 | Main
| - - | Karaf shutdown socket: received shutdown command. Stopping
framework...
23:46:38,266 | INFO | FelixShutdown | BlueprintExtender
| 7 - org.apache.aries.blueprint.core - 1.1.0 | Destroying
BlueprintContainer for bundle activemq-broker.xml
23:46:38,290 | INFO | FelixShutdown | BrokerService
| 133 - org.apache.activemq.activemq-osgi - 5.9.0 | Apache ActiveMQ 5.9.0
(default, ID:CXTPRO-CG.local-49654-1392332684735-0:1) is shutting down
23:46:38,368 | INFO | FelixShutdown | TransportConnector
| 133 - org.apache.activemq.activemq-osgi - 5.9.0 | Connector openwire
stopped
23:46:38,436 | INFO | FelixShutdown | TransportConnector
| 133 - org.apache.activemq.activemq-osgi - 5.9.0 | Connector stomp stopped
As you can imagine that causes problems because now that the broker doesn't
exist the bundles that use it start throwing errors and in-flight
transactions are failing.
23:46:38,440 | INFO | : vm://default#0 | PooledConnectionFactory
| 133 - org.apache.activemq.activemq-osgi - 5.9.0 | Expiring connection
ActiveMQConnection
{id=ID:CXTPRO-CG.local-49654-1392332684735-3:1,clientId=ID:CXTPRO-CG.local-49654-1392332684735-2:8,started=false}
on IOException: org.apache.activemq.transport.TransportDisposedIOException:
peer (vm://default#1) stopped.
23:46:38,444 | WARN | n-notifications] | faultJmsMessageListenerContainer
| 163 - org.springframework.jms - 3.2.4.RELEASE | Setup of JMS message
listener invoker failed for destination 'permission-notifications' - trying
to recover. Cause: peer (vm://default#3) stopped.
23:46:38,444 | WARN | t-notifications] | PooledSession
| 133 - org.apache.activemq.activemq-osgi - 5.9.0 | Caught exception
trying rollback() when putting session back into the pool, will invalidate.
javax.jms.IllegalStateException: The Session is closed
Is there anything we can do to restore an orderly shutdown order?
Thanks,
Chris