Tuesday, April 16, 2013

Session Failover with Sun GlassFish(tm) Message Queue 4.4

Older versions of OpenAM ( version < 10.1-Xpress) are utilizing Sun GlassFish(tm) Message Queue 4.4 for session failover.

Sun GlassFish(tm) Message Queue 4.4 is quite a black box to me. I find it hard to debug when things go wrong.

Now, at least I learnt a few sanity checks to ensure the broker cluster is running OK.

1. Ensure Message Broker is started properly

- Once AMSFO is configured, run ./amsfo start
- Tail the log file at ../jmq/imq/var/instances/ambroker/log/log.txt
- Make sure there is this line "Broker "ambroker@xxx.xxx.xx:YYYY" ready."

2. Ensure Session Failover is enabled

- Once AMSFO is configured, the 1st thing I'll do is to turn the debug log of each OpenAM server to MESSAGE level.
- Restart each OpenAM server
- Tail the Session debug log
- Make sure there is this line "Session Failover Enabled = true"

PS: If you see the following,

[16/Apr/2013:17:12:54 SGT] [B1066]:   Closing: amuser@>jms:37124 because "[B0059]: Client closed the connection". Count: service=0 broker=2

or in Session debug file

amSession:04/16/2013 10:28:38:019 PM SGT: Thread[localhost-startStop-2,5,main]
ERROR: Session failover service is not functional due to DB unavailability.
javax.jms.IllegalStateException: [C4059]: Cannot perform operation, session is closed.
at com.sun.messaging.jmq.jmsclient.SessionImpl.checkSessionState(SessionImpl.java:1844)
at com.sun.messaging.jmq.jmsclient.SessionImpl.createBytesMessage(SessionImpl.java:1873)
at com.sun.identity.ha.jmqdb.FAMRecordJMQPersister.send(FAMRecordJMQPersister.java:272)
at com.iplanet.dpro.session.JMQSessionRepository.delete(JMQSessionRepository.java:260)
at com.iplanet.dpro.session.service.SessionService.removeInternalSession(SessionService.java:775)
at com.iplanet.dpro.session.service.SessionService.destroyInternalSession(SessionService.java:1103)

this means one of the OpenAM has shut down.

And if you see the following,

[16/Apr/2013:17:18:25 SGT] [B1065]: Accepting: amuser@>jms:37124. Count: service=3 broker=3

the down OpenAM has just started.

I like putting all these little notes here in my blog to remind myself. Hope you do not mind. :)


No comments:

Post a Comment