Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.


Code Block
usage: topo <subcommand> <options>

This command is used to register containers in STR and to create, update, remove, and view pico configurations.

title
Note

Note!

This command is valid only for the MZ_HOME owner.

...

You can use the following subcommands with topo:

  • activate

  • container

  • convert

  • diff

  • env

  • get

  • hash

  • help

  • migrate

  • open

  • rebase-configs

  • register

  • reset

  • set

  • setupremote

  • show

  • unset


     

The option --allow-disconnected is available for all subcommands except for setupremote. You should only include this option when the Platform is unreachable and you want to use cached data.

activate

Code Block
Usage: topo activate [--dry-run] [-v, --verbose]

Use topo activate to move staged changes in the master registry to the active registry.

Option

Description

[--dry-run]

Use this option to validate the staged changes without performing the activation.

[–hash <hash value>]

Compare the provided hash value with the actual hash that represents the current state of active registry. The activation fails if the values are not equal. For further information, see hash below,

[-v, --verbose]

Use this option for detailed information about the changes.

Insert excerpt

...

Working with STR

...

Working with STR
nopaneltrue

container

Code Block
Usage: topo container 

Use topo container to display the name of the current container.

Option

Description

[--allow-disconnected]

Use this option when the Platform is unreachable and you want to operate on cached data.

convert

Code Block
Usage: topo convert [-c, --container <container>] [-g, --container-group <container group>] [--dry-run] [-f, --file <filename>]

Use topo convert to move the configuration of a specific XML file to STR.

Option

Description

[-c,

...

--container

...

<container>]

Use this option to specify a target container.

[-g,

...

--container-group

...

<container

...

group>]

Use this option to specify a target container group.

[--dry-run]

Use this option to validate that the conversion and display the result of the conversion without updating the STR.

[-f,

...

--file

...

<filename>

Use this option to specify the source XML file.

Info

...

Example - Converting an XML file

Code Block
languagetext
$ mzsh topo convert --container main1 

diff

Code Block
Usage: topo diff [-e, --show-entries] [-f, --from <registry>] [-q, --brief] 

Use topo diff to view differences between the master repository and the active repository in the STR.    

Option

Description

[-e, --show-entries]

Use this option for viewing differences in an easy-to-read format. By default, the output from the command displays topo set commands that correspond to the staged changes.

Info

...

Example - Output from diff command

 With -e option:

Code Block
UPDATE   (containers/main1/picos/ec1.conf) config.properties.aaa:"2"  # (was: "1") 

Without -e option:

Code Block
mzsh topo set topo://container:main1/pico:ec1/val:config.properties.aaa "2"  # (was: "1")

[ -f, --from] <registry>

Use this option when you want to compare the active registry with the backup registry

[-q, --brief]

Use this option to only view the names of the updated registry files. The default value is false.

Info

...

Example - Comparing registry files

Run the following command to view the differences between the active registry and the master registry.

Code Block
languagetext
$ mzsh topo diff

or

Code Block
languagetext
$ mzsh topo diff --from master

Run the following command to view the differences between the active registry and the backup registry.

Code Block
languagetext
$ mzsh topo diff --from backup

...

env

Code Block
Usage: topo env [-e, --effective] [--update-java-home <value>] [--update-mz-container <value>] [--update-mz-home <value>] 
[--update-mz-platform <value>]

Use topo env to display or set environment variables that are used my the mzsh command. These variables are written to the script file MZ_HOME/bin/mzsh.     

Option

Description

[-e, --effective]

Use this option to read the environment parameters in runtime, i e the "effective values" after accounting for overrides. The default behaviour is to read the values as they are defineds in the mzsh script file, not accounting for the possibility to override these values with environment  variables. 

[--update-java-home <value>]

Use this option to update the value of JAVA_HOME

[ --update-mz-container <value>]

Use this option to

...

update the value of MZ_CONTAINER.

[--update-mz-home <value> ]

Use this option to

...

update the value of MZ_HOME.

[--update-mz-platform <value> ]

Use this option to

...

update the mzsh value of MZ_PLATFORM.

Info

...

Example - Reading the environment variables

Code Block
$ mzsh topo env
export JAVA_HOME="/opt/Java/JavaVirtualMachines/jdk-17.0.2.jdk/Contents/Home"
export MZ_CONTAINER="main1"
export MZ_CONTAINER_TYPE="platform"
export MZ_PLATFORM="http://localhost:9000"
export MZ_HOME="/user/home/mz/main1"
Info

...

Example - Setting the environment variable JAVA_HOME

Code Block
$ mzsh topo env --update-java-home /opt/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home

get

Code Block
Usage: topo get [--default-val <value>] [ --exclude-dynamic] [--format <full | data-only>] [-l, --local] [-p, --perspective] <target path>]

Use topo get to retrieve pico configurations in the target path from STR.

Paths in STR are structured as follows:

Code Block
languagetextthemeEclipse
topo://container:<container>/pico:<pico>/val:<attribute>

Option

Description

[--default-val <value>]

Use this option to replace a missing value in the target path with a default value.

Info
title

Example - Using default-val

If the property aaa, is not defined for ec1, 123 is returned instead.

Code Block
languagetext
themeEclipse
$ mzsh topo get -l --default-val 123 \
topo://pico:ec1/val:config.properties.aaa

[ --exclude-dynamic]

Use this option to exclude non-static data in the output e g _status in a pico configuration. This is useful in case of errors that blocks the topo command.

[--format <full|data-only>]

Use this option to exclude metadata from the command output.

  • full - Include meta data

  • data-only - exclude meta data

Default: full

[-l, --local]

Use this option to select the local container, unless another container is specified in the target path.

Default: false

[-p, --perspective <resolve | default>]

Use this option to retrieve the attributes of templates instead of the template names.

  • resolve - attributes

  • default - template names

Default: default

title
Info

Example - Viewing pico configurations

Run the following command to view one or more pico configurations.

Code Block
languagetext
$ mzsh topo get topo://container:main1/pico:ec2 

You can view multiple pico configurations by replacing the full path with a regular expression.

Code Block
languagetext
$ mzsh topo get topo://container:main1/pico:.*
Info
title

Example - Viewing pico attributes

Run the following command to view a specific attribute in a pico configuration.

Code Block
languagetext
$ mzsh topo get topo://container:main1/pico:ec2/val:_name

You can retrieve the attributes of multiple pico processes by replacing the full path with a regular expression.

Code Block
languagetext
$ mzsh topo get --format data-only topo://container:main1/pico:.*/val:_name

...

Use topo hash to retrieve a value that represents the current state of the active registry. This is useful when you need to handle concurrent changes of the STR. For instance, an application may need to retrieve a pico configuration to evaluate the required changes. In the meantime, a second application or a user may update the same configuration

Info
title

Example - Using hash values

  1. Application 1 retrieves a new hash value.

    Code Block
    languagetext
theme
Eclipse
$ mzsh topo hash 
"3a2e373fa1653c7f0e757e2682c70317-2028777631"
  • Application 1 retrieves the properties of ec1.

    Code Block
    languagetext
  • themeEclipse
    1. $ mzsh topo get -l pico:ec1/obj:config.properties
    2. Application 1 updates a property but does not call topo activate. The hash is specified to ensure that changes by other users are not activated inadvertently later on.

      Code Block
      languagetext
    theme
    Eclipse
    1. $ mzsh topo set -l --no-activation --hash 3a2e373fa1653c7f0e757e2682c70317-2028777631 \ 
      topo://pico:ec1/val:config.properties.ec.httpd.port 9090 
    2. Application 2 updates the properties of ec1. The hash value is updated.

      Code Block
      languagetext
    themeEclipse
    1. $ mzsh topo set -l topo://pico:ec1/val:config.properties.ec.httpd.port 9090
    2. Application 1 calls topo activate with hash value retrieved in step 1.

      Code Block
      languagetext
    themeEclipse
    1. $ mzsh topo activate --hash 3a2e373fa1653c7f0e757e2682c70317-2028777631
    2. The activation fails since the hash values do not match.

      Code Block
      Specified hash does not match transaction id:  d9cd38f3793647028bd7e5d64c354ad5-2055434210 != 3a2e373fa1653c7f0e757e2682c70317-2028777631)
      This may indicate concurrent modification of registry: Operation aborted!
    3. Application 1 resets the master registry, retrieves a new hash and starts over.

      Code Block
      languagetext
    theme
    Eclipse
    1. $ mzsh topo reset
      $ mzsh topo hash 

    help

    Code Block
    Usage: topo help [<subcommand>]

    ...

    Use topo migrate to move pico configurations from MZ_HOME to STR. The upgrader runs this command during upgrade to 8to Image Added 8.0.

    open

    Code Block
    Usage: topo open [-n, --no-activation] <target path>

    Use topo open to open a cell, container- or pico configuration file in a text editor. When you save and close the editor, the command will call topo activate to move the staged changes in the master registry to the active registry.

    Option

    Description

    [-n, --no-activation]

    Use this option to skip activation after changes in master registry.

    Run the following command to open a cell configuration:

    Code Block
    languagetext
    $ mzsh topo open cell:<cell>
    title
    Info

    Example - Opening a cell configuration

    Code Block
    languagetext
    $ mzsh topo open cell:default

    ...

    Code Block
    languagetext
    $ mzsh topo open <container>
    Info
    title

    Example - Opening a container configuration

    Code Block
    languagetext
    $ mzsh topo open main1

    ...

    Code Block
    languagetext
    $ mzsh topo open <pico>
    title
    Info

    Example - Opening a pico configuration

    Code Block
    languagetext
    $ mzsh topo open ec1

    or

    Code Block
    languagetext
    $ mzsh topo open container:main1/pico:ec1

    If the pico name is not unique in the system, you will be prompted to specify the container.

    title
    Info

    Example - Multiple pico configuration sharing the same name

    Code Block
    languagetext
    $ mzsh topo open ec2 (/home/main1/common/config/cell/default/master/containers/main1/picos/ec2.conf,ec2,topo://container:main1/pico:ec2)
    (/home/main1/common/config/cell/default/master/containers/exec1/picos/ec2.conf,ec2,topo://container:exec1/pico:ec2)
    
    Multiple entries, select one:
     (1) topo://container:main1/pico:ec2
     (2) topo://container:exec1/pico:ec2
     [1] :

    ...

    Code Block
    languagetext
    $ mzsh topo open services:<custom|standard>
    Info
    title

    Example - Opening a service configuration

    Code Block
    languagetext
    $ mzsh topo open services:custom
    Tip
    title

    Hint!

     When you save the configuration, topo activate is called with the --verbose option and the saved changes are displayed in a scripted syntax.

    By default, the command opens the vi editor. To use a different editor set the environment variable EDITOR.

    Info
    title

    Example - Setting nano as the default editor

    Code Block
    $ export EDITOR=nano

    ...

    Use topo rebase to inset a standard template in a pico configuration and remove attributes that are identical to attributes in the template. The command automatically detects the pico configuration type and applies one of the following templates:

    • mz.standard-platform.conf

    • mz.standard-ec.conf

    • mz.standard-sc

    This command is useful to reduce the size of the pico configurations and thereby facilitate maintenance.

    ...

    For further information about templates, see STR File Structure.

    Option

    Description

    [-a, --activate]

    Use this option to immediately activate after changes in master registry.

    title
    Info

    Example - Rebasing an EC configuration

    Code Block
    $ mzsh topo rebase-configs topo://container:main1/pico:ec1$ mzsh topo active --verbose

    or

    Code Block
    mzsh topo rebase-configs --actoivate topo://container:main1/pico:ec1

    ...

    When you install an execution container, and the Platform is running, it is automatically registered in the Platform Container. If the platform is not running during the installation, use topo register to register the Execution Container manually.

    Option

    Description

    [-a, --address <ip/host>]

    Use this when you need to set a different host address for the container than the one that is specified in the common property pico.rcp.server.host, which is the default value. This option is typically used together with the -u option.

    [-c, --container <container>]

    Use this option when you need to change the existing container name. This option is typically used together with the -u option.

    [-g, --container-group <container group>]

    Use this option when you need to change the existing container group. This option is typically used together with the -u option.

    [--mz-home <path>]

    Use this option when you need to set a different home directory for the container than the one that is specified in the environment variable MZ_HOME, which is the default value. 

    [-u]

    Use this option to allow updates of an already registered container. By default, updates are not allowed and the command will attempt to register a new container.

    reset

    Code Block
    Usage: topo reset

    ...

    Use topo set to create and update pico configurations in the specified target-path of STR.

    Option

    Description

    [-l, --local ]

    Use this option to select the local container, unless another container is specified in the target path.

    [--no-activation, -n]

    Use this option to skip activation after changes in master registry.

    [-s,

    --strict-json]

    Use this option when you want to specify the configuration in JSON format instead of HOCON format.

    Run the following command to create a new pico configuration.

    Code Block
    languagetextthemeEclipse
    $ mzsh topo set topo://container:<container>/pico:<pico> <config>

    The <config> argument may contain a key-value pair that specifies a template or a pico configuration in HOCON format.

    title
    Info

    Example - Creating a new pico configuration based on a template

    Code Block
    languagetext
     $ mzsh topo set topo://container:main1/pico:ec2 template:mz.standard-ec
    .
    Info
    title

    Example

    - Creating pico configuration

    When you specify a pico configuration that consists of multiple attributes, it is recommended that you use multi-line strings.  

    HOCON Format:

    Code Block
    languagetext
    $ mzsh topo set --local pico:ec2 '
    {
    	template:mz.standard-ec
    	config {
    		properties {
    			ec.httpd.port : 9092
    		} 
    		classpath {
    			jars=["lib/picostart.jar"]
    		}
    	}
    }'

    JSON Format:

    Code Block
    languagetext
    mzsh topo set -l --strict-json pico:ec2 '
    {
    	"template": "mz.standard-ec",
    	"config": {
    		"properties": {
    			"ec": {
    				"httpd": {
    					"port": 9092
    				}
    			}
    		},
    		"classpath": {
    			"jars": ["lib/picostart.jar"]
    		}
    	}
    }'

    ...

    Add the pico group setting by using the following

    ...

    mzsh topo set topo://container:<container>/pico:<pico>/val:<attribute> <attribute value>

    $

    topo command

    Info
    titleExample - Updating a pico attribute
    Code Block
    languagetext
    Code Block
    mzsh topo set topo://container:main1/pico:ec2ec1/val:ec_type ec

    Run the following command to add or update an object that contains one or more attributes.

    Code Block
    languagetext
    themeEclipse
    $ mzsh topo set topo://container:<container>/pico:<pico>/obj:<object name> '<config>'

    The <config> argument may contain a pico configuration in HOCON format.

    ...

    titleExample - Updating a pico object

    This command adds the properties value1 and value2:

    Code Block
    languagetext
    $ mzsh topo set topo://container:main1/pico:ec2/obj:config.properties.example_object '{
     value1=1
     value2=2
    }'

    The following commands does not overwrite the properties value1 and value2 in example_object but adds value3:

    Code Block
    $ mzsh topo set topo://container:main1/pico:ec2/obj:config.properties.example_object '{
     value3=3
    }'

    setupremote

    Code Block
    Usage: topo setupremote [-c, --container <container>] [-g, --container-group <container group>] [--host-key <path>] [--javahome <path>] [--no-authorized-key] [--no-host-key] [-- no-ssh-details] [--ssh-address <ip/host>] [--ssh-port <port>] [--ssh-username <username>]

    Use the command topo setupremote to enable remote access via SSH to an Execution Container, e g from the Platform container.

    ...

    [-c, --container <container>]

    ...

    Use this option to specify a different container than the local one, which is the default value.

    ...

    By default, the topo setupremote command will obtain a public authorization key from the user home directory on the Platform Container host and store it in the STR, i e the file mz.conf. Use the option --no-authorized-key to skip this operation.

    ...

    By default, the topo setupremote command will store the public host key of the Execution Container in the STR, i e the file mz.conf. Use the option --no-host-key to skip this operation.

    ...

    show

    Use topo show to retrieve various types of information about pico instances that are defined in the STR. 

    Code Block
    languagetext
    Usage: topo show [ --exclude-dynamic] [--format <format>] [-l, --local] [--timeout-seconds <time>] <view>

    ...

    Set the format of the returned data:

    • csv
      json
      table (default)

    ...

    Use this option to view pico instances in the local container only. By default, all containers are included.

    ...

    [--timeout-seconds <time>]

    Use this option to limit the time for retrieving dynamic information, e g _status.The default value is 10 seconds.

    The following views are available:

    ...

    Info
    titleExample - Views
    Code Block
    $ mzsh topo show jvm-args
    +-------------------------------------------------------------
    | container | name     | config.jvmargs                      | 
    +-----------+----------+config.properties.pico.groups "ec1, ec2"
    

    This command makes the Execution context "EC1" a member of the "ec1" and "ec2" groups. 

    This is the HOCON example format adding in ECs to a pico group. 

    Code Block
    config {
        classpath {}
        jvmargs {
            args=[]
        }
        properties {
            mz.webserver.xframeoptions=DENY
            pico.groups="ec1, ec2"
            ec.backlog.dir="/home/davids/git/mz9/mediationzone/mz-dist/../mzhomes/mz9/tmp"
            ec.webserver.port=9137
        }
        vendor-jvmargs {
            hp {}
            sun {}
        }
    }

    Run the following command to add or update an attribute of a pico configuration.

    mzsh topo set topo://container:<container>/pico:<pico>/val:<attribute> <attribute value>

    Info

    Example - Updating a pico attribute

    Code Block
    languagetext
    $ mzsh topo set topo://container:main1/pico:ec2/val:ec_type ec

    Run the following command to add or update an object that contains one or more attributes.

    Code Block
    languagetext
    $ mzsh topo set topo://container:<container>/pico:<pico>/obj:<object name> '<config>'

    The <config> argument may contain a pico configuration in HOCON format.

    Info

    Example - Updating a pico object

    This command adds the properties value1 and value2:

    Code Block
    languagetext
    $ mzsh topo set topo://container:main1/pico:ec2/obj:config.properties.example_object '{
     value1=1
     value2=2
    }'

    The following commands does not overwrite the properties value1 and value2 in example_object but adds value3:

    Code Block
    $ mzsh topo set topo://container:main1/pico:ec2/obj:config.properties.example_object '{
     value3=3
    }'

    setupremote

    Code Block
    Usage: topo setupremote [-c, --container <container>] [-g, --container-group <container group>] [--host-key <path>] [--javahome <path>] [--no-authorized-key] [--no-host-key] [-- no-ssh-details] [--ssh-address <ip/host>] [--ssh-port <port>] [--ssh-username <username>]

    Use the command topo setupremote to enable remote access via SSH to an Execution Container, e g from the Platform container.

    Option

    Description

    [-c, --container <container>]

    Use this option to specify a different container than the local one, which is the default value.

    [-g, --container-group <container group>]

    Use this option to setup remote access to a container in specific container group. This is useful when you have multiple containers with identical names in different containers groups.

    [--host-key <path>]

    Use this option to use a pre-generated host key instead of the one that is generated when you run topo setupremote.

    [--java-home <path>]

    Use this option when the target container is located on a different host. The default value is specified by the environment variable JAVA_HOME in the current shell.

    [--no-authorized-key]

    By default, the topo setupremote command will obtain a public authorization key from the user home directory on the Platform Container host and store it in the STR, i e the file mz.conf. Use the option
    --no-authorized-key
    to skip this operation.

    [--no-host-key]

    By default, the topo setupremote command will store the public host key of the Execution Container in the STR, i e the file mz.conf. Use the option --no-host-key to skip this operation.

    [--no-ssh-details]

    Use this option to exclude ssh-username and ssh-address from STR. These attributes are required for remote access. If you use this option you will need to update the STR manually.

    [--ssh-address <ip/host>]

    Use this option when the target container is located on a different host or when you want to bind to a specific IP address or hostname. The default value is specified by the address attribute for container in mz.conf.

    [--ssh-port <port>]

    Use this option when you want to use a different port than 22 for SSH.  

    [--ssh-username <username>]

    Use this option when the target container is located on a different host or when a specific username is required for SSH. The default SSH user is the OS user that runs the topo setupremote command.

    show

    Use topo show to retrieve various types of information about pico instances that are defined in the STR. 

    Code Block
    languagetext
    Usage: topo show [ --exclude-dynamic] [--format <format>] [-l, --local] [--timeout-seconds <time>] <view>

    Option

    Description

    [ --exclude-dynamic]

    Exclude non-static data in the output e g _status in a pico configuration. This is useful in case of errors that blocks the topo command.

    [ --format <format>]

    Set the format of the returned data:

    • csv
      json
      table (default)

    [ -l, --local ]

    Use this option to view pico instances in the local container only. By default, all containers are included.

    [--timeout-seconds <time>]

    Use this option to limit the time for retrieving dynamic information, e g _status.The default value is 10 seconds.

    The following views are available:

    • jvm-args - Displays the JVM arguments that are used by the pico instances in the system. JVM arguments that are set in templates are included.

    • status - Displays the container name, pico name, pico type and running state.

    • status-sc - Displays similar view as status but only includes SCs.

    • status-ec - Displays similar view as status but only includes ECs.

    • status-long - Displays similar view as status but also includes the status of replication between Platform Container and Execution Containers.

    • pico-view - Displays similar view as status but also includes memory usage and the pico response time.

    • pico-view2 - Displays similar view as pico-view but also includes uptime. 

    • ports - Displays the ports that are used by the pico instances in the system. Ports that are set in templates and on cell- and container levels, are included. If both webserver and httpd ports are displayed, then webserver ports take precedence. 

    Info

    Example - Views

    Code Block
    $ mzsh topo show jvm-args
    +-------------------------------------------------------------+
    | main1container | name   | platform | args=[ config.jvmargs                             | 
    |      | 
    +-----------+----------+-------------------------------------+
    | main1     | platform | args=[        |     "-XX:MaxMetaspaceSize=256M",    |  |           | 
     |       |     "-Xms192M",|          |       "-XX:MaxMetaspaceSize=256M",    | 
    |           |          |     "-Xmx1024MXms192M",                     | 
    |           |          | ]    "-Xmx1024M"                     | 
    |           |          | ]                                   | 
    +-----------+----------+-------------------------------------+
    | main1     | ec1      | args=[                              | 
    |           |          |     "-server"                       | 
    |           |          | ]                                   | 
    |           |          | maxDirect=[                         | 
    |           |          |     "-XX:MaxDirectMemorySize=4096M" | 
    |           |          | ]                                   | 
    |           |          | maxMetaspace=[                      | 
    |           |          |     "-XX:MaxMetaspaceSize=196M"     | 
    |           |          | ]                                   | 
    |           |          | xms=[                               | 
    |           |          |     "-Xms64M"                       | 
    |           |          | ]                                   | 
    |           |          | xmx=[                               | 
    |           |          |     "-Xmx256M"                      | 
    |           |          | ]                                   | 
    +-----------+----------+-------------------------------------+
    | main1     | psc1     | args=[                              | 
    |           |          |     "-server"                       | 
    |           |          | ]                                   | 
    |           |          | maxDirect=[                         | 
    |           |          |     "-XX:MaxDirectMemorySize=4096M" | 
    |           |          | ]                                   | 
    |           |          | maxMetaspace=[                      | 
    |           |          |     "-XX:MaxMetaspaceSize=196M"     | 
    |           |          | ]                                   | 
    |           |          | xms=[                               | 
    |           |          |     "-Xms64M"                       | 
    |           |          | ]                                   | 
    |           |          | xmx=[                               | 
    |           |          |     "-Xmx256M"                      | 
    |           |          | ]                                   | 
    +-----------+----------+-------------------------------------+
    | exec1     | ec2      | args=[                              | 
    |           |          |     "-server"                       | 
    |           |          | ]                                   | 
    |           |          | maxDirect=[                         | 
    |           |          |     "-XX:MaxDirectMemorySize=4096M" | 
    |           |          | ]                                   | 
    |           |          | maxMetaspace=[                      | 
    |           |          |     "-XX:MaxMetaspaceSize=196M"     | 
    |           |          | ]                                   | 
    |           |          | xms=[                               | 
    |           |          |     "-Xms64M"                       | 
    |           |          | ]                                   | 
    |           |          | xmx=[                               | 
    |           |          |     "-Xmx256M"                      | 
    |           |          | ]                                   | 
    +-------------------------------------------------------------
    Code Block
    $ mzsh topo show status
    +---------------------------------------------------------------
    | container | name     | type     | state       | config-state | 
    +-----------+----------+----------+-------------+--------------+
    | main1     | platform | platform | running     | in-sync      | 
    | main1     | ec1      | ec.      | not-started |              | 
    | main1     | psc1     | sc       | not-started |              | 
    | exec1     | ec2      | ec       | not-started |              | 
    +---------------------------------------------------------------
    Code Block
    $ mzsh topo show ports
    +----------------------------------------------------------------------------
    | container | name     | type     | ports                                   | 
    +-----------+----------+----------+-----------------------------------------+
    | main1     | platform | platform | "mz.pcc.restful.port"="9090"            | 
    |           |          |          | "mz.servicehost.port.range"="5451-5500" | 
    |           |          |          | "mz.wi.port"="9000"                     | 
    |           |          |          | "pico.rcp.platform.port"="6790"         | 
    |           |          |          | "pico.synchronizer.port"="6791"         | 
    +-----------+----------+----------+-----------------------------------------+
    | main1     | ec1      | ec       | "ec.httpd.port"="9093"                  | 
    |           |          |          | "pico.rcp.platform.port"="6790"         | 
    |           |          |          | "pico.synchronizer.port"="6791"         | 
    +-----------+----------+----------+-----------------------------------------+
    | main1     | psc1     | sc       | "mz.servicehost.port.range"="5801-5850" | 
    |           |          |          | "pico.rcp.platform.port"="6790"         | 
    |           |          |          | "pico.synchronizer.port"="6791"         | 
    +-----------+----------+----------+-----------------------------------------+
    | exec1     | ec2      | ec       | "ec.httpd.port"="9090"                  | 
    |           |          |          | "pico.rcp.platform.port"="6790"         | 
    |           |          |          | "pico.synchronizer.port"="6791"         | 
    +----------------------------------------------------------------------------
    
    
    

    unset      

    Code Block
    Usage: topo unset [-l, --local] [-n, --no-activation] <target path>

    Use topo unset to remove pico configurations in the specified target-path of STR.

    Option

    Description

    [-l, --local]

    Use this option to select the local container, unless another container is specified in the target path.       

    [-n, --no-activation]

    Use this option to skip activation after changes in master registry.

    Run the following command to remove a pico configuration.

    mzsh topo unset topo://container:<container>/pico:<pico>

    Info
    title

    Example - Removing a pico configuration

    Code Block
    languagetext
    $ mzsh topo unset topo://container:main1/pico:ec2

    Info

    ...

    Example - Removing a pico attribute

    Code Block
    languagetext
    $ mzsh topo unset topo://container:main1/pico:ec2/val:ec_type ec

    Excerpt

    File Paths in Attributes

    When you enter a path that is relative to MZ_HOME in the value of an attribute, it is recommend that you use ${mz.home} as a substitution.

    In the following example MZ_HOME will be resolved to its current value e g /home/user/mz.

    Info

    ...

    Example - Resolved path

    Code Block
    languagetext

    ...

    $ mzsh topo set topo://container:main1/val:common.pico.rcp.tls.keystore $MZ_HOME/keys/platform.keys

    The next example uses a path that is always relative to MZ_HOME.

    Info

    ...

    Example - Substituted path

    Code Block
    languagetext

    ...

    $ mzsh topo set topo://container:main1/obj:common.pico.rcp.tls.keystore '{ keystore=${mz.home}"/keys" }'

    ...

    titleNote!

    When you are using ${mz.home} as a substitution,

    ...

    ensure to set attributes as part of an object, using the obj keyword.

    Conflicting Attributes

    The name of an attribute may contain the full name of another attribute. For instance, mz.httpd.security.keystore is a system property but its name is also a part of mz.httpd.security.keystore.password.

    In this case you must ensure that the name of both properties are surrounded by quotes, or one of the properties will be overwritten at

    ...

    titleExample - Handling conflicting attributes, manual editing
    Code Block
    common : {
        "pico.rcp.tls.keystore" : "home/mz/keys",
        "pico.rcp.tls.keystore.password" : "..."
    }

    When there are conflicting properties and you are using the mzsh topo command, also add single quotes, surrounding the target path (topo://..).

    ...

    titleExample - Handling conflicting attributes, scripted editing

    ...

    activation.

    Info

    Example - Handling conflicting attributes, manual editing

    Code Block
    common : {
        "pico.rcp.tls.keystore" : "home/mz/keys",
        "pico.rcp.tls.keystore.password" : "..."
    }

    When there are conflicting properties and you are using the mzsh topo command, also add single quotes, surrounding the target path (topo://..).

    Info

    Example - Handling conflicting attributes, scripted editing

    Code Block
    $ mzsh topo set 'topo://container:<platform container>/val:common."pico.rcp.tls.keystore"' "home/mz/keys"
    $ mzsh topo set 'topo://container:<platform container>/val:common."pico.rcp.tls.keystore.password"' "..."

    Updating IP, Hostname, and Ports in JDBC URL

    You can update the IP address, hostname, and ports int he JDBC URL using the mzsh topo get and mzsh topo set commands as shown in the examples below.

    Info

    Example - Get current config

    Code Block
    languagebash
    $ mzsh topo get -s --format data-only topo://container:platform1/pico:platform/obj:config.properties.mz.jdbc
    	{
    		"password": "DR-4-48851644227183C2041D838568E117EC",
    		"oracle": {
    		"ons": ""
    		},
    		"type": "oracle",
    		"user": "mzadmin",
    		"url": "jdbc:oracle:thin:@//127.0.0.1:1521/orcl"
    	}
    Info

    Example - Update URL with set

    Code Block
    languagebash
    $ mzsh topo set topo://container:mz/pico:platform/val:config.properties.mz.jdbc.url "jdbc:oracle:thin:@//192.168.1.10:1522/orcl"
    
    [ set: topo://container:mz/pico:platform/val:config.properties.mz.jdbc.url => jdbc:oracle:thin:@//192.168.1.10:1522/orcl] 
    Updating file: $MZ_HOME/common/config/cell/default/master/containers/mz/picos/platform.conf
    Topology activation completed (master->active)
    Note

    Caution!

    When you have set the new JDBC URL, run shutdown and startup on the platform to ensure that your changes take effect properly.
    If you added the incorrect config and the platform did not start, you can run your mzsh command again with the --allow-disconnected option

    Return Codes

    Listed below are the different return codes for the topo commandtopo command:

    Code

    Description

    0

    Will be returned if the command is successful.

    1

    Will be returned if the argument count is incorrect or argument(s) are invalid.

    3

    Will be returned if the target path argument for the subcommand get does not exist.