Jump to: navigation, search
Line 1: Line 1:
 
=Configuring Workspace Web Edition & Web Services=
 
=Configuring Workspace Web Edition & Web Services=
 
__TOC__
 
__TOC__
You can configure your Workspace Web Edition & Web Services nodes in three different files:  
+
To configure your Workspace Web Edition & Web Services nodes, you'll need to create three different configuration files: '''server-settings.yaml''', '''onpremise-settings.yaml''', and '''cassandra-cluster.yaml'''. You can find sample versions of these files in the main config folder you created in Step 6 of [[DeployWebApp|Deploying the Web Application]]; tp use them, just remove the '''.sample''' extension.
* <tt>server-settings.yaml</tt>
 
* <tt>onpremise-settings.yaml</tt>
 
* <tt>cassandra-cluster.yaml</tt>
 
  
The default installation package for WWE&WS includes sample versions of these files, located in the main config folder you created in Step 6 of [[DeployWebApp|Deploying the Web Application]]. Review the procedures on this pages for details about the options available in each of these files.  
+
Review the procedures on this pages for details about the options you should configure in each of these files.  
  
 
==Modifying the Server Settings==
 
==Modifying the Server Settings==
Line 13: Line 10:
  
 
<ol>
 
<ol>
<li>Open the <tt>server-settings.yaml</tt> file and review the options. This file contains a number of core parameters that are used by the server.</li>
+
<li>Open the '''server-settings.yaml''' file and review the options. This file contains a number of core parameters that are used by the server.</li>
  
 
The following is an unmodified file:
 
The following is an unmodified file:
  
<pre>
+
<source lang="text">
 
# URLs
 
# URLs
 
externalApiUrlV2: [ToBeChanged: public URL including protocol, address and port, <PUBLIC_SCHEMA_BASE_URL>]/api/v2
 
externalApiUrlV2: [ToBeChanged: public URL including protocol, address and port, <PUBLIC_SCHEMA_BASE_URL>]/api/v2
Line 167: Line 164:
 
     #password: [ToBeChangedOrRemoved: <SMTP_SERVER_PASSWORD>]
 
     #password: [ToBeChangedOrRemoved: <SMTP_SERVER_PASSWORD>]
 
     #timeout: [ToBeChangedOrRemoved: <SMTP_SERVER_TIMEOUT>]
 
     #timeout: [ToBeChangedOrRemoved: <SMTP_SERVER_TIMEOUT>]
</pre>
+
</source>
  
<li>Review the [[HTCCConfigurationOptionsReference|Web Services Configuration Options]] options to learn more about the default options included in the <tt>server-settings.yaml</tt> file, as well as the other options you can add to adjust Workspace Web Edition & Web Services for your solution. Make sure to update all the options marked <tt>[ToBeChangedOrRemoved]</tt>.
+
<li>Review the [[HTCCConfigurationOptionsReference|Web Services Configuration Options]] options to learn more about the default options included in the '''server-settings.yaml''' file, as well as the other options you can add to adjust Workspace Web Edition & Web Services for your solution. Make sure to update all the options marked <tt>[ToBeChangedOrRemoved]</tt>.
<!-- Available styles: (default)-Important, 2-Tip, 3-Warning -->
 
<!-- Important: equal signs (=) will not work in a note. Use the equivalent HTML code (&#61;) instead.-->
 
 
{{NoteFormat|In each Workspace Web Edition & Web Services cluster, one node must be configured as the {{#ppin:{{SectionTransclusion|HTCCConfigurationOptionsReference|syncNode}}|synchronization node|||500|330}} synchronization node: <tt>syncNode &#61; true</tt>. All other nodes in the cluster must have <tt>syncNode &#61; false</tt>.}}
 
{{NoteFormat|In each Workspace Web Edition & Web Services cluster, one node must be configured as the {{#ppin:{{SectionTransclusion|HTCCConfigurationOptionsReference|syncNode}}|synchronization node|||500|330}} synchronization node: <tt>syncNode &#61; true</tt>. All other nodes in the cluster must have <tt>syncNode &#61; false</tt>.}}
 
</li>
 
</li>
Line 182: Line 177:
 
'''Start''' <br/>
 
'''Start''' <br/>
 
<ol>
 
<ol>
<li>Open the <tt>onpremise-settings.yaml</tt> file and review the options. This file contains parameters that are used to connect to Configuration Server. </li>
+
<li>Open the '''onpremise-settings.yaml''' file and review the options. This file contains parameters that are used to connect to Configuration Server. </li>
  
 
The following is an unmodified file:
 
The following is an unmodified file:
  
<nowiki>cmeHost: localhost
+
<source lang="text">
 +
cmeHost: localhost
 
cmePort: 8888
 
cmePort: 8888
countryCode: US</nowiki>
+
countryCode: US
 +
</source>
  
 
The following options are valid in this file:
 
The following options are valid in this file:
*<tt>cmeHost</tt> – The Configuration Server host name (FQDN) or IP
+
*'''cmeHost''' – The Configuration Server host name (FQDN) or IP
*<tt>cmePort</tt> – The Configuration Server port  
+
*'''cmePort''' – The Configuration Server port  
*<tt>backupCmeHost</tt> – The backup Configuration Server host name (FQDN) or IP
+
*'''backupCmeHost''' – The backup Configuration Server host name (FQDN) or IP
*<tt>backupCmePort</tt> – The backup Configuration Server port
+
*'''backupCmePort''' – The backup Configuration Server port
*<tt>countryCode</tt> – The premise contact center's country code
+
*'''countryCode''' – The premise contact center's country code
 
 
<!-- Available styles: (default)-Important, 2-Tip, 3-Warning -->
 
<!-- Important: equal signs (=) will not work in a note. Use the equivalent HTML code (&#61;) instead.-->
 
{{NoteFormat|Configure the <tt>backupCmeHost</tt> and <tt>backupCmePort</tt> options if there is a backup Configuration Server in the Genesys environment and you want high-availability support.}}
 
  
 +
{{NoteFormat|Configure the '''backupCmeHost''' and '''backupCmePort''' options if there is a backup Configuration Server in the Genesys environment and you want high-availability support.}}
 
<li>Save your changes and close the file.</li>
 
<li>Save your changes and close the file.</li>
 
</ol>
 
</ol>
Line 209: Line 203:
 
'''Start'''
 
'''Start'''
 
<ol>
 
<ol>
<li>Open the <tt>cassandra-cluster.yaml</tt> file and review the options. </li>
+
<li>Open the '''cassandra-cluster.yaml''' file and review the options. </li>
  
 
The following is an unmodified file:
 
The following is an unmodified file:
  
<nowiki>thrift_port: 9160
+
<source lang="text">
 +
thrift_port: 9160
 
jmx_port: 7199
 
jmx_port: 7199
 
keyspace: sipfs
 
keyspace: sipfs
Line 227: Line 222:
  
 
cassandraVersion: [ToBeChanged: "1.1" | "1.2"]
 
cassandraVersion: [ToBeChanged: "1.1" | "1.2"]
useSSL: [ToBeChanged: supporting only for 1.2 Cassandra "false" | "true"]</nowiki>
+
useSSL: [ToBeChanged: supporting only for 1.2 Cassandra "false" | "true"]
 +
</source>
  
 
<li>Modify the settings as needed, making sure to update all the options marked <tt>[ToBeChanged]</tt>:
 
<li>Modify the settings as needed, making sure to update all the options marked <tt>[ToBeChanged]</tt>:
*<tt>thrift_port</tt> &mdash; The port for Thrift to listen for clients. It should be the same as the <tt>rpc_port</tt> you set in the '''cassandra.yaml''' file as part of the [[InstallingAndDeployingCassandra#Configuring_Cassandra|Configuring Cassandra]] procedure.
+
*'''thrift_port''' &mdash; The port for Thrift to listen for clients. It should be the same as the <tt>rpc_port</tt> you set in the '''cassandra.yaml''' file as part of the [[InstallingAndDeployingCassandra#Configuring_Cassandra|Configuring Cassandra]] procedure.
*<tt>jmx_port</tt> &mdash; The port Cassandra uses for Java Manage Extension (JMX).
+
*'''jmx_port''' &mdash; The port Cassandra uses for Java Manage Extension (JMX).
*<tt>keyspace</tt> &mdash; The name of the Cassandra keyspace. This name should be the same as the keyspace name you set while [[InitializingCassandra#Creating_the_Cassandra_Keyspace|Creating the Cassandra Keyspace]]. If you used the keyspace creation scripts that come with WWE&WS, then you can leave this value as <tt>sipfs</tt>.  
+
*'''keyspace''' &mdash; The name of the Cassandra keyspace. This name should be the same as the keyspace name you set while [[InitializingCassandra#Creating_the_Cassandra_Keyspace|Creating the Cassandra Keyspace]]. If you used the keyspace creation scripts that come with WWE&WS, then you can leave this value as <tt>sipfs</tt>.  
*<tt>nodes</tt> &mdash; A comma-separated list of Cassandra node IPs or host names.
+
*'''nodes''' &mdash; A comma-separated list of Cassandra node IPs or host names.
*<tt>backup_nodes</tt> &mdash; A comma-separated list of backup Cassandra node IPs or host names. This option is intended for deployments that have two separate Cassandra data centers &mdash; WWE&WS switches from primary to backup if the primary nodes are unavailable. If your deployment is small with only one data center, you can ignore this option.  
+
*'''backup_nodes''' &mdash; A comma-separated list of backup Cassandra node IPs or host names. This option is intended for deployments that have two separate Cassandra data centers &mdash; WWE&WS switches from primary to backup if the primary nodes are unavailable. If your deployment is small with only one data center, you can ignore this option.  
*<tt>replication_factor</tt> &mdash; A replication factor appropriate for your Cassandra topology. This value should be the same as the replication factor you set in Step 2 of the [[InitializingCassandra#Creating_the_Cassandra_Keyspace|Creating the Cassandra Keyspace]] procedure.
+
*'''replication_factor''' &mdash; A replication factor appropriate for your Cassandra topology. This value should be the same as the replication factor you set in Step 2 of the [[InitializingCassandra#Creating_the_Cassandra_Keyspace|Creating the Cassandra Keyspace]] procedure.
*<tt>read_consistency_level</tt> &mdash; Set this value according to your Cassandra topology:
+
*'''read_consistency_level''' &mdash; Set this value according to your Cassandra topology:
<!-- Sample table formatting available at: http://172.21.81.85/Table_Examples -->
 
 
{|  
 
{|  
 
! '''Development'''<br/>(1 Cassandra node)
 
! '''Development'''<br/>(1 Cassandra node)
Line 247: Line 242:
 
| CL_LOCAL_QUORUM
 
| CL_LOCAL_QUORUM
 
|}
 
|}
*<tt>write_consistency_level</tt> &mdash; Set this value according to your Cassandra topology:
+
*'''write_consistency_level''' &mdash; Set this value according to your Cassandra topology:
<!-- Sample table formatting available at: http://172.21.81.85/Table_Examples -->
 
 
{|  
 
{|  
 
! '''Development'''<br/>(1 Cassandra node)
 
! '''Development'''<br/>(1 Cassandra node)
Line 258: Line 252:
 
| CL_LOCAL_QUORUM
 
| CL_LOCAL_QUORUM
 
|}
 
|}
*<tt>cassandraVersion</tt> &mdash; Possible values are 1.1 (for 1.1.x versions) and 1.2 (for 1.2.x versions).
+
*'''cassandraVersion''' &mdash; Possible values are 1.1 (for 1.1.x versions) and 1.2 (for 1.2.x versions).
*<tt>useSSL</tt> &mdash; Set to <tt>true</tt> to enable Cassandra to use SSL. This option is only valid for Cassandra 1.2.x.
+
*'''useSSL''' &mdash; Set to <tt>true</tt> to enable Cassandra to use SSL. This option is only valid for Cassandra 1.2.x.
  
 
The following options tune the Cassandra database access. The default values were used by Genesys during internal load tests.
 
The following options tune the Cassandra database access. The default values were used by Genesys during internal load tests.
*<tt>max_conns_per_host</tt> &mdash; Maximum number of connections to allocate for a single host's pool.
+
*'''max_conns_per_host''' &mdash; Maximum number of connections to allocate for a single host's pool.
*<tt>max_cons</tt> &mdash; Maximum number of connections in the pool.
+
*'''max_cons''' &mdash; Maximum number of connections in the pool.
*<tt>max_pending_conns_per_host</tt> &mdash; Maximum number of pending connect attempts per host.
+
*'''max_pending_conns_per_host''' &mdash; Maximum number of pending connect attempts per host.
*<tt>max_blocked_threads_per_host</tt> &mdash; Maximum number of blocked clients for a host.
+
*'''max_blocked_threads_per_host''' &mdash; Maximum number of blocked clients for a host.
  
 
</li>
 
</li>
Line 279: Line 273:
 
<ol>
 
<ol>
 
<li>To optimize TCP/IP performance, you can run the following commands:</li>
 
<li>To optimize TCP/IP performance, you can run the following commands:</li>
<nowiki>sudo sysctl -w net.core.rmem_max=16777216  
+
<source lang="text">
 +
sudo sysctl -w net.core.rmem_max=16777216  
 
sudo sysctl -w net.core.wmem_max=16777216  
 
sudo sysctl -w net.core.wmem_max=16777216  
 
sudo sysctl -w net.ipv4.tcp_rmem="4096 87380 16777216"  
 
sudo sysctl -w net.ipv4.tcp_rmem="4096 87380 16777216"  
Line 287: Line 282:
 
sudo sysctl -w net.ipv4.tcp_max_syn_backlog=8192  
 
sudo sysctl -w net.ipv4.tcp_max_syn_backlog=8192  
 
sudo sysctl -w net.ipv4.tcp_syncookies=1  
 
sudo sysctl -w net.ipv4.tcp_syncookies=1  
sudo sysctl -w net.ipv4.tcp_congestion_control=cubic</nowiki>
+
sudo sysctl -w net.ipv4.tcp_congestion_control=cubic
<li>Increase the file descriptors by adding the following to the <tt>/etc/security/limits.conf</tt> file:</li>
+
</source>
<nowiki><user_name> hard nofile 100000
+
<li>Increase the file descriptors by adding the following to the '''/etc/security/limits.conf''' file:</li>
<user_name> soft nofile 100000</nowiki>
+
<source lang="text">
 +
<user_name> hard nofile 100000
 +
<user_name> soft nofile 100000
 +
</source>
 
*<tt><user_name></tt> &mdash; The name of the user or group that is starting Jetty.
 
*<tt><user_name></tt> &mdash; The name of the user or group that is starting Jetty.
 
</ol>
 
</ol>

Revision as of 12:51, April 1, 2015

Configuring Workspace Web Edition & Web Services

To configure your Workspace Web Edition & Web Services nodes, you'll need to create three different configuration files: server-settings.yaml, onpremise-settings.yaml, and cassandra-cluster.yaml. You can find sample versions of these files in the main config folder you created in Step 6 of Deploying the Web Application; tp use them, just remove the .sample extension.

Review the procedures on this pages for details about the options you should configure in each of these files.

Modifying the Server Settings

Complete the steps below on each Workspace Web Edition & Web Services node.

Start

  1. Open the server-settings.yaml file and review the options. This file contains a number of core parameters that are used by the server.
  2. The following is an unmodified file:

    # URLs
    externalApiUrlV2: [ToBeChanged: public URL including protocol, address and port, <PUBLIC_SCHEMA_BASE_URL>]/api/v2
    internalApiUrlV2: [ToBeChanged: internal URL including protocol, address and port, <INTERNAL_SCHEMA_BASE_URL>]/internal-api
    undocumentedExternalApiUrl: [ToBeChanged: public URL including protocol, address and port, <PUBLIC_SCHEMA_BASE_URL>]/internal-api
    
    # General
    iwsDispositionCodeSync: [ToBeChanged: "true"|"false"]
    temporaryAuthenticationTokenTTL: [ToBeChanged: "true"|"false"]
    enableCsrfProtection: [ToBeChanged: "true"|"false"]
    salesforceAuthenticationMode: [ToBeChanged: "true"|"false"]
    
    # Timeouts
    activationTimeout: 12000
    configServerActivationTimeout: 35000
    configServerConnectionTimeout: 15000
    connectionTimeout: 4000
    contactCenterSynchronizationTimeout: 60000
    #inactiveUserTimeout: [ToBeChangedOrRemoved: <INACTIVE_USER_TIMEOUT>]
    logoutAgentWhenNoActiveCometSessionTimeout: [ToBeChanged: "true"|"false"]
    reconnectAttempts: 1
    reconnectTimeout: 10000
    
    # OPS account
    opsUserName: [ToBeChanged: <OPS_USER_NAME>]
    opsUserPassword: [ToBeChanged: <OPS_USER_PASSWORD>]
    
    # CME credentials
    applicationName: Cloud
    applicationType: CFGGenericClient
    cmeUserName: [ToBeChanged: <CONFIG_SERVER_USER_NAME>]
    cmePassword: [ToBeChanged: <CONFIG_SERVER_USER_PASSWORD>]
    syncNode: [ToBeChanged: "true"|"false"]
    synchronizationCmeEventsPrefilterEnabled: [ToBeChanged: "true"|"false"]
    enableVirtualQueueSynchronization: [ToBeChanged: "true"|"false"]
    
    # Statistics
    #statConnectionTimeout: [ToBeChangedOrRemoved: <STAT_CONNECTION_TIMEOUT>]
    #statReconnectAttempts: [ToBeChangedOrRemoved: <STAT_RECONNECT_ATTEMPTS>]
    #statReconnectTimeout: [ToBeChangedOrRemoved: <STAT_RECONNECT_TIMEOUT>]
    #statOpenTimeout: [ToBeChangedOrRemoved: <STAT_OPEN_TIMEOUT>]
    #statisticsWritesCL: [ToBeChangedOrRemoved: <STATISTICS_WRITE_SCL>]
    #reportingSyncInterval: [ToBeChangedOrRemoved: <REPORTING_SYNC_INTERVAL>]
    enableElasticSearchIndexing: [ToBeChanged: "true"|"false"]
    #statisticsOpenRetryInterval: [ToBeChangedOrRemoved: <STATISTICS_OPEN_RETRY_INTERVAL>]
    
    # Call Recording
    createCallRecordingCF: [ToBeChanged: "true"|"false"]
    #crClusterName: [ToBeChangedOrRemoved: <CR_CLUSTER_NAME>]
    #crRegion: [ToBeChangedOrRemoved: <CR_REGION>]
    #awsS3AccessKey: [ToBeChangedOrRemoved: <AWS_S3_ACCESS_KEY>]
    #awsS3SecretKey: [ToBeChangedOrRemoved: <AWS_S3_SECRET_KEY>]
    #awsS3BucketName: [ToBeChangedOrRemoved: <AWS_S3_BUCKET_NAME>]
    #awsS3SocketTimeout: [ToBeChangedOrRemoved: <AWS_S3_SOCKET_TIMEOUT>]
    #awsS3MaxErrorRetry: [ToBeChangedOrRemoved: <AWS_S3_MAX_ERROR_RETRY>]
    #awsS3MaxConnection: [ToBeChangedOrRemoved: <AWS_S3_MAX_CONNECTION>]
    #awsS3ConnectionTimeout: [ToBeChangedOrRemoved: <AWS_S3_CONNECTION_TIMEOUT>]
    #cryptoSecurityKey: [ToBeChangedOrRemoved: <CRYPTO_SECURITY_KEY>]
    #webDAVMaxConnection: [ToBeChangedOrRemoved: <WEBDAV_MAX_CONNECTION>]
    #webDAVMaxTotalConnection: [ToBeChangedOrRemoved: <WEBDAV_MAX_TOTAL_CONNECTION>]
    
    # CDR
    #voiceMonitorNodeId: [ToBeChangedOrRemoved: <VOICE_MONITOR_NODE_ID>]
    
    # Multi regional supporting
    nodePath: [ToBeChanged: node position in cluster, example: /<REGION>/HOST
    #nodeId: [ToBeChangedOrRemoved: unique value in cluster <NODE_ID>]
    
    # SSL and CA
    #caCertificate: [ToBeChangedOrRemoved: <CA_CERTIFICATE>]
    #jksPassword: [ToBeChangedOrRemoved: <JKS_PASSWORD>]
    
    # SAML
    #samlSettings:
      #encryptionKeyName: [ToBeChangedOrRemoved: <SAML_ENCRYPTION_KEY_NAME>]
      #signingKeyName: [ToBeChangedOrRemoved: <SAML_SIGNING_KEY_NAME>]
      #identityProviderMetadata: [ToBeChangedOrRemoved: <SAML_IDENTITY_PROVIDER_METADATA>]
      #serviceProviderEntityId: [ToBeChangedOrRemoved: <SAML_SERVICE_PROVIDER_ENTITY_ID>]
      #encryptionKeyPassword: [ToBeChangedOrRemoved: <SAML_ENCRYPTION_KEY_PASSWORD>]
      #signingKeyPassword: [ToBeChangedOrRemoved: <SAML_SIGNING_KEY_PASSWORD>]
      #tlsKeyName: [ToBeChangedOrRemoved: <SAML_TLS_KEY_NAME>]
      #tlsKeyPassword: [ToBeChangedOrRemoved: <SAML_TLS_KEY_PASSWORD>]
      #responseSkewTime: [ToBeChangedOrRemoved: <SAML_RESPONSE_SWEW_TIME>]
    
    # CORS
    #crossOriginSettings:
      #allowedOrigins: [ToBeChangedOrRemoved: <CROSS_ALLOWED_ORIGINS>]
      #allowedMethods: [ToBeChangedOrRemoved: <CROSS_ALLOWED_METHODS>]
      #allowedHeaders: [ToBeChangedOrRemoved: <CROSS_ALLOWED_HEADERS>]
      #exposedHeaders: [ToBeChangedOrRemoved: <CROSS_EXPOSED_HEADERS>]
      #allowCredentials: [ToBeChangedOrRemoved: <CROSS_ALLOW_CREDENTIALS>]
      #corsFilterCacheTimeToLive: [ToBeChangedOrRemoved: <CROSS_ORIGIN_CORS_FILTER_CACHE_TIME_TO_LIVE>]
    
    # Elastic Search
    #elasticSearchSettings:
      #clientNode: [ToBeChangedOrRemoved: "true"|"false"]
      #indexPerContactCenter: [ToBeChangedOrRemoved: "true"|"false"]
      #enableScheduledIndexVerification: [ToBeChangedOrRemoved: "true"|"false"]
      #indexVerificationInterval: [ToBeChangedOrRemoved: <ELASTIC_SEARCH_INDEX_VERIFICATION_INTERVAL>]
      #retriesOnConflict: [ToBeChangedOrRemoved: <ELASTIC_SEARCH_RETRIES_ON_CONFICT>]
      #waitToIndexTimeout: [ToBeChangedOrRemoved: <ELASTIC_SEARCH_WAIT_TO_INDEX_TIMEOUT>]
    
    # Screen Recording
    #screenRecordingSettings:
      #screenRecordingEServicesEnabled: [ToBeChangedOrRemoved: "true"|"false"]
      #screenRecordingVoiceEnabled: [ToBeChangedOrRemoved: "true"|"false"]
      #clientSessionManagerCacheTTL: [ToBeChangedOrRemoved: <SCREEN_RECORDING_CLIENT_SESSION_MANAGER_CACHE_TTL>]
      #recordingInteractionEventsTTL: [ToBeChangedOrRemoved: <SCREEN_RECORDING_RECORDING_INTERACTION_EVENTS_TTL>]
      #contactCenterInfoManagerCacheTTL: [ToBeChangedOrRemoved: <SCREEN_RECORDING_CONTACT_CENTER_INFO_MANAGER_CACHE_TTL>]
    
    # Caching Settings
    #cachingSettings:
      #enableSystemWideCaching: [ToBeChangedOrRemoved: "true"|"false"]
      #agentStatesTTL: [ToBeChangedOrRemoved: <CACHING_AGENT_STATES_TTL>]
      #contactCenterFeaturesTTL: [ToBeChangedOrRemoved: <CACHING_CONTACT_CENTER_FEATURES_TTL>]
      #contactCenterSettingsTTL: [ToBeChangedOrRemoved: <CACHING_CONTACT_CENTER_SETTINGS_TTL>]
      #voiceContextCaching: [ToBeChangedOrRemoved: "true"|"false"]
      #voiceContextRefreshInterval: [ToBeChangedOrRemoved: <CACHING_VOICE_CONTEXT_REFRESH_INTERVAL>]
    
    # DoS Filter Settings
    enableDosFilter: [ToBeChanged: "true"|"false"]
    #dosFilterSettings:
      #maxRequestsPerSec: [ToBeChangedOrRemoved: <DOS_FILTER_MAX_REQUESTS_PER_SEC>]
      #delayMs: [ToBeChangedOrRemoved: <DOS_FILTER_DELAY_MS>]
      #maxWaitMs: [ToBeChangedOrRemoved: <DOS_FILTER_MAX_WAIT_MS>]
      #throttledRequests: [ToBeChangedOrRemoved: <DOS_FILTER_THROTTLED_REQUESTS>]
      #throttleMs: [ToBeChangedOrRemoved: <DOS_FILTER_THROTTLE_MS>]
      #maxRequestMs: [ToBeChangedOrRemoved: <DOS_FILTER_MAX_REQUEST_MS>]
      #maxIdleTrackerMs: [ToBeChangedOrRemoved: <DOS_FILTER_MAX_IDLE_TRACKER_MS>]
      #insertHeaders: [ToBeChangedOrRemoved: <DOS_FILTER_INSERT_HEADERS>]
      #trackSessions: [ToBeChangedOrRemoved: <DOS_FILTER_TTACK_SESSIONS>]
      #remotePort: [ToBeChangedOrRemoved: <DOS_FILTER_REMOTE_PORT>]
      #ipWhitelist: [ToBeChangedOrRemoved: <DOS_FILTER_IP_WHITE_LIST>]
    
    # Account Management
    #accountManagement:
      #forgotPasswordEmailTemplate:
        #from: [ToBeChangedOrRemoved: <PASSWORD_MESSAGE_FROM>]
        #subject: [ToBeChangedOrRemoved: <PASSWORD_MESSAGE_SUBJECT>]
        #body: [ToBeChangedOrRemoved: <PASSWORD_MESSAGE_BODY>]
      #accountCreatedEmailTemplate:
        #from: [ToBeChangedOrRemoved: <ACCOUNT_MESSAGE_FROM>]
        #subject: [ToBeChangedOrRemoved: <ACCOUNT_MESSAGE_SUBJECT>]
        #body: [ToBeChangedOrRemoved: <ACCOUNT_MESSAGE_BODY>]
      #smtpServer:
        #host: [ToBeChangedOrRemoved: <SMTP_SERVER_HOST>]
        #port: [ToBeChangedOrRemoved: <SMTP_SERVER_PORT>]
        #userName: [ToBeChangedOrRemoved: <SMTP_SERVER_USER_NAME>]
        #password: [ToBeChangedOrRemoved: <SMTP_SERVER_PASSWORD>]
        #timeout: [ToBeChangedOrRemoved: <SMTP_SERVER_TIMEOUT>]
  3. Review the Web Services Configuration Options options to learn more about the default options included in the server-settings.yaml file, as well as the other options you can add to adjust Workspace Web Edition & Web Services for your solution. Make sure to update all the options marked [ToBeChangedOrRemoved].
    Important
    In each Workspace Web Edition & Web Services cluster, one node must be configured as the synchronization node synchronization node: syncNode = true. All other nodes in the cluster must have syncNode = false.
  4. Save your changes and close the file.

End

Modifying the Premise Settings

Complete the steps below on each Workspace Web Edition & Web Services node.

Start

  1. Open the onpremise-settings.yaml file and review the options. This file contains parameters that are used to connect to Configuration Server.
  2. The following is an unmodified file:

    cmeHost: localhost
    cmePort: 8888
    countryCode: US

    The following options are valid in this file:

  • cmeHost – The Configuration Server host name (FQDN) or IP
  • cmePort – The Configuration Server port
  • backupCmeHost – The backup Configuration Server host name (FQDN) or IP
  • backupCmePort – The backup Configuration Server port
  • countryCode – The premise contact center's country code
Important
Configure the backupCmeHost and backupCmePort options if there is a backup Configuration Server in the Genesys environment and you want high-availability support.
  • Save your changes and close the file.
  • End

    Modifying the Cassandra Cluster Settings

    Complete the steps below on each Workspace Web Edition & Web Services node.

    Start

    1. Open the cassandra-cluster.yaml file and review the options.
    2. The following is an unmodified file:

      thrift_port: 9160
      jmx_port: 7199
      keyspace: sipfs
      nodes: [ToBeChanged: <CASSANDRA_PRIMARY_DC_NODES>]
      backup_nodes: [ToBeChanged: <CASSANDRA_BACKUP_DC_NODES>]
      replication_factor: [ToBeChanged: <REPLICATION_FACTOR>]
      write_consistency_level: [ToBeChanged: "CL_LOCAL_QUORUM" for multi-datacenters env, "CL_QUORUM" for single-DC env.]
      read_consistency_level: [ToBeChanged: "CL_LOCAL_QUORUM" for multi-datacenters env, "CL_QUORUM" for single-DC env.]
      max_conns_per_host: 16
      max_cons: 48
      max_pending_conns_per_host: 80
      max_blocked_threads_per_host: 160
      
      cassandraVersion: [ToBeChanged: "1.1" | "1.2"]
      useSSL: [ToBeChanged: supporting only for 1.2 Cassandra "false" | "true"]
    3. Modify the settings as needed, making sure to update all the options marked [ToBeChanged]:
      • thrift_port — The port for Thrift to listen for clients. It should be the same as the rpc_port you set in the cassandra.yaml file as part of the Configuring Cassandra procedure.
      • jmx_port — The port Cassandra uses for Java Manage Extension (JMX).
      • keyspace — The name of the Cassandra keyspace. This name should be the same as the keyspace name you set while Creating the Cassandra Keyspace. If you used the keyspace creation scripts that come with WWE&WS, then you can leave this value as sipfs.
      • nodes — A comma-separated list of Cassandra node IPs or host names.
      • backup_nodes — A comma-separated list of backup Cassandra node IPs or host names. This option is intended for deployments that have two separate Cassandra data centers — WWE&WS switches from primary to backup if the primary nodes are unavailable. If your deployment is small with only one data center, you can ignore this option.
      • replication_factor — A replication factor appropriate for your Cassandra topology. This value should be the same as the replication factor you set in Step 2 of the Creating the Cassandra Keyspace procedure.
      • read_consistency_level — Set this value according to your Cassandra topology:
      Development
      (1 Cassandra node)
      Single Datacenter
      (1 datacenter with a minimum of three Cassandra nodes)
      Two Datacenters
      (datacenters with a minimum of three Cassandra nodes in each datacenter)
      CL_ONE CL_QUORUM CL_LOCAL_QUORUM
      • write_consistency_level — Set this value according to your Cassandra topology:
      Development
      (1 Cassandra node)
      Single Datacenter
      (1 datacenter with a minimum of three Cassandra nodes)
      Two Datacenters
      (datacenters with a minimum of three Cassandra nodes in each datacenter)
      CL_ONE CL_QUORUM CL_LOCAL_QUORUM
      • cassandraVersion — Possible values are 1.1 (for 1.1.x versions) and 1.2 (for 1.2.x versions).
      • useSSL — Set to true to enable Cassandra to use SSL. This option is only valid for Cassandra 1.2.x.

      The following options tune the Cassandra database access. The default values were used by Genesys during internal load tests.

      • max_conns_per_host — Maximum number of connections to allocate for a single host's pool.
      • max_cons — Maximum number of connections in the pool.
      • max_pending_conns_per_host — Maximum number of pending connect attempts per host.
      • max_blocked_threads_per_host — Maximum number of blocked clients for a host.
    4. Save your changes and close the file.

    End

    Tuning the Workspace Web Edition & Web Services Host Performance

    Complete the steps below on each Workspace Web Edition & Web Services node to tune the performance of the host environment.

    Start

    1. To optimize TCP/IP performance, you can run the following commands:
    2. sudo sysctl -w net.core.rmem_max=16777216 
      sudo sysctl -w net.core.wmem_max=16777216 
      sudo sysctl -w net.ipv4.tcp_rmem="4096 87380 16777216" 
      sudo sysctl -w net.ipv4.tcp_wmem="4096 16384 16777216" 
      sudo sysctl -w net.core.somaxconn=4096 
      sudo sysctl -w net.core.netdev_max_backlog=16384
      sudo sysctl -w net.ipv4.tcp_max_syn_backlog=8192 
      sudo sysctl -w net.ipv4.tcp_syncookies=1 
      sudo sysctl -w net.ipv4.tcp_congestion_control=cubic
    3. Increase the file descriptors by adding the following to the /etc/security/limits.conf file:
    4. <user_name>		hard nofile	100000
      <user_name>		soft nofile	100000
    • <user_name> — The name of the user or group that is starting Jetty.

    End

    Next Steps

    Comments or questions about this documentation? Contact us for support!