Last updated Jul 12, 2024

Configuring cluster nodes in AMPS

Node list

To activate the clustering feature of AMPS, add two or more <node> elements to your AMPS configuration, for example:

1
2
<plugin>
    <groupId>com.atlassian.maven.plugins</groupId>
    <artifactId>amps-maven-plugin</artifactId>
    <version>8.3.0</version>
    <extensions>true</extensions>
    <configuration>
        <!-- ... your existing AMPS configuration remains here ... -->
        <!-- add this `nodes` element -->
        <nodes>
            <node/>
            <node/>
        </nodes>
    </configuration>

This example is for the amps-maven-plugin, but equally applies to the product-specific AMPS plugins, such as the jira-maven-plugin and others.

If your configuration contains one or more <product> elements, add the <nodes> element as a child of the relevant product(s), for example:

1
2
<configuration>
    <products>
        <product>
            <!-- ... your existing product configuration remains here ... -->
            <!-- add this `nodes` element -->
            <nodes>
                <node/>
                <node/>
            </nodes>
            ...
        </product>
        ...
    </products>
</configuration>

Node properties

Regardless of where you add the <node> elements to your POM, they all have the same configuration options. You can leave a <node> element empty to use the default values, like this:

1
2
<node/>

Alternatively, you can add one or more of the following child elements:

1
2
<node>
    <ajpPort>1111</ajpPort>
    <debugArgs>xyz</debugArgs> 
    <httpPort>2222</httpPort>
    <httpsPort>3333</httpsPort>
    <jvmDebugPort>4444</jvmDebugPort>
    <jvmDebugSuspend>true</jvmDebugSuspend> 
    <rmiPort>5555</rmiPort>
    <systemProperties>
        <foo>bar</foo>
        <baz>bat</baz>
    </systemProperties>
    <useHttps>true</useHttps>
</node>

Here’s an explanation of each option. They generally have the same name and purpose as the global and product options in AMPS 8.2 and earlier.

Node optionDefault valueDescription
ajpPortRandom free port.Must be unique across all products and nodes.
debugArgsGenerated from jvmDebugPort and jvmDebugSuspendThe generated value is sufficient for connecting a remote debugger.
httpPortRandom free port.Used when useHttps is false.
httpsPortRandom free port.Used when useHttps is true.
jvmDebugPortStarts at 5005 and increments by one per node across all configured productsFor example, the debug ports of two two-node products are 5005, 5006, 5007, and 5008 respectively.
jvmDebugSuspendfalseWhether AMPS should stop and wait for you to connect a remote debugger to this node’s JVM (when using the AMPS debug goal or the SDK’s atlas-debug command).
rmiPortRandom free port.Must be unique across all products and nodes.
systemPropertiesNoneThese are combined with any system properties set at the global or <product> level, with the node-level values taking precedence.
useHttpsfalseApart from the port number, all other HTTPS details remain at the global or <product> level. It's not possible to configure HTTPS differently between nodes, apart of course from their port numbers.

Rate this page: