New-MemoryDump
This PowerShell cmdlet allows users to generate a memory dump of a cache or the NCache Service / NCache Management Center process for diagnostic and troubleshooting purposes. When creating a dump for the NCache Service or Management Center, the corresponding Process ID must be specified to identify the target process.
New-MemoryDump executes asynchronously by default and returns immediately without waiting for dump completion; however, users can specify -WaitForCompletion to block execution until the dump is fully generated. Upon execution, the cmdlet outputs the location on the target server where the memory dump file is saved.
New-MemoryDump -Server -CacheName `
-ProcessId [-WaitForCompletion] `
[-Port] [-Credentials] `
[-TlsCertPath] [-TlsCertPassword] `
[-NoLogo]
Important
- You must specify either
CacheNameorProcessId. One of the two is required to generate the memory dump. - Please note that you need to enable the
ptraceflag for the creation of memory dumps in Linux, else you will get the error: "Permission Denied: Failed to take memory dump. This is due to restricted memory access." Set the value ofptrace_scopeto0to resolve the error. Please note that this change occurs through the combination of echo, the pipe symbol (|), and the tee command, which altogether writes the new value into the system file with the necessary permissions.
Examples
- This command initiates a dump generation for the cache defaultCache on server 20.200.20.11 using port 9802.
New-MemoryDump -Server 20.200.20.11 -CacheName defaultCache `
-Port 9803
- This command initiates dump generation on server 20.200.20.11 for Process ID 1234.
New-MemoryDump -Server 20.200.20.11 -ProcessId 1234
- This command initiates dump generation on server 20.200.20.11 for Process ID 1234 and waits for the dump generation to complete.
New-MemoryDump -Server 20.200.20.11 -ProcessId 1234 `
-WaitForCompletion
- This command creates a memory dump for defaultCache on the specified server with mutual TLS (mTLS) enabled. It runs from a machine where NCache is not installed and uses
C:\certs\client.pemto authenticate the machine running the cmdlet. The-TlsCertPasswordparameter decrypts the certificate’s password-protected private key. Omit this parameter if the private key is not encrypted.
New-MemoryDump -Server 20.200.20.11 -CacheName defaultCache `
-TlsCertPath "C:\certs\client.pem" -TlsCertPassword "clientKeyPassword"
- This command initiates dump generation on server 20.200.20.11 for the cache named defaultCache using security credentials.
New-MemoryDump -Server 20.200.20.11 -CacheName defaultCache `
-Credentials(Get-Credential john_smith)
Properties
Note
The parameters with asterisk (*) on their names are the required parameters and the rest are optional.
| Parameters | Data Types | Description | Default Value |
|---|---|---|---|
-Server* |
<String> |
Specifies a server name where the NCache Service is running and a cache with the specified cache-name is registered. | IP of local machine |
-CacheName* |
<String> |
Specifies the cache name for which the dump needs to be created on the server specified. NOTE: The cache must already exist on the source server. |
- |
-ProcessId* |
<Integer> |
Specifies the Process ID for which the dump needs to be created on the server specified. | - |
-WaitForCompletion |
<SwitchParameter> |
If specified, the cmdlet does not exit until the memory dump is captured. | False |
-NoLogo |
<SwitchParameter> |
Suppresses display of the logo banner. | False |
-Port |
<Integer> |
Specifies the server port where the NCache Service is listening. | 9803 |
-Credentials |
<pscredential> |
Specifies the user credentials required to authorize access for the specified operation. These credentials should belong to a user with the appropriate permissions at the node. | - |
-TlsCertPath |
<string> |
Path to the client PEM certificate used to authenticate the machine running the NCache PowerShell cmdlet when connecting to an NCache server with mutual TLS (mTLS) enabled. The PEM file must contain the private key, leaf certificate, and any intermediate certificates. You can generate a certificate using New-NCacheTlsCertificate. This parameter is required when running the PowerShell module from a machine where NCache is not installed and the server requires mTLS. On a machine with an NCache server installation, the node's own certificate is used automatically. Relative paths are resolved against the current PowerShell location, and the file must exist. To configure the certificate presented by the server, use -CustomCertificatePath. |
- |
-TlsCertPassword |
<string> |
Password used to load the encrypted private key in the PEM file specified by -TlsCertPath. Required only when the private key is password-protected. Not needed for an unencrypted private key. The password is used only to load the client certificate for the current command's connections. It is not saved in the NCache server configuration. |
- |