Access Manager 7.1 Session Failover

Hello,

I am trying to do a session failover with access Manager 7.1.

My Infrastructure:

OS: Solaris 10

2 Solaris Servers dedicated to 4 LDAP instances (2 each)

2 Solaris Servers dedicated to 2 LDAP Proxy servers configured to access 4 LDAP instances.

2 Solaris Servers dedicated to 2 Sun Application Server 8.2 running 2 instances of Access Manager sharing the 4 LDAP instances through Proxy.

2 Solaris Servers dedicated to 2 instances of JMS servers (1 on each) with Access Manager Session DB configured. JMS is running on cluster mode.

1 Solaris server for Webserver 7.0 configured for Load Balancing (loadbalancer.xml).

Configuration:

2 instances of Access Manager on separate solaris boxes use the same LDAP instance(s).

Access Manager is configured for session failover using amsfoconfig as documented.

The Session failover instances where started as documented

1.Start session DB using amsfo script

2.Start the Access Manager instances (by Starting DAS)

3.Start Webserver

My Problem:

Session Failover does not work. The Amsession log throws

ERROR: JMQSessionRepository.save(): failed to save Session

java.lang.NullPointerException

at com.iplanet.dpro.session.jmqdb.PersistSession.setString(PersistSession.java:310 )

at com.iplanet.dpro.session.jmqdb.JMQSessionRepository.save(JMQSessionRepository.j ava:357)

at com.iplanet.dpro.session.service.SessionService.saveForFailover(SessionService. java:2812)

..

...

AmSessionMonitor file continuously throws below error and fills up the disk (20 GB ) space quickly:

04/24/2007 04:28:13:450 PM EDT: Thread[amSessionMonitor,5,main]

WARNING: SessionMonitor runtime exception

java.lang.NullPointerException

at com.iplanet.dpro.session.service.SessionService.locateCurrentHostServer(Session Service.java:1762)

at com.iplanet.dpro.session.service.SessionService.getCurrentHostServer(SessionSer vice.java:1731)

at com.iplanet.dpro.session.service.SessionMonitor.run(SessionMonitor.java:94)

JMS queue Log:

Sun Java(tm) System Message Queue 3.7

Sun Microsystems, Inc.

Version: 3.7 UR1 (Build 9-b)

Compile: Sun Jun 18 22:11:21 PDT 2006

Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved.

SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.

This product includes code licensed from RSA Data Security.

=============================================================================== =

Java Runtime: 1.5.0_09 Sun Microsystems Inc. /usr/jdk/instances/jdk1.5.0/jre

[18/Apr/2007:09:14:28 EDT] License: Sun Java(tm) System Message Queue 3.7 UR1 Enterprise Edition

[18/Apr/2007:09:14:29 EDT]IMQ_HOME=/

"log.txt" 725 lines, 61600 characters

Magic/Version: 469754818/301 Size: 116Type: ACKNOWLEDGE(24)

Expiration: 0 Timestamp: 1177446120954

Source IP: 172.31.120.44(c0:ca:66:ec:a9:d5) Port: 60437 Sequence: 32

Property Offset: 76 Property Size: 0

Encryption: 0Priority: 5

Flags:consumerID: 0

TransactionID: 0

MessageID: 32-172.31.120.44(c0:ca:66:ec:a9:d5)-60437-1177446120954

Properties: null

Message Body: 40 bytes [3052053123717449216:16-172.31.120.44(b1:6a:3:39:7d:6)-60434-1177446116385]

Internal Buffers (useDirect=false):

Fixed Header Buffer:java.nio.HeapByteBuffer[pos=0 lim=72 cap=72]

--] :

com.sun.messaging.jmq.jmsserver.util.BrokerException: Internal Error: Unable to complete processing acks: Unknown consumer [consumer:30520

53123717449216, type=NONE]

at com.sun.messaging.jmq.jmsserver.data.handlers.AckHandler.handleAcks(AckHandler. java:256)

at com.sun.messaging.jmq.jmsserver.data.handlers.AckHandler.handle(AckHandler.java :166)

at com.sun.messaging.jmq.jmsserver.data.PacketRouter.handleMessage(PacketRouter.ja va:146)

at com.sun.messaging.jmq.jmsserver.service.imq.IMQConnection.readData(IMQConnectio n.java:1856)

at com.sun.messaging.jmq.jmsserver.service.imq.IMQConnection.process(IMQConnection .java:816)

at com.sun.messaging.jmq.jmsserver.service.imq.OperationRunnable.process(Operation Runnable.java:141)

at com.sun.messaging.jmq.jmsserver.util.pool.BasicRunnable.run(BasicRunnable.java: 459)

at java.lang.Thread.run(Thread.java:595)

[24/Apr/2007:16:22:05 EDT] [B1071]: Established cluster connection : testuidp02.dol.state.nj.us/172.31.120.45:7676 (aminstance)

[24/Apr/2007:16:23:00 EDT] [B1066]:Closing: amsvrusr@172.31.120.27:57590->jms:60425 because "[B0061]: Client exited without closing con

nections". Count=1

[24/Apr/2007:16:24:37 EDT] [B1065]: Accepting: amsvrusr@172.31.120.26:42435->jms:60425. Count=2

[24/Apr/2007:16:26:15 EDT] [B1066]:Closing: amsvrusr@172.31.120.26:42435->jms:60425 because "[B0061]: Client exited without closing con

nections". Count=1

Access Manager via load balancer web server works fine with out session failover configuration.

I noticed through forums that Accessmanager 2005Q4 had similar problem and was fixed with a patch.

Will somebody please help who has done session failover with AM7.1?

Thanks

Kris

[5305 byte] By [Krishnakumar_Raghavana] at [2007-11-27 2:20:24]
# 1

Yep, that was me struggling with 2005Q4 before they released a patch (120954-03 if I am not mistaken).

1. Have you configured your AM installation as a site?

2. Have you added a secondary configuration in the session tab?

A restart will be required after that. Try setting log levels to debug. When AM webserver comes up and brings the application live, you'll see information regarding the secondary configuration, and whether things are actually in place or not.

Hope this helps.

Ankush

http://www.iamcg.net

ankushkapoora at 2007-7-12 2:21:42 > top of Java-index,Web & Directory Servers,Directory Servers...
# 2

Thanks Anukush.

Yes every thing was configured as documented.

Anyways, I found what was going wrong. It was partially due to our infrastructure layers and some additional configuration required in AMConfig to access AM auth modules from public layer through proxy.

Thanks

Kris

Krishnakumar_Raghavana at 2007-7-12 2:21:42 > top of Java-index,Web & Directory Servers,Directory Servers...