2 Replies Latest reply on Apr 26, 2007 5:33 PM by 807573

    Access Manager 7.1 Session Failover

      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).

      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
      at com.iplanet.dpro.session.jmqdb.PersistSession.setString(PersistSession.java:310)
      at com.iplanet.dpro.session.jmqdb.JMQSessionRepository.save(JMQSessionRepository.java: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
      at com.iplanet.dpro.session.service.SessionService.locateCurrentHostServer(SessionService.java:1762)
      at com.iplanet.dpro.session.service.SessionService.getCurrentHostServer(SessionService.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: 116 Type: ACKNOWLEDGE(24)
      Expiration: 0 Timestamp: 1177446120954
      Source IP: Port: 60437 Sequence: 32
      Property Offset: 76 Property Size: 0
      Encryption: 0 Priority: 5
      Flags: consumerID: 0
      TransactionID: 0
      MessageID: 32-
      Properties: null
      Message Body: 40 bytes [3052053123717449216:16-]
      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.java:146)
      at com.sun.messaging.jmq.jmsserver.service.imq.IMQConnection.readData(IMQConnection.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(OperationRunnable.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/ (aminstance)
      [24/Apr/2007:16:23:00 EDT] [B1066]: Closing: amsvrusr@>jms:60425 because "[B0061]: Client exited without closing con
      nections". Count=1
      [24/Apr/2007:16:24:37 EDT] [B1065]: Accepting: amsvrusr@>jms:60425. Count=2
      [24/Apr/2007:16:26:15 EDT] [B1066]: Closing: amsvrusr@>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?

        • 1. Re: Access Manager 7.1 Session Failover
          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.

          • 2. Re: Access Manager 7.1 Session Failover
            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.