Continuous Integration and Continuous Deployment

Build user-created assets and configurations using webMethods Asset Build Environment (ABE), retrieve those assets and configurations from a VCS by using ABE or an automated tool like Jenkins, and then deploy those assets and configurations to the webMethods Cloud Default Environment by using ABE.

Continuous Build and Publish

You can build user-created assets and configurations using webMethods Asset Build Environment (ABE), retrieve those assets and configurations from a VCS by using ABE or an automated tool like Jenkins, and then deploy those assets and configurations to the webMethods Cloud Default Environment by using ABE.

Note: Click here to see how to deploy on-premises assets and configurations using webMethods Asset Build Environment.

Basic build and publish mechanism

Note: Command Central usage for Integration Server and Universal Messaging configuration deployment is deprecated. It is recommended to use the Integration Server or Universal messaging to deploy assets and configurations to webMethods Cloud Container.

Steps describing the CI/CD mechanism

  1. Create the assets on the development environment and export or copy them to a file system or version control system (VCS), from which the build process can obtain them.
    The location to which you export or copy the assets is called the source directory.

  2. Install webMethods Asset Build Environment (ABE)
    ABE installs the build scripts and the build properties file that you use to build the composites and descriptors. See the Building Composites for Repository-Based Deployment section in the webMethods Deployer Users Guide for more information.

  3. Set the properties for the build and run the build script in ABE to create the composites and descriptors
    See the Building Composites for Repository-Based Deployment section in the webMethods Deployer Users Guide for more information.

  4. Use ABE to push the composites and descriptors to the webMethods Cloud Asset Repository
    Apart from providing values to the properties in build.properties, specify the following additional properties to upload composites and descriptors to the webMethods Cloud Asset Repository.

    Property Definition
    localStore Represents the local folder where the Git repository is cloned or the local Git repository. localStore must be the same as the build.output.dir.
    remoteStore URL of the webMethods Cloud Asset Repository. The URL format is: https://mysubdomain.container.webmethodscloud.com/integration/rest/internal/wmic-git/[solutionname]-[productaliasname]
    Example: https://mysubdomain.container.webmethodscloud.com/integration/rest/internal/wmic-git/development-mysolution-myis
    message Required. Message which describes the commits.
    username Required. webMethods Cloud Container login user name.
    password Required. webMethods Cloud Container login password.
  5. Run one of the following commands from the [Software AG_directory]\common\AssetBuildEnvironment\bin directory to build and upload the composites and descriptors to the webMethods Cloud Asset Repository:

    For this platform… Run the following command…
    Windows build.bat buildUploadAssets
    UNIX build.sh buildUploadAssets
  6. Promoting assets to the next environment
    Using an automated tool like Jenkins, invoke the following API to promote the assets to the next environment:

    Method: POST

    URL: https://{subdomain}.container.webmethodscloud.com/integration/rest/external/v1/cdep/binaryAssets/solutions/{solutionName}/nodes/{nodeName}?action=promote

URI parameters
- solutionName - Name of the solution in webMethods Cloud Container.
- sourcenodeName - webMethods Integration Server instance - where the assets need to be deployed.

Query parameters

Note: Use basic as the HTTP authorization scheme.

Request Body: The request body should contain the following:

Note: If you want to retrieve the request body, invoke the getcomposites API as provided in Step b. The getcomposites API will get the composites and asset details from the previous environment.

	
Sample Request Body
	
{
	
"integration": {
	"cicdBean": {
	"commitMessage": "Promoting assets from source environment to target environment.",
"acdlComposite": {
	"IS": [{
	"name": "mySqlAssets",
	"targetNamespace": "http://namespaces.softwareag.com/
	webMethods/IS",
	"assets": [],
	"properties": [{
	"name": "activatePkgOnInstall",
	"values": [
	"true"
	]
	
},
	
{
	"name": "archivePkgOnInstall",
	"values": [
	"true"
	]
	},
	

{
	"name": "compilePackage",
	"values": [
	"true"
	]
	}
	]
	
},
	{
"name": "JDBCRegression_deployment",
"targetNamespace": "http://namespaces.softwareag.com/
webMethods/IS",
	
"assets": [{
	"name": "deploy.notifications.deleteN",
	"properties": [{
	"name": "art.deployment.state",
	"values": [
	"disable"
	]
	},
	
{
	
"name": "notificationImmediate",
	"values": [
	"false"
]},
	{"name": "notificationInterval",
	"values": [
	"10"
	]},
{
	"name": "notificationOverlap",
	"values": [
	"false"
	]}]}],
"properties": [{
"name": "activatePkgOnInstall",

"values": [
	"true"
	]	}]	}]
	}
	}
	}
	}
	

getcomposites API

getcomposites retrieves all the composites and its assets which have properties.

Method: GET

URL: https://{subdomain}.container.webmethodscloud.com/integration/rest/external/v1/cdep/binaryAssets/solutions/{solutionName}/nodes/{nodeName}

URI parameters
- solutionName: Name of the solution in webMethods Cloud Container.
- nodeName: webMethods Integration Server instance - where the assets need to be deployed.

Query parameters

fromEnv: Environment name from which assets are retrieved.

Note: Use basic as the HTTP authorization scheme.

	

Sample Response
{
"integration": {	

"message": {	

"code": 0,
	
"description": "Success"

},	

"cicdBean": {"commitMessage": null,
	
"acdlComposite": {
	
"IS": [{
	
"name": "mySqlAssets",
	
"targetNamespace": "http://namespaces.softwareag.com/
webMethods/IS",
	"assets": [],
	"properties": [{
	"name": "activatePkgOnInstall",
	"values": [
	"true"
	]},	
{
	"name": "archivePkgOnInstall",
	"values": ["true"
	]},
{"name": "compilePackage",
	"values": [
	"true"
	]}]},
{
"name": "JDBCRegression_deployment",
	"targetNamespace": "http://namespaces.softwareag.com/
	webMethods/IS",
	"assets": [{
	"name": "deploy.notifications.deleteN",
	"properties": [{
	"name": "art.deployment.state",
	"values": [
	"disable"
	]},
{
"name": "notificationImmediate",
"values": [
	"false"]},
{
	"name": "notificationInterval",
	"values": [
	"10"
	]	},
	
{"name": "notificationOverlap",
	"values": [
	"false"
	]}
	]}],
	

"properties": [{
"name": "activatePkgOnInstall",
	
"values": [
"true"
	]}]}]}}}}

The response contains the following:

Command Line Interface

The Cloud Container CLI interacts with webMethods Cloud Container and performs tasks such as managing a solution, monitoring the status of all runtimes in a solution, pull assets from a solution of another environment, and so on. The CLI supports the following modes:

Install CLI

Overview

You install the webMethods Cloud Container CLI (wmcc-cli) using the NPM registry. This section describes tasks such as installing the CLI and specifying credentials to connect to webMethods Cloud Container.

Before you begin

Before you install wmcc-cli from the NPM registry, do the following:

CLI Reference

The following table describes the commands you use to perform various scenarios in the CLI interface.

Commands for viewing alerts in webMethods Cloud Container

Run the following command to view alerts.

	

alert list [options]
	

where the options are:

—–Name Description
—–solutionName [solutionName] Filter the alerts that belong to a particular solution.
——alertName [alertName] Filter the alerts by name.
—–runtime [runtime] Filter the alerts by Instances / Node name in a solution.
—–severity [severity] Filter the alerts based on the severity. Default supported values are info, warning, and critical.
—–view [view] By default, outputs the response in a table view mode. The CLI supports both table and JSON output format.
Example: alert list —–severity critical
—–view [json] By default, outputs the response in a table view mode. The CLI supports both table and JSON output format.
Example: alert list —–severity critical —–view json
Note: JSON output format loads complete information that contains additional field than the table output format.

Commands for listing the assets in LAR

Run the following command to list all the assets available in the LAR.

	

asset-repo list-assets <solutionName> <nodeName> [options]
	

where the options are:

—–Name Description
—–view [view] By default, outputs the response in a table view mode. The CLI supports both table and JSON output format.
Example: asset-repo list-assets DemoSoln IS development

Commands for creating solutions

Run the following command to create solutions.

	

solution create [options]
	

where the options are:

—–Name Description
—–inputFile [fileName] Provide the name of the file that contains the input data.
solution create —–inputFile /home/etc/createSolution.json
The file must contain a valid solution name, the name of the webMethods Integration Server and Universal Messaging instances, number of CPU Cores, and Memory characteristics of the hardware to support each service in the solution.

Example 1 : Creating Type 1 solution without cluster.

	

{
	"integration": {
		"landscapeDefinition": {
			"solutionName": "Demo",
			"description": "Demo Solution",
			"solutionType": 1,
			"productDefinitions": {
				"IS": [{
					"name": "IS",
					"resources": {
						"limits": {
							"cpu": "1",
							"memory": "2"
						}
					},
					"version": "10.4",
					"env": {
						"packages": ["packages.WmCloudStreams
.enabled=true",
 "packages.WmJDBCAdapter.enabled=true"]
					}
				}]
			}
		}
	}
}
	

Example 2: Creating Type 1 solution with stateful cluster.

	

{
	"integration": {
		"landscapeDefinition": {
			"solutionName": "Demo",
			"description": "Demo Solution",
			"solutionType": 1,
			"productDefinitions": {
				"IS": [{
					"name": "IS",
					"replicaCount": "2",
					"resources": {
						"limits": {
							"cpu": "1",
							"memory": "2"
						}
					},
					"dependencies": ["DB","tc"],
					"clusterType": "stateful",
					"isClustered": true,
					"statefulCluster": true,
					"version": "10.4",
					"env": {
						"packages": ["packages.WmCloudStreams.
enabled=true", "packages.WmJDBCAdapter.enabled=true"]
					}
				}],
				"TERRACOTTA": [{
				    "name": "tc",
					"isClustered": true,
					"statefulCluster": false,
					"replicaCount": "2",
					"enabled": true,
					"resources": {
						"limits": {
							"cpu": "1",
							"memory": "4"
						}
					},
					"version": "10.4",
					"env": {
						"packages": [],
						"monitoringTools": []
					}
				}]
			}
		}
	}
}
	


Example 3: Creating Type 1 solution with stateless cluster.

{
	"integration": {
		"landscapeDefinition": {
			"solutionName": "Demo",
			"description": "Demo Solution",
			"solutionType": 1,
			"productDefinitions": {
				"IS": [{
					"name": "IS",
					"replicaCount": "2",
					"dependencies": ["DB"],
					"resources": {
						"limits": {
							"cpu": "1",
							"memory": "2"
						}
					},
					"clusterType": "stateless",
					"isClustered": true,
					"statefulCluster": false,
					"version": "10.4",
					"env": {
						"packages": ["packages.WmCloudStreams.
enabled=true", "packages.WmJDBCAdapter.enabled=true"]
					}
				}]
			}
		}
	}
}
	


Example 4: Creating Type 2 solution without cluster.

	

{
	"integration": {
		"landscapeDefinition": {
			"solutionName": "Solution2",
			"description": "sample solution",
			"solutionType": 2,
			"productDefinitions": {
				"IS": [{
					"name": "IS",
					"resources": {
						"limits": {
							"cpu": "1",
							"memory": "2"
						}
					},
					"version": "10.4",
					"env": {
						"packages": ["packages.WmCloudStreams
.enabled=true",
 "packages.WmJDBCAdapter.enabled=true"]
					}
				}],
				"UNIVERSALMESSAGING": [{
					"name": "UM",
					"resources": {
						"limits": {
							"cpu": "1",
							"memory": "2"
						}
					},
					"version": "10.4"
				}]
			}
		}
	}
}
	

Example 5: Creating Type 2 solution with stateful cluster.

	

{
	"integration": {
		"landscapeDefinition": {
			"solutionName": "Solution2",
			"description": "sample solution",
			"solutionType": 2,
			"productDefinitions": {
				"IS": [{
					"name": "IS",
					"clusterType": "stateful",
					"replicaCount": "2",
					"isClustered": true,
					"statefulCluster": true,
					"dependencies": ["DB", "UM", "tc"],
					"resources": {
						"limits": {
							"cpu": "1",
							"memory": "2"
						}
					},
					"version": "10.4",
					"env": {
						"packages": ["packages.WmCloudStreams.
enabled=true", "packages.WmJDBCAdapter.enabled=true"]
					}
				}],
				"UNIVERSALMESSAGING": [{
					"name": "UM",
					"clusterType": null,
					"isClustered": false,
					"resources": {
						"limits": {
							"cpu": "1",
							"memory": "2"
						}
					},
					"version": "10.4"
				}],
				"TERRACOTTA": [{
				    "name": "tc",
					"isClustered": true,
					"resources": {
						"limits": {
							"cpu": "1",
							"memory": "4"
						}
					},
					"version": "10.4",
					"env": {
						"packages": [],
						"monitoringTools": []
					}
				}]
			}
		}
	}
}
	

Example 6: Creating Type 2 solution with stateless cluster.

	

{
	"integration": {
		"landscapeDefinition": {
			"solutionName": "Solution2",
			"description": "sample solution",
			"solutionType": 2,
			"productDefinitions": {
				"IS": [{
					"name": "IS",
					"replicaCount": "2",
					"clusterType": "stateless",
					"dependencies": ["DB","UM"],
					"isClustered": true,
					"statefulCluster": false,
					"resources": {
						"limits": {
							"cpu": "1",
							"memory": "2"
						}
					},
					"version": "10.4",
					"env": {
						"packages": ["packages.WmCloudStreams.
enabled=true", "packages.WmJDBCAdapter.enabled=true"]
					}
				}],
				"UNIVERSALMESSAGING": [{
					"name": "UM",
					"clusterType": null,
					"isClustered": false,
					"resources": {
						"limits": {
							"cpu": "1",
							"memory": "2"
						}
					},
					"version": "10.4"
				}]
			}
		}
	}
}
	


Example 7: Creating Type 3 solution without cluster.

	

{
	"integration": {
		"landscapeDefinition": {
			"solutionName": "Solution3",
			"description": "Sample Solution",
			"solutionType": 3,
			"productDefinitions": {
				"IS": [{
					"name": "IS1",
					"resources": {
						"limits": {
							"cpu": "1",
							"memory": "2"
						}
					},
					"version": "10.4",
					"env": {
						"packages": ["packages.WmCloudStreams.
enabled=true", "packages.WmJDBCAdapter.
enabled=true"]
					}
				}, {
					"name": "IS2",
					"resources": {
						"limits": {
							"cpu": "1",
							"memory": "2"
						}
					},
					"version": "10.4",
					"env": {
						"packages": ["packages.WmCloudStreams.enabled=true",
 "packages.WmJDBCAdapter.enabled=true"]
					}
				}],
				"UNIVERSALMESSAGING": [{
					"name": "UM",
					"resources": {
						"limits": {
							"cpu": "1",
							"memory": "2"
						}
					},
					"version": "10.4"
				}]
			}
		}
	}
}
	

Example 8: Creating Type 3 solution with stateful cluster.

	

{
	"integration": {
		"landscapeDefinition": {
			"solutionName": "Solution3",
			"description": "Sample Solution",
			"solutionType": 3,
			"productDefinitions": {
				"IS": [{
					"name": "IS1",
					"isClustered": true,
					"replicaCount": "2",
					"statefulCluster": true,
					"dependencies": ["UM", "DB", "tc1"],
					"clusterType": "stateful",
					"resources": {
						"limits": {
							"cpu": "1",
							"memory": "2"
						}
					},
					"version": "10.4",
					"env": {
						"packages": ["packages.WmCloudStreams.
enabled=true", "packages.WmJDBCAdapter.enabled=true"]
					}
				}, {
					"name": "IS2",
					"isClustered": true,
					"statefulCluster": true,
					"replicaCount": "2",
					"dependencies": ["UM", "DB", "tc2"],
					"clusterType": "stateful",
					"resources": {
						"limits": {
							"cpu": "1",
							"memory": "2"
						}
					},
					"version": "10.4",
					"env": {
						"packages": ["packages.WmCloudStreams.
enabled=true", "packages.WmJDBCAdapter.enabled=true"]
					}
				}],
				"UNIVERSALMESSAGING": [{
					"name": "UM",
					"isClustered": false,
					"statefulCluster": false,
					"clusterType": null,
					"resources": {
						"limits": {
							"cpu": "1",
							"memory": "2"
						}
					},
					"version": "10.4"
				}],
				"TERRACOTTA": [{
					"name": "tc1",
					"isClustered": true,
					"resources": {
						"limits": {
							"cpu": "1",
							"memory": "4"
						}
					},
					"version": "10.4",
					"env": {
						"packages": [],
						"monitoringTools": []
					}
				}, {
					"name": "tc2",
					"isClustered": true,
					"resources": {
						"limits": {
							"cpu": "1",
							"memory": "4"
						}
					},
					"version": "10.4",
					"env": {
						"packages": [],
						"monitoringTools": []
					}
				}]
			}
		}
	}
}
	


Example 9: Creating Type 3 solution with stateless cluster.

	

{
	"integration": {
		"landscapeDefinition": {
			"solutionName": "Solution3",
			"description": "Sample Solution",
			"solutionType": 3,
			"productDefinitions": {
				"IS": [{
					"name": "IS1",
					"isClustered": true,
					"replicaCount": "2",
					"statefulCluster": false,
					"dependencies": ["UM", "DB"],
					"clusterType": "stateless",
					"resources": {
						"limits": {
							"cpu": "1",
							"memory": "2"
						}
					},
					"version": "10.4",
					"env": {
						"packages": ["packages.WmCloudStreams.enabled=true",
 "packages.WmJDBCAdapter.enabled=true"]
					}
				}, {
					"name": "IS2",
					"isClustered": true,
					"statefulCluster": false,
					"replicaCount": "2",
					"dependencies": ["UM", "DB"],
					"clusterType": "stateless",
					"resources": {
						"limits": {
							"cpu": "1",
							"memory": "2"
						}
					},
					"version": "10.4",
					"env": {
						"packages": ["packages.WmCloudStreams.enabled=true",
 "packages.WmJDBCAdapter.enabled=true"]
					}
				}],
				"UNIVERSALMESSAGING": [{
					"name": "UM",
					"isClustered": false,
					"statefulCluster": false,
					"clusterType": null,
					"resources": {
						"limits": {
							"cpu": "1",
							"memory": "2"
						}
					},
					"version": "10.4"
				}]
				
			}
		}
	}
}
	

Commands for listing the solutions

Run the following command to list solutions.

	

solution list [options]
	

Example:

	

solution list --view json
	

Commands for getting the solution and runtimes

Run the following command to get the solution and all runtimes.

	

solution get <solutionName> [options]
	

where the options are:

—–Name Description
—–view [viewType] By default, outputs the response in a table view mode. The CLI supports both table and JSON output format.
Example: solution get DemoSoln –view json

Commands for deleting the solution

Run the following command to delete the solution.

	

solution delete <solutionName> [options]
	

where the options are:

—–Name Description
—–view [viewType] By default, outputs the response in a table view mode. The CLI supports both table and JSON output format.
Example: solution delete DemoSoln –view json

Commands for activating or deactivating the solution

Run the following command to activate and deactivate a solution.

	

solution update-status <solutionName>  <actionName> [options]
	

where the options are:

—–Name Description
—–view [viewType] By default, outputs the response in a table view mode. The CLI supports both table and JSON output format. Example: solution update-stats DemoSoln development deactivate
  • Allowed action names are activate or deactivate

Commands for getting the status of all pods in a solution

Run the following command to get the status of all pods in a solution.

	

solution get-status <solutionName> [options]
	

where the options are:

—–Name Description
—–view [viewType] By default, outputs the response in a table view mode. The CLI supports both table and JSON output format.
Example: solution get-status DemoSoln –view json

Commands for getting the license information for a particular tenant

Run the following command to get the license information for a particular tenant.

	

tenant get-license-info [options]
	

where the options are:

—–Name Description
—–view [viewType] By default, outputs the response in a table view mode. The CLI supports both table and JSON output format.
Example: tenant get-license-info

Commands for getting the total CPU and memory utilization details for a particular tenant

Run the following command to get the total CPU and memory utilization details for a particular tenant.

	

tenant get-utilization-details [options]
	

where the options are:

—–Name Description
—–view [viewType] By default, outputs the response in a table view mode. The CLI supports both table and JSON output format.
Example: tenant get-utilization-details –view json

Commands for listing all the users

Run the following command to list all the users.

	

user list [options]
	

where the options are:

—–Name Description
—–view [viewType] By default, outputs the response in a table view mode. The CLI supports both table and JSON output format. Example: user list –view json

Commands to get a particular user

Run the following command to get the user information.

	

user get <userId> [options]
	

where the options are:

—–Name Description
—–view [viewType] By default, outputs the response in a table view mode. The CLI supports both table and JSON output format.
Example:user get [ID details] –view json

Commands for promoting Integration Server and Universal Messaging configurations

Run the following command to promote Integration Server and Universal Messaging configurations.

	

runtime promote-configuration [options] <fromEnvironmentName> <fromSolutionName> <fromNodeName> <toSolutionName> <toNodeName>
	

where the options are:

—–Name Description
—–propFile [fileName] Properties file to perform variable substitution. Example: Use the following command for promotion across same instance: runtime promote-configuration DemoSoln IS development Example: Use the following command for cross solution promotion: runtime promote-configuration DemoSoln IS development DemoSoln1 IS1
Promotes the configuration from the solution DemoSoln IS node to DemoSoln1 and IS1 node.

Commands for promoting Unit Tests services from one environment to another

Run the following command to promote Unit Tests services from one environment to another.

tests-promote [options] <fromEnvironmentName> <fromSolutionName> <fromNodeName> <toSolutionName> <toNodeName> 

where the options are:

—–Name Description
—–include [comma separated test suite names] Promotes only specified test suites of the solution.
Example:—–include testsuite1,testsuite2,testsuite3
—–exclude [comma separated test suite names] Promotes all the test suite other than the specified test suite of the solution.
Example:—–exclude testsuite1,testsuite2,testsuite3

fromEnvironmentName: The environment from which the test suite has to be promoted.

fromSolutionName: The solution from which the test suite to promote resides.

fromNodeName: The Integration Server instance of the solution specified.

Commands for executing Unit Tests services

Run the following command to execute Unit Tests services from one environment to another.

tests-execute [options] <solutionName> 

SolutionName: The solution from which the test suite is to be executed.

where the options are:

—–Name Description
—–include [comma separated test suite names] Executes only specified test suites of the solution. Example:—–include testsuite1,testsuite2,testsuite3
—–exclude [comma separated test suite names] Executes all the test suite other than the specified test suite of the solution. Example:—–exclude testsuite1,testsuite2,testsuite3

Run the following command to execute Unit Tests services from one environment to another along with the runId.

tests-execute-status [options] <runId> 

Commands for promoting Integration Server packages

Run the following command to promote Integration Server packages.

runtime promote-packages [options] <fromEnvironmentName> <fromSolutionName> <fromNodeName> <toSolutionName> <toNodeName>
	

Note: If toSolutionName and toNodeName are provided then the CLI performs the cross solution promotion. If toSolutionName and toNodeName are not available, then the packages will be promoted to higher environment on the same Integration Server instance.

where the options are:

—–Name Description
—–include [comma separated packages names] Promotes only specified packages.
Example: —–include package1,package2,package3
—–exclude [comma separated packages names] Promotes all the packages other than the packages specified in the options. Example: —–exclude package1,package2,package3
—–propFile [fileName] Provide properties file to perform variable substitution. Examples: Use the following command for promotion across same instance: runtime promote-packages DemoSoln IS development-- propFile /home/etc/var_sub.properties Use the following command for cross solution promotion: runtime promote-packages DemoSoln IS development TestSoln IS2 Use the following command to replace a property in a specific composite asset. <propertyName>/<compositeAssetName> Note: The replacement properties should be in the following format: <propertyName>/<compositeAssetName>/<assetName> Example for replacing properties of a package: activatePkgOnInstall/TestODataService=false where TestODataService is the package name whose property activatePkgOnInstall is assigned with value false. Example for replacing properties of a service of a package: serverName/TestODataService/JDBC_Connection .ODataService=localhost where JDBC_Connection.ODataService is a service under package TestODataService, whose parameter serverName is assigned with value localhost.

Commands for printing the list of exposed services

Run the following command to print the list of exposed services.

	

runtime get-exposed-is-serices <solutionName> <nodeName> [options]
	

where the options are:

—–Name Description
—–view [viewType] By default, outputs the response in a table view mode. The CLI supports both table and JSON output format.
Example: runtime get-exposed-is-services DemoSoln IS —–view json

Commands for listing all the queues

Run the following command to list all the queues in the Universal Messaging instance.

	

um list-queues <solutionName> <nodeName> [options]
	

where the options are:

—–Name Description
—–view [viewType] By default, outputs the response in a table view mode. The CLI supports both table and JSON output format. Example: um list-queues DemoSoln UM —–view json

Commands for getting the queue information

Run the following command to retrieve pushed, popped, and memory usage of the queue.

	

um get-queue <solutionName> <nodeName> <queueName> [options]
	

where the options are:

—–Name Description
—–view [viewType] By default, outputs the response in a table view mode. The CLI supports both table and JSON output format. Example: um get-queue DemoSoln UM dummyQueue —–view json

Commands for getting the queue details

Run the following command to retrieve the queue details.

	

um get-queue-details <solutionName> <nodeName> <queueName> [options]
	

where the options are:

—–Name Description
—–view [viewType] By default, outputs the response in a table view mode. The CLI supports both table and JSON output format. Example: um get-queue-details DemoSoln UM dummyQueue —–view json

Commands for listing all the channels in the Universal Messaging instance

Run the following command to list all the channels in a Universal Messaging instance.

	

um list-channels <solutionName> <nodeName> [options]
	

where the options are:

—–Name Description
—–view [viewType] By default, outputs the response in a table view mode. The CLI supports both table and JSON output format. Example: um list-channels DemoSoln UM —–view json

Commands for getting the channel information

Run the following command to get the channel information.

	

um get-channel <solutionName> <nodeName> <channelName> [options]
	

where the options are:

—–Name Description
—–view [viewType] By default, outputs the response in a table view mode. The CLI supports both table and JSON output format.
Example: um get-channel DemoSoln UM dummyChannel —–view json

Commands for getting the channel details

Run the following command to get the channel details.

	

um get-channel-details <solutionName> <nodeName> <channelName> [options]
	

where the options are:

—–Name Description
—–view [viewType] By default, outputs the response in a table view mode. The CLI supports both table and JSON output format.
Example: um get-channel-details DemoSoln UM development dummyChannel

Commands for listing the durable subscribers

Run the following command to lists all durable subscribers in a Node.

um list-durablesubscribers <solutionName> <nodeName> [options]

where the options are:

—–Name Description
—–view [viewType] By default, outputs the response in a table view mode. The CLI supports both table and JSON output format.
Example: um get-channel-details DemoSoln UM dummyChannel —–view json

Commands for getting the specific durable subscriber details

Run the following command to get specific durable subscribers details.

um get-durablesubscriber-details <solutionName> <nodeName> <durableName> <channelName> [options]

where the options are:

—–Name Description
—–view [viewType] By default, outputs the response in a table view mode. The CLI supports both table and JSON output format.
Example: um get-channel-details DemoSoln UM durablename dummyChannel —–view json