hi Mikel,
when setting a property on the <Manager> you omit the manager. prefix, just as you stated. To do thread dumps with JDK 1.5 under windows, you can use the tanuki service wrapper
http://people.apache.org/~fhanik/wrapper.html

The tomcat team might have added that feature to the Tomcat wrapper too, you'd have to check

Filip




Mikel Ibiricu wrote:
Hi Rainer, thanks for your response.

I tried the config you suggested. It suppose the way of configuring those
parameters is as you said, but skipping "manager." from the begining, as
when I tried as you said, I got this in the catalina. log:

10-mar-2009 15:58:19 org.apache.tomcat.util.digester.SetPropertiesRule begin
ADVERTENCIA: [SetPropertiesRule]{Server/Service/Engine/Cluster/Manager}
Setting property 'manager.sendAllSessions' to 'false' did not find a
matching property.
10-mar-2009 15:58:19 org.apache.tomcat.util.digester.SetPropertiesRule begin
ADVERTENCIA: [SetPropertiesRule]{Server/Service/Engine/Cluster/Manager}
Setting property 'manager.sendAllSessionsSize' to '200' did not find a
matching property.
10-mar-2009 15:58:19 org.apache.tomcat.util.digester.SetPropertiesRule begin
ADVERTENCIA: [SetPropertiesRule]{Server/Service/Engine/Cluster/Manager}
Setting property 'manager.sendAllSessionsWaitTime' to '0' did not find a
matching property.
10-mar-2009 15:58:19 org.apache.tomcat.util.digester.SetPropertiesRule begin

Maybe without the "manager" prefix? sendAllSessions=false,
sendAllSessionSize="200" and sendAllSessionsWaitTime=""?

Filip, we consider taking thead dumps, but we are using jdk 1.5 under
windows. I heard it is not supported in Windows until jdk 1.6. Is it true?

Best regards
Mikel



2009/3/9 Rainer Jung <rainer.j...@kippdata.de>

On 09.03.2009 09:24, Mikel Ibiricu wrote:

So, It works OK but when starting up one of the nodes with over 500
sessions
alive in the other, it doesn't replicate anything. We assume that it would
not be able to replicate everything... but why it does either replicate
everything or nothing? If it's not able replicate all the sessions, we
would
assume it, but we would like to replicate at least something... Maybe some
trouble with the config we are trying? We tried to limit the
keepAliveCount
of the senders, without improvement with this.

Reading the DeltaManager code, I have seen the sendAlllSessions parameter.
According to in-line javadoc and the implementation,

/**
     * handle receive that other node want all sessions ( restart )
     * a) send all sessions with one message
     * b) send session at blocks
     * After sending send state is complete transfered
     * @param msg
     * @param sender
     * @throws IOException
     */
    protected void handleGET_ALL_SESSIONS(SessionMessage msg, Member
sender)
throws IOException {

        [...]

        if (isSendAllSessions()) {
            sendSessions(sender, currentSessions, findSessionTimestamp);
        } else {
            // send session at blocks
            int len = currentSessions.length<  getSendAllSessionsSize() ?
currentSessions.length : getSendAllSessionsSize();
            Session[] sendSessions = new Session[len];
            for (int i = 0; i<  currentSessions.length; i +=
getSendAllSessionsSize()) {
                len = i + getSendAllSessionsSize()>
 currentSessions.length
? currentSessions.length - i : getSendAllSessionsSize();
                System.arraycopy(currentSessions, i, sendSessions, 0,
len);
                sendSessions(sender, sendSessions,findSessionTimestamp);
                if (getSendAllSessionsWaitTime()>  0) {
                    try {
                        Thread.sleep(getSendAllSessionsWaitTime());
                    } catch (Exception sleep) {
                    }
                }//end if
            }//for
        }//end if

        SessionMessage newmsg = new
SessionMessageImpl(name,SessionMessage.EVT_ALL_SESSION_TRANSFERCOMPLETE,
null,"SESSION-STATE-TRANSFERED", "SESSION-STATE-TRANSFERED"+ getName());
        newmsg.setTimestamp(findSessionTimestamp);
        if (log.isDebugEnabled())

log.debug(sm.getString("deltaManager.createMessage.allSessionTransfered",getName()));
        counterSend_EVT_ALL_SESSION_TRANSFERCOMPLETE++;
        cluster.send(newmsg, sender);
    }

it may cover our expectatives, so I tried to include
sendAllSessions="false"
in the cluster manager configuration

<Manager className="org.apache.catalina.ha.session.DeltaManager"
                   name="clusterPruebas6"
                   stateTransferTimeout="180"
                   expireSessionsOnShutdown="false"
                   notifyListenersOnReplication="false"
                   sendAllSessions="false"/>

But it seems like this parameter is not configurable from the server.xml
file. So, what can I do to force that if it's not posible to replicate all
the sessions, at least replicate something in the startup?

If you want to test with sendAllSessions set to false, then add

manager.sendAllSessions="false"

to the Manager element of the cluster configuration.

You might then also want to configure:

manager.sendAllSessionsSize: the number of session which will be serialized
and send in one chunk (default if sendAllSessions="false": 1000)

manager.sendAllSessionsWaitTime: the time in milliseconds between sending
out consecutive session chunks (default if sendAllSessions="false": 2000)

Regards,

Rainer


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org





---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org

Reply via email to