This topic explains the advanced configuration settings when creating a service instance of VMware Tanzu GemFire for Tanzu Application Service.

Warning: Advanced Service Instance Configuration is an advanced feature, and using it can have a significant impact on the stability of the VMware Tanzu GemFire cluster and the underlying JVM.

The advanced configuration feature allows you to configure custom JVM options, Tanzu GemFire properties, Credentials, and Resource Manager properties. Most parameters can be changed, but a small number cannot be changed due to their impact on the VMware Tanzu Application Service for VMs platform.


Settings to Avoid Modifying with the Advanced Configuration Feature

Do not use the advance configuration feature to modify the following security properties:

  • security-gateway-password
  • security-gateway-username
  • security-json
  • security-password
  • security-username
  • ssl-enabled-components
  • ssl-endpoint-identification-enabled
  • ssl-keystore
  • ssl-keystore-password
  • ssl-require-authentication
  • ssl-truststore
  • ssl-truststore-password
  • ssl-web-require-authentication

If you use advanced configuration to set or modify some of these security properties, your changes will conflict with default settings and lead to unintended consequences. For example, when SSL endpoint verification is enabled, the configuration for protocols and ciphers reverts to the SSLContext’s client mode defaults. If advanced configuration was used to modify the security properties, increased difficulty when upgrading the JDK can occur when the newer JDK uses different defaults for client and server mode SSL. Additionally, modifying the security properties can lead to duplicate properties being set.


The following JVM options are unavailable for customization:

-Xms
-Xmx
-Xloggc
-XX:NumberOfGCLogFiles
-XX:GCLogFileSize
-XX:OnOutOfMemoryError
-XX:+DisableExplicitGC

The following Tanzu GemFire property is unavailable for customization:

-Dgemfire.OSProcess.ENABLE_OUTPUT_REDIRECTION

Furthermore, if one of the following properties below is set, then GemFire for Tanzu Application Service will not set default values for any of the other properties listed below. This mean that you are responsible for determining and setting all of the values.

-XX:NewSize
-XX:MaxNewSize
-XX:CMSInitiatingOccupancyFraction
-XX:+UnlockDiagnosticVMOptions
-XX:ParGCCardsPerStrideChunk=32768
-XX:+UseConcMarkSweepGC
-XX:+UseCMSInitiatingOccupancyOnly
-XX:+CMSClassUnloadingEnabled

Setting Advanced Configurations

You can set an advanced configuration when creating a service instance, such as the following:

cf create-service p-cloudcache dev-plan qa_instance -c
'{
  "advanced_configuration":{
    "server":{

      "jvm_options":["-XX:+UnlockDiagnosticVMOptions",
        "-XX:ParGCCardsPerStrideChunk=1274"],

      "gemfire_properties":{"enable-cluster-configuration":"true"},

      "credentials": {
        "db_user_credhub_key": "credhub/ref/myuser",
        "db_password_credhub_key": "credhub/ref/mypassword"
      },

      "resource_manager": {
        "critical_heap_percentage": 80,
        "eviction_heap_percentage": 60
      }
    },

    "locator":{

      "jvm_options":["-XX:+UseNUMA"],
      "gemfire_properties":{"groups":"QA_DB_1"},
      "credentials": {
        "db_user_credhub_key": "credhub/ref/myuser",
        "db_password_credhub_key": "credhub/ref/mypassword"
      },

      "resource_manager": {
        "critical_heap_percentage": 80,
        "eviction_heap_percentage": 60,
      }
    }
  }
}'

The advanced configuration feature allows you to set options for the servers and the locators. Within each server and locator, you can set jvm_options, gemfire_properties, credentials, and resource managers.

Updating a Service Instance with Advanced Configuration

To update a service instance with advanced configurations, run the cf update-service command with the configuration to apply to the service instance.

This new configuration overwrite all previous advanced configurations that have been set on the service instance. Any configuration option not set in the advanced configuration update to the service instance revert back to the default value.

cf update-service qa_instance -c
'{
  "advanced_configuration":{
    "server":{
      "jvm_options":["-XX:+UnlockDiagnosticVMOptions",
      "-XX:ParGCCardsPerStrideChunk=1274"],
      "gemfire_properties":{"enable-cluster-configuration":"true"},
      "credentials": {
        "db_user_credhub_key": "credhub/ref/myuser",
        "db_password_credhub_key": "credhub/ref/mypassword"
       },
       "resource_manager": {
         "critical_heap_percentage": 80,
         "eviction_heap_percentage": 60
       }

    },
    "locator":{
      "jvm_options":["-XX:+UseNUMA"],
      "gemfire_properties":{"groups":"QA_DB_1"},
      "credentials": {
        "db_user_credhub_key": "credhub/ref/myuser",
        "db_password_credhub_key": "credhub/ref/mypassword"
      },
      "resource_manager": {
        "critical_heap_percentage": 80,
        "eviction_heap_percentage": 60
      }
    }
  }
}'

Retrieve Current Advanced Configuration

To retrieve the advanced configuration of a service instance, obtain the deployment name of the service instance with the following command:

cf service --guid <service-name>

Then execute the following command to retrieve service instance’s manifest file:

bosh -d service-instance_<deployment-name> manifest > manifest.yml

In the manifest.yml file, search for advanced_configuration, The following example on how it is displayed:

advanced_configuration:
  server:
    gemfire_properties: {}
    jvm_options:
    - -XX:+PrintGC
    - -XX:+PrintGCCause
    - -XX:+PrintGCDetails
    resource_manager:
      critical_heap_percentage: null
      eviction_heap_percentage: null
      credentials: {}
    locator:
      gemfire_properties: {}
      jvm_options:
      - -XX:+PrintGC
      - -XX:+PrintGCCause
      - -XX:+PrintGCDetails
      credentials: {}

Reset Advanced Configuration to Default Values

To reset all advanced settings to their default values, run the cf update-service command and set advanced_configuration to empty brackets (){}).

cf update-service qa_instance -c
'{
  "advanced_configuration":{}
}'
check-circle-line exclamation-circle-line close-line
Scroll to top icon