Index: webapps/docs/funcspecs/fs-admin-objects.xml =================================================================== --- webapps/docs/funcspecs/fs-admin-objects.xml (revision 1519735) +++ webapps/docs/funcspecs/fs-admin-objects.xml (working copy) @@ -44,19 +44,19 @@

The following Administered Objects are defined:

Index: webapps/docs/funcspecs/fs-admin-opers.xml =================================================================== --- webapps/docs/funcspecs/fs-admin-opers.xml (revision 1519735) +++ webapps/docs/funcspecs/fs-admin-opers.xml (working copy) @@ -46,18 +46,18 @@

Supported Operations are described for the following Administered Objects:

Index: webapps/docs/funcspecs/fs-default.xml =================================================================== --- webapps/docs/funcspecs/fs-default.xml (revision 1519735) +++ webapps/docs/funcspecs/fs-default.xml (working copy) @@ -52,12 +52,12 @@

The following external specifications have provisions which partially define the correct behavior of the default servlet:

Index: webapps/docs/funcspecs/mbean-names.xml =================================================================== --- webapps/docs/funcspecs/mbean-names.xml (revision 1519735) +++ webapps/docs/funcspecs/mbean-names.xml (working copy) @@ -96,48 +96,48 @@ new items can be configured if desired. - +
- - - - + + + + - - - + + + - - - + + + - - - + + + - - - + + - - + + @@ -144,40 +144,40 @@ - - - + + - - - + + + - - - + + - - - + + - - - + + @@ -184,57 +184,57 @@ - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + @@ -242,9 +242,9 @@ - - - + + @@ -251,9 +251,9 @@ - - - + + @@ -260,33 +260,33 @@ - - - + + - - - + + - - - + + - - - + + @@ -293,24 +293,24 @@ - - - + + + - - - + + - - - + + @@ -326,349 +326,349 @@ therefore available for use within the Administration/Configuration web application for Tomcat):

-
PatternCardinalityIdentifierMBean ObjectNamePatternCardinalityIdentifierMBean ObjectName
Server1..1(none)type=${SERVER}1..1(none)type=${SERVER}
Server / Listener0..n(none)type=${LISTENER}, sequence=${###}0..n(none)type=${LISTENER}, sequence=${###}
Server / Service1..nnametype=${SERVICE}, name=${name}1..nnametype=${SERVICE}, name=${name}
Server / Service / Connector1..naddress, porttype=${CONNECTOR}, service=${service}, port=${port}, + 1..naddress, porttype=${CONNECTOR}, service=${service}, port=${port}, address=${address}
Server / Service / Connector / Factory0..1(none)0..1(none) (Only defined explicitly for an SSL connector, but can be treated as part of the connector component)
Server / Service / Connector / Listener0..n(none)type=${LISTENER}, sequence=${###}, service=${service}, + 0..n(none)type=${LISTENER}, sequence=${###}, service=${service}, port=${connector.port}, address=${connector.address}
Server / Service / Engine1..1(none)type=${ENGINE}, service=${service.name}1..1(none)type=${ENGINE}, service=${service.name}
Server / Service / Engine / Host1..nnametype=${HOST}, host=${name}, + 1..nnametype=${HOST}, host=${name}, service=${service.name}
Server / Service / Engine / Host / Context1..npathtype=${CONTEXT}, context=${name}, host=${host.name}, + 1..npathtype=${CONTEXT}, context=${name}, host=${host.name}, service=${service.name}
Server / Service / Engine / Host / Context / InstanceListener0..n(none)type=${INSTANCE-LISTENER}, sequence=${###}, + 0..n(none)type=${INSTANCE-LISTENER}, sequence=${###}, context=${context.name}, host=${host.name}, service=${service.name}
Server / Service / Engine / Host / Context / Listener0..n(none)type=${LISTENER}, sequence=${###}, context=${context.name}, + 0..n(none)type=${LISTENER}, sequence=${###}, context=${context.name}, host=${host.name}, service=${service.name}
Server / Service / Engine / Host / Context / Loader0..1(none)type=${LOADER}, context=${context.name}, host=${host.name}, + 0..1(none)type=${LOADER}, context=${context.name}, host=${host.name}, service=${service.name}
Server / Service / Engine / Host / Context / Manager0..1(none)type=${MANAGER}, context=${context.name}, host=${host.name}, + 0..1(none)type=${MANAGER}, context=${context.name}, host=${host.name}, service=${service.name}
Server / Service / Engine / Host / Context / Realm0..1(none)type=${REALM}, context=${context.name}, host=${host.name}, + 0..1(none)type=${REALM}, context=${context.name}, host=${host.name}, service=${service.name}
Server / Service / Engine / Host / Context / Resources0..1(none)type=${RESOURCES}, context=${context.name}, host=${host.name}, + 0..1(none)type=${RESOURCES}, context=${context.name}, host=${host.name}, service=${service.name}
Server / Service / Engine / Host / Context / Valve0..n(none)type=${VALVE}, sequence=${###}, context=${context.name}, + 0..n(none)type=${VALVE}, sequence=${###}, context=${context.name}, host=${host.name}, service=${service.name}
Server / Service / Engine / Host / Context / Wrapper0..n(none)j2eeType=Servlet,name=${name}, + 0..n(none)j2eeType=Servlet,name=${name}, WebModule=//${host.name}/${context.name}, J2EEApplication=${context.J2EEApplication}, J2EEServer=${context.J2EEServer}
Server / Service / Engine / Host / Context / WrapperLifecycle0..n(none)type=${WRAPPER-LIFECYCLE}, sequence=${###}, + 0..n(none)type=${WRAPPER-LIFECYCLE}, sequence=${###}, context=${context.name}, host=${host.name}, service=${service.name}
Server / Service / Engine / Host / Context / WrapperListener0..n(none)type=${WRAPPER-LISTENER}, sequence=${###}, + 0..n(none)type=${WRAPPER-LISTENER}, sequence=${###}, context=${context.name}, host=${host.name}, service=${service.name}
Server / Service / Engine / Host / Listener0..n(none)type=${LISTENER}, sequence=${###}, host=${host.name}, + 0..n(none)type=${LISTENER}, sequence=${###}, host=${host.name}, service=${service.name}
Server / Service / Engine / Host / Realm0..1(none)type=${REALM}, host=${host.name}, + 0..1(none)type=${REALM}, host=${host.name}, service=${service.name}
Server / Service / Engine / Host / Valve0..n(none)type=${VALVE}, sequence=${###}, + 0..n(none)type=${VALVE}, sequence=${###}, host=${host.name}, service=${service.name}
Server / Service / Engine / Listener0..n(none)type=${LISTENER}, sequence=${###} + 0..n(none)type=${LISTENER}, sequence=${###} (FIXME - disambiguate from Server / Service / Listener)
Server / Service / Engine / Realm0..1(none)type=${REALM}, service=${service.name}0..1(none)type=${REALM}, service=${service.name}
Server / Service / Engine / Valve0..n(none)type=${VALVE}, sequence=${###}, + 0..n(none)type=${VALVE}, sequence=${###}, service=${service.name}
Server / Service / Listener0..n(none)type=${LISTENER}, sequence=${###} + 0..n(none)type=${LISTENER}, sequence=${###} (FIXME - disambiguate from Server / Service / Engine / Listener)
+
- - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + +
MBean NameGroup NameCatalina InterfaceImplementation ClassMBean NameGroup NameCatalina InterfaceImplementation Class
AccessLogValveVALVEorg.apache.catalina.Valveorg.apache.catalina.valves.AccessLogValveAccessLogValveVALVEorg.apache.catalina.Valveorg.apache.catalina.valves.AccessLogValve
BasicAuthenticatorVALVEorg.apache.catalina.Valveorg.apache.catalina.authenticator.BasicAuthenticatorBasicAuthenticatorVALVEorg.apache.catalina.Valveorg.apache.catalina.authenticator.BasicAuthenticator
CertificatesValveVALVEorg.apache.catalina.Valveorg.apache.catalina.valves.CertificatesValveCertificatesValveVALVEorg.apache.catalina.Valveorg.apache.catalina.valves.CertificatesValve
ContextConfigLISTENERorg.apache.catalina.LifecycleListenerorg.apache.catalina.startup.ContextConfigContextConfigLISTENERorg.apache.catalina.LifecycleListenerorg.apache.catalina.startup.ContextConfig
ContextEnvironmentRESOURCESorg.apache.catalina.deploy.ContextEnvironmentorg.apache.catalina.deploy.ContextEnvironmentContextEnvironmentRESOURCESorg.apache.catalina.deploy.ContextEnvironmentorg.apache.catalina.deploy.ContextEnvironment
ContextResourceRESOURCESorg.apache.catalina.deploy.ContextResourceorg.apache.catalina.deploy.ContextResourceContextResourceRESOURCESorg.apache.catalina.deploy.ContextResourceorg.apache.catalina.deploy.ContextResource
ContextResourceLinkRESOURCESorg.apache.catalina.deploy.ContextResourceLinkorg.apache.catalina.deploy.ContextResourceLinkContextResourceLinkRESOURCESorg.apache.catalina.deploy.ContextResourceLinkorg.apache.catalina.deploy.ContextResourceLink
CoyoteConnectorCONNECTORorg.apache.catalina.Connectororg.apache.coyote.tomcat4.CoyoteConnectorCoyoteConnectorCONNECTORorg.apache.catalina.Connectororg.apache.coyote.tomcat4.CoyoteConnector
DigestAuthenticatorVALVEorg.apache.catalina.Valveorg.apache.catalina.authenticator.DigestAuthenticatorDigestAuthenticatorVALVEorg.apache.catalina.Valveorg.apache.catalina.authenticator.DigestAuthenticator
EngineConfigLISTENERorg.apache.catalina.LifecycleListenerorg.apache.catalina.startup.EngineConfigEngineConfigLISTENERorg.apache.catalina.LifecycleListenerorg.apache.catalina.startup.EngineConfig
ErrorReportValveVALVEorg.apache.catalina.Valveorg.apache.catalina.valves.ErrorReportValveErrorReportValveVALVEorg.apache.catalina.Valveorg.apache.catalina.valves.ErrorReportValve
ErrorDispatcherValveVALVEorg.apache.catalina.Valveorg.apache.catalina.valves.ErrorDispatcherValveErrorDispatcherValveVALVEorg.apache.catalina.Valveorg.apache.catalina.valves.ErrorDispatcherValve
FormAuthenticatorVALVEorg.apache.catalina.Valveorg.apache.catalina.authenticator.FormAuthenticatorFormAuthenticatorVALVEorg.apache.catalina.Valveorg.apache.catalina.authenticator.FormAuthenticator
GroupGROUPorg.apache.catalina.Grouporg.apache.catalina.GroupGroupGROUPorg.apache.catalina.Grouporg.apache.catalina.Group
HostConfigLISTENERorg.apache.catalina.LifecycleListenerorg.apache.catalina.startup.HostConfigHostConfigLISTENERorg.apache.catalina.LifecycleListenerorg.apache.catalina.startup.HostConfig
HttpConnector10CONNECTORorg.apache.catalina.Connectororg.apache.catalina.connector.http10.HttpConnectorHttpConnector10CONNECTORorg.apache.catalina.Connectororg.apache.catalina.connector.http10.HttpConnector
HttpConnector11CONNECTORorg.apache.catalina.Connectororg.apache.catalina.connector.http.HttpConnectorHttpConnector11CONNECTORorg.apache.catalina.Connectororg.apache.catalina.connector.http.HttpConnector
JAASRealmREALMorg.apache.catalina.Realmorg.apache.catalina.realm.JAASRealmJAASRealmREALMorg.apache.catalina.Realmorg.apache.catalina.realm.JAASRealm
JDBCRealmREALMorg.apache.catalina.Realmorg.apache.catalina.realm.JDBCRealmJDBCRealmREALMorg.apache.catalina.Realmorg.apache.catalina.realm.JDBCRealm
JDBCUserDatabaseUSERDATABASEorg.apache.catalina.users.JDBCUserDatabaseorg.apache.catalina.users.JDBCUserDatabaseJDBCUserDatabaseUSERDATABASEorg.apache.catalina.users.JDBCUserDatabaseorg.apache.catalina.users.JDBCUserDatabase
JNDIRealmREALMorg.apache.catalina.Realmorg.apache.catalina.realm.JNDIRealmJNDIRealmREALMorg.apache.catalina.Realmorg.apache.catalina.realm.JNDIRealm
MBeanFactoryorg.apache.catalina.mbeans.MBeanFactoryMBeanFactoryorg.apache.catalina.mbeans.MBeanFactory
MemoryRealmREALMorg.apache.catalina.Realmorg.apache.catalina.realm.MemoryRealmMemoryRealmREALMorg.apache.catalina.Realmorg.apache.catalina.realm.MemoryRealm
MemoryUserDatabaseUSERDATABASEorg.apache.catalina.users.MemoryUserDatabaseorg.apache.catalina.users.MemoryUserDatabaseMemoryUserDatabaseUSERDATABASEorg.apache.catalina.users.MemoryUserDatabaseorg.apache.catalina.users.MemoryUserDatabase
NamingContextListenerLISTENERorg.apache.catalina.LifecycleListenerorg.apache.catalina.core.NamingContextListenerNamingContextListenerLISTENERorg.apache.catalina.LifecycleListenerorg.apache.catalina.core.NamingContextListener
NamingResourcesRESOURCESorg.apache.catalina.deploy.NamingResourcesorg.apache.catalina.deploy.NamingResourcesNamingResourcesRESOURCESorg.apache.catalina.deploy.NamingResourcesorg.apache.catalina.deploy.NamingResources
NonLoginAuthenticatorVALVEorg.apache.catalina.Valveorg.apache.catalina.authenticator.NonLoginAuthenticatorNonLoginAuthenticatorVALVEorg.apache.catalina.Valveorg.apache.catalina.authenticator.NonLoginAuthenticator
PersistentManagerMANAGERorg.apache.catalina.Managerorg.apache.catalina.session.PersistentManagerPersistentManagerMANAGERorg.apache.catalina.Managerorg.apache.catalina.session.PersistentManager
RemoteAddrValveVALVEorg.apache.catalina.Valveorg.apache.catalina.valves.RemoteAddrValveRemoteAddrValveVALVEorg.apache.catalina.Valveorg.apache.catalina.valves.RemoteAddrValve
RemoteHostValveVALVEorg.apache.catalina.Valveorg.apache.catalina.valves.RemoteHostValveRemoteHostValveVALVEorg.apache.catalina.Valveorg.apache.catalina.valves.RemoteHostValve
RequestDumperValveVALVEorg.apache.catalina.Valveorg.apache.catalina.valves.RequestDumperValveRequestDumperValveVALVEorg.apache.catalina.Valveorg.apache.catalina.valves.RequestDumperValve
RoleROLEorg.apache.catalina.Roleorg.apache.catalina.RoleRoleROLEorg.apache.catalina.Roleorg.apache.catalina.Role
SingleSignOnVALVEorg.apache.catalina.Valveorg.apache.catalina.valves.SingleSignOnSingleSignOnVALVEorg.apache.catalina.Valveorg.apache.catalina.valves.SingleSignOn
SSLAuthenticatorVALVEorg.apache.catalina.Valveorg.apache.catalina.authenticator.SSLAuthenticatorSSLAuthenticatorVALVEorg.apache.catalina.Valveorg.apache.catalina.authenticator.SSLAuthenticator
StandardContextCONTEXTorg.apache.catalina.Contextorg.apache.catalina.core.StandardContextStandardContextCONTEXTorg.apache.catalina.Contextorg.apache.catalina.core.StandardContext
StandardContextValveVALVEorg.apache.catalina.Valveorg.apache.catalina.core.StandardContextValveStandardContextValveVALVEorg.apache.catalina.Valveorg.apache.catalina.core.StandardContextValve
StandardEngineENGINEorg.apache.catalina.Engineorg.apache.catalina.core.StandardEngineStandardEngineENGINEorg.apache.catalina.Engineorg.apache.catalina.core.StandardEngine
StandardEngineValveVALVEorg.apache.catalina.Valveorg.apache.catalina.core.StandardEngineValveStandardEngineValveVALVEorg.apache.catalina.Valveorg.apache.catalina.core.StandardEngineValve
StandardHostHOSTorg.apache.catalina.Hostorg.apache.catalina.core.StandardHostStandardHostHOSTorg.apache.catalina.Hostorg.apache.catalina.core.StandardHost
StandardHostValveVALVEorg.apache.catalina.Valveorg.apache.catalina.core.StandardHostValveStandardHostValveVALVEorg.apache.catalina.Valveorg.apache.catalina.core.StandardHostValve
StandardManagerMANAGERorg.apache.catalina.Managerorg.apache.catalina.session.StandardManagerStandardManagerMANAGERorg.apache.catalina.Managerorg.apache.catalina.session.StandardManager
StandardServerSERVERorg.apache.catalina.Serverorg.apache.catalina.core.StandardServerStandardServerSERVERorg.apache.catalina.Serverorg.apache.catalina.core.StandardServer
StandardServiceSERVICEorg.apache.catalina.Serviceorg.apache.catalina.core.StandardServiceStandardServiceSERVICEorg.apache.catalina.Serviceorg.apache.catalina.core.StandardService
StandardWrapperWRAPPERorg.apache.catalina.Wrapperorg.apache.catalina.core.StandardWrapperStandardWrapperWRAPPERorg.apache.catalina.Wrapperorg.apache.catalina.core.StandardWrapper
StandardWrapperValveVALVEorg.apache.catalina.Valveorg.apache.catalina.core.StandardWrapperValveStandardWrapperValveVALVEorg.apache.catalina.Valveorg.apache.catalina.core.StandardWrapperValve
UserUSERorg.apache.catalina.Userorg.apache.catalina.UserUserUSERorg.apache.catalina.Userorg.apache.catalina.User
UserDatabaseRealmREALMorg.apache.catalina.Realmorg.apache.catalina.realm.UserDatabaseRealmUserDatabaseRealmREALMorg.apache.catalina.Realmorg.apache.catalina.realm.UserDatabaseRealm
WebappLoaderLOADERorg.apache.catalina.Loaderorg.apache.catalina.loader.WebappLoaderWebappLoaderLOADERorg.apache.catalina.Loaderorg.apache.catalina.loader.WebappLoader
@@ -680,41 +680,41 @@

The managed objects in the JSR-77 object hierarchy correspond to the specified MBean names or groups as follows:

- +
- - - + + + - - + + - - + + - - + + - - + + - - + + @@ -727,23 +727,23 @@

The deployment objects in the JSR-88 API object hierarchy correspond to the specified MBean names or groups as follows:

-
JSR-77 Managed ObjectMBean Name or GroupCommentsJSR-77 Managed ObjectMBean Name or GroupComments
J2EEServer${SERVICE}J2EEServer${SERVICE}
Node${SERVICE}Node${SERVICE} Tomcat supports a single node only.
Port${CONNECTOR}Port${CONNECTOR}
Servlet${WRAPPER}Servlet${WRAPPER}
WebModule${CONTEXT}WebModule${CONTEXT}
+
- - - + + + - - + + - - + + Index: webapps/docs/tribes/introduction.xml =================================================================== --- webapps/docs/tribes/introduction.xml (revision 1519735) +++ webapps/docs/tribes/introduction.xml (working copy) @@ -47,31 +47,29 @@
  • Create a class that implements: org.apache.catalina.tribes.ChannelListener
  • Create a class that implements: org.apache.catalina.tribes.MembershipListener
  • Simple class to demonstrate how to send a message: - - //create a channel - Channel myChannel = new GroupChannel(); + +//send the message +channel.send(group,myMsg,Channel.SEND_OPTIONS_DEFAULT);]]>
  • @@ -160,7 +158,8 @@

    Different Guarantee Levels
    - There are three different levels of delivery guarantee when a message is sent.
    + There are three different levels of delivery guarantee when a message is sent. +

    1. IO Based send guarantee. - fastest, least reliable
      This means that Tribes considers the message transfer to be successful @@ -187,6 +186,7 @@ and associate that exception with the member that didn't process the message.
    +

    You can of course write even more sophisticated guarantee levels, and some of them will be mentioned later on in the documentation. One mentionable level would be a 2-Phase-Commit, where the remote applications don't receive the message until all nodes have received the message. Sort of like a all-or-nothing protocol. @@ -199,19 +199,19 @@ that remains fixed after the message framework has been started.
    To give you an example of how powerful this feature is, I'll try to illustrate it with a simple example. Imagine you need to send 10 different messages, you could send the the following way: - - Message_1 - asynchronous and fast, no guarantee required, fire and forget - Message_2 - all-or-nothing, either all receivers get it, or none. - Message_3 - encrypted and SYNC_ACK based - Message_4 - asynchronous, SYNC_ACK and call back when the message is processed on the remote nodes - Message_5 - totally ordered, this message should be received in the same order on all nodes that have been - send totally ordered - Message_6 - asynchronous and totally ordered - Message_7 - RPC message, send a message, wait for all remote nodes to reply before returning - Message_8 - RPC message, wait for the first reply - Message_9 - RPC message, asynchronous, don't wait for a reply, collect them via a callback - Message_10- sent to a member that is not part of this group - +

    + +

    As you can imagine by now, these are just examples. The number of different semantics you can apply on a per-message-basis is almost limitless. Tribes allows you to set up to 28 different on a message and then configure Tribes to what flag results in what action on the message.

    JSR-88 API ObjectMBean Name or GroupCommentsJSR-88 API ObjectMBean Name or GroupComments
    DeployableObject${CONTEXT}DeployableObject${CONTEXT} Context deployment info plus the corresponding WAR file
    Target${HOST}Target${HOST}