Hi,

What I am doing does not rely on any clustering implementation. This is how it will work:

1. User configures a cluster and a set of nodes belonging to it. You can expect this type of GBeans:

   <!-- Cluster confuguration -->
<gbean name="ClusterInfo" class="org.apache.geronimo.clustering.config.BasicClusterInfo">
        <attribute name="name">${PlanClusterName}</attribute>
        <reference name="NodeInfos"></reference>
    </gbean>

  <!-- Node configuration -->
<gbean name="NodeInfo" class="org.apache.geronimo.clustering.config.BasicNodeInfo">
        <attribute name="name">${PlanNodeName}</attribute>
        <xml-attribute name="jmxConnectorInfo">
<ns:javabean xmlns:ns="http://geronimo.apache.org/xml/ns/ deployment/javabean-1.0" class="org.apache.geronimo.clustering.config.BasicExtendedJMXConnectorIn fo">
                <ns:property name="username">system</ns:property>
                <ns:property name="password">manager</ns:property>
                <ns:property name="portocol">rmi</ns:property>
                <ns:property name="host">localhost</ns:property>
                <ns:property name="port">1099</ns:property>
<ns:property name="urlPath">/jndi/rmi://localhost: 1099/JMXConnector</ns:property>
            </ns:javabean>
        </xml-attribute>
    </gbean>

    <!-- Node configuration -->
<gbean name="SampleRemoteNodeInfo" class="org.apache.geronimo.clustering.config.BasicNodeInfo">
        <attribute name="name">SAMPLE_REMOTE_NODE</attribute>
        <xml-attribute name="jmxConnectorInfo">
<ns:javabean xmlns:ns="http://geronimo.apache.org/xml/ns/ deployment/javabean-1.0" class="org.apache.geronimo.clustering.config.BasicExtendedJMXConnectorIn fo">
                <ns:property name="username">system</ns:property>
                <ns:property name="password">manager</ns:property>
                <ns:property name="portocol">rmi</ns:property>
                <ns:property name="host">localhost</ns:property>
                <ns:property name="port">1100</ns:property>
<ns:property name="urlPath">/jndi/rmi://localhost: 1100/JMXConnector</ns:property>
            </ns:javabean>
        </xml-attribute>
    </gbean>


2. User configures a master repository for clustered artifacts:

<gbean name="MasterRepository" class="org.apache.geronimo.system.repository.Maven2Repository">
        <attribute name="root">master-repository/</attribute>
        <reference name="ServerInfo">
            <name>ServerInfo</name>
        </reference>
    </gbean>

<gbean name="MasterConfigurationStore" class="org.apache.geronimo.clustering.deployment.MasterConfigurationStor e">
        <reference name="Repository">
            <name>MasterRepository</name>
        </reference>
        <reference name="ClusterConfigurationStoreDelegate">
            <name>ClusterConfigurationStoreDelegate</name>
        </reference>
    </gbean>

<gbean name="ClusterConfigurationStoreDelegate" class="org.apache.geronimo.clustering.deployment.BasicClusterConfigurati onStoreDelegate">
        <reference name="ClusterInfo">
            <name>ClusterInfo</name>
        </reference>
    </gbean>

Note that above configurations are done against a Geronimo server, which may or not may be a cluster node. In other words, this configuration could be done against a kind of administration server having all the necessary deployers.

3. Users deploys its artifacts against the master repository. The target server builds locally the corresponding ConfigurationData and sends it to the configured nodes. More accurately, ConfigurationData is "sent" through standard RPC over the JMX communication infra. The content of the ConfigurationData, e.g. jar, war et cetera, is sent via the remote upload servlet used by the deployer CLI. Note that if all the servers have access to the master repository, then a user will simply configure a no-op ClusterConfigurationStoreDelegate so that the artifact upload step is skipped.

You can expect the same type of approach for the control, i.e. start, stop et cetera, of cconfigurations.

I also intend to implement remote start and stop of servers by talking to gshell instances. However, I will work on it after the above features.

As you are also working on clustering stuff, could you please give us some heads-up?

Thanks,
Gianny


On 06/11/2007, at 9:34 AM, Jeff Genender wrote:

Gianny,

Since there are multiple clustering implementations going on at the same time, could you please keep us aprised of what you are doing so we don't
clash?

Thanks,

Jeff

Gianny Damour wrote:
Hi,

I resumed this week-end some work on clustered deployment. I think this
will be completed in about 2-3 weeks. This will allow distribute,
uninstall, start, stop, et cetera of configurations to a cluster as a
single logic operation. I am keen to get this change in for 2.1, if it
does not delay 2.1.

Thanks,
Gianny

On 02/11/2007, at 4:00 AM, Kevan Miller wrote:

I think it's time to start discussing the particulars of a 2.1 release.

There's been a lot of advancements made in our plugin infrastructure. There's also been the pluggable console enhancements. It would be good
to get a release out, with these capabilities. They provide a more
solid platform for future enhancements, I think.

There's also GShell and new monitoring capabilities. I'm probably
missing a few other new functions.

Finally, IIUC, 2.1 would be able to support a Terracotta plugin. I'd
also be very interested to hear what WADI capabilities that could be
exposed.

I'm willing to bang the release manager drum. I see that Joe has
already started tugging on the TCK chain

What do others think? How close are we to a 2.1 release? What
additional capabilities and bug fixes are needed? Can we wrap up
development activities in the next week or two?

--kevan

Reply via email to