<?xml version="1.0"?>
<mbeans-descriptors>

  <mbean         name="SimpleTcpCluster"
            className="org.apache.catalina.mbeans.ClassNameMBean"
          description="Tcp Cluster implementation"
               domain="Catalina"
                group="Cluster"
                 type="org.apache.catalina.cluster.tcp.SimpleTcpCluster">

    <attribute   name="protocolStack"
          description="JavaGroups protocol stack selection"
                 type="java.lang.String"/>

  </mbean>


  <mbean         name="SimpleTcpReplicationManager"
            className="org.apache.catalina.mbeans.ClassNameMBean"
          description="Clustered implementation of the Manager interface"
               domain="Catalina"
                group="Manager"
                 type="org.apache.catalina.cluster.tcp.SimpleTcpReplicationManager">

    <attribute   name="algorithm"
          description="The message digest algorithm to be used when generating
                       session identifiers"
                 type="java.lang.String"/>

    <attribute   name="checkInterval"
          description="The interval (in seconds) between checks for expired
                       sessions"
                 type="int"/>

    <attribute   name="className"
          description="Fully qualified class name of the managed object"
                 type="java.lang.String"
            writeable="false"/>

    <attribute   name="distributable"
          description="The distributable flag for Sessions created by this
                       Manager"
                 type="boolean"/>

    <attribute   name="entropy"
          description="A String initialization parameter used to increase the
                       entropy of the initialization of our random number
                       generator"
                 type="java.lang.String"/>

    <attribute   name="managedResource"
          description="The managed resource this MBean is associated with"
                 type="java.lang.Object"/>

    <attribute   name="maxActiveSessions"
          description="The maximum number of active Sessions allowed, or -1
                       for no limit"
                 type="int"/>

    <attribute   name="maxInactiveInterval"
          description="The default maximum inactive interval for Sessions
                       created by this Manager"
                 type="int"/>

    <attribute   name="name"
          description="The descriptive name of this Manager implementation
                       (for logging)"
                 type="java.lang.String"
            writeable="false"/>

  </mbean>



<mbean         name="ReplicationValve"
            className="org.apache.catalina.mbeans.ClassNameMBean"
          description="Valve for simple tcp replication"
               domain="Catalina"
                group="Valve"
                 type="org.apache.catalina.cluster.tcp.ReplicationValve">

    <attribute   name="className"
          description="Fully qualified class name of the managed object"
                 type="java.lang.String"
            writeable="false"/>

    <attribute   name="debug"
          description="The debugging detail level for this component"
                 type="int"/>

  </mbean>


</mbeans-descriptors>
