Cisco Unified Contact Center Express and Cisco Unified IP IVR - Best Practices



Similar documents
Deploying Cisco Unified Contact Center Express - Digital

Description: Objective: Upon completing this course, the learner will be able to meet these overall objectives:

Disaster Recovery System Administration Guide for Cisco Unified Contact Center Express Release 8.0(2)

Disaster Recovery System Administration Guide for Cisco Unified Contact Center Express Release 8.5(1)

Disaster Recovery System Administration Guide for Cisco Unified Contact Center Express Release 8.5(1)

Deploying Cisco Unified Contact Center Express 5.0 (UCCX)

Deploying Cisco Unified Contact Center Express Volume 1

Cloud Based Application Architectures using Smart Computing

VirtualCenter Database Maintenance VirtualCenter 2.0.x and Microsoft SQL Server

DMS Performance Tuning Guide for SQL Server

Applications Manager Best Practices document

Disaster Recovery System Administration Guide for Cisco Unified Communications Manager Release 8.5(1)

Database Administration

WhatsUp Gold v11 Features Overview

Cisco Unified Contact Center Express Data Migration Tool User Guide, Release 1.0

Tips and Best Practices for Managing a Private Cloud

Oracle Hyperion Financial Management Virtualization Whitepaper

Who is my SAP HANA DBA? What can I expect from her/him? HANA DBA Role & Responsibility. Rajesh Gupta, Deloitte. Consulting September 24, 2015

An Oracle White Paper November Oracle Real Application Clusters One Node: The Always On Single-Instance Database

Troubleshooting. System History Log. System History Log Overview CHAPTER

Enterprise Deployment: Laserfiche 8 in a Virtual Environment. White Paper

Running VirtualCenter in a Virtual Machine

Configure Unified CVP Logging and Event Notifications

Monitoring and Diagnosing Production Applications Using Oracle Application Diagnostics for Java. An Oracle White Paper December 2007

Load Testing and Monitoring Web Applications in a Windows Environment

3M Command Center. Installation and Upgrade Guide

Solution Brief Availability and Recovery Options: Microsoft Exchange Solutions on VMware

vsphere Upgrade vsphere 6.0 EN

Oracle Primavera P6 Enterprise Project Portfolio Management Performance and Sizing Guide. An Oracle White Paper October 2010

Performance Testing of Java Enterprise Systems

Contact Center 5.1. Software Release Notes. GA Build

Disaster Recovery System Administration Guide for Cisco Unity Connection Release 10.x

Planning the Migration of Enterprise Applications to the Cloud

WEBLOGIC ADMINISTRATION

Webrecs IT infrastructure. The Webrecs IT backend explained and how we store, backup, protect and deliver your documents to you

Instant Recovery for VMware

Effective Java Programming. measurement as the basis

Cisco Unified Contact Center Express Reporting

Monitoring Microsoft Exchange to Improve Performance and Availability

Monitoring applications in multitier environment. Uroš Majcen A New View on Application Management.

ORACLE DATABASE 10G ENTERPRISE EDITION

IM and Presence Disaster Recovery System

Managing the Real Cost of On-Demand Enterprise Cloud Services with Chargeback Models

pc resource monitoring and performance advisor

An Oracle White Paper July Oracle Primavera Contract Management, Business Intelligence Publisher Edition-Sizing Guide

DATASHEET. Proactive Management and Quick Recovery for Exchange Storage

Rev 7 06-OCT Site Manager Installation Guide

Alarms. Understanding Alarms CHAPTER

PLUMgrid Toolbox: Tools to Install, Operate and Monitor Your Virtual Network Infrastructure

Dell High Availability Solutions Guide for Microsoft Hyper-V

BEST PRACTICES FOR MANAGING SIEBEL APPLICATION PERFORMANCE

An Oracle White Paper September Advanced Java Diagnostics and Monitoring Without Performance Overhead

Business Process Desktop: Acronis backup & Recovery 11.5 Deployment Guide

5 Reasons Your Business Needs Network Monitoring

HADOOP PERFORMANCE TUNING

Port Utilization Guide for Cisco Unified Contact Center Express, Release 8.5(1)

A technical guide for monitoring Adobe LiveCycle ES deployments

Product Datasheet Callback Server

Veritas InfoScale Availability

Understanding Server Configuration Parameters and Their Effect on Server Statistics

Cloud Backup and Recovery

Performance White Paper

How To Install An Aneka Cloud On A Windows 7 Computer (For Free)

NetIQ AppManager for Cisco Interactive Voice Response. Management Guide

DB Audit Expert 3.1. Performance Auditing Add-on Version 1.1 for Microsoft SQL Server 2000 & 2005

Transitioning from a Physical to Virtual Production Environment. Ryan Miller Middle Tennessee Electric Membership Corp

PATROL From a Database Administrator s Perspective

VirtualCenter Database Performance for Microsoft SQL Server 2005 VirtualCenter 2.5

Applying Operational Profiles to Demonstrate Production Readiness Of an Oracle to SQL Server Database Port using Web Services.

How to overcome SQL Server maintenance challenges White Paper

Monitoring Applications and Services with Network Monitoring

Database as a Service (DaaS) Version 1.02

SERVICE SCHEDULE PULSANT ENTERPRISE CLOUD SERVICES

CHAPTER 3 PROBLEM STATEMENT AND RESEARCH METHODOLOGY

Cisco Unified CM Disaster Recovery System

An Oracle White Paper May Oracle Database Cloud Service

High Availability Server Clustering Solutions

Noelle A. Stimely Senior Performance Test Engineer. University of California, San Francisco

Instrumentation Software Profiling

Parallels Containers for Windows 6.0

Database FAQs - SQL Server

Veritas Cluster Server from Symantec

McAfee Enterprise Mobility Management Performance and Scalability Guide

Cisco Unified MobilityManager Version 1.2

shortcut Tap into learning NOW! Visit for a complete list of Short Cuts. Your Short Cut to Knowledge

LinuxWorld Conference & Expo Server Farms and XML Web Services

Information Technology Services

Web Server (Step 1) Processes request and sends query to SQL server via ADO/OLEDB. Web Server (Step 2) Creates HTML page dynamically from record set

Symantec Endpoint Protection Shared Insight Cache User Guide

Tuning WebSphere Application Server ND 7.0. Royal Cyber Inc.

MS SQL Server 2014 New Features and Database Administration

CA Unified Infrastructure Management

Microsoft SharePoint 2010 on VMware Availability and Recovery Options. Microsoft SharePoint 2010 on VMware Availability and Recovery Options

v7.1 Technical Specification

StreamServe Persuasion SP5 Microsoft SQL Server

Copyright 1

SQL Server Training Course Content

Transcription:

Cisco Unified Contact Center Express and Cisco Unified IP IVR - Best Practices Cisco Unified Contact Center Express product is a fairly open product which is programmed by the customer or partner to run various types of scripts and upload documents, prompts and grammars, and even deploy their own custom code. All this flexibility can lead to memory and CPU issues if not used carefully. Below are some optimizations and best practices that will enhance the UCCX experience. Memory Best Practices CPU Optimizations Others Americas Headquarters: Cisco Systems, Inc., 170 West Tasman Drive, San Jose, CA 95134-1706 USA

Memory Best Practices Memory Best Practices Custom Code Large Scripts Customer/Partners are allowed to create and deploy their own code which can be invoked from the scripts directly. This code shares the same memory as the UCCX system main engine and has the same privileges as the main engine. While this gives tremendous amount of capability to the customer to define the behavior of the system and what logic it can execute while handling its contacts, it also means that any faulty or malicious code can bring down the system. Problems that could arise due to custom code include memory leak, access violations, and other CPU and timing issues. While these are normal for any program, care must be taken to test the custom code outside the UCCX system and also in UCCX context before deploying it into production. It is also encouraged to use possible Java techniques to test the code outside the UCCX environment. These include JTest unit testing, memory profiling and any other suitable forms of stress test. Attention should also be provided to handling of error situations and exceptions. Care should be taken while deploying very large scripts into the UCCX system. Since large scripts take up the limited memory of the UCCX Engine which is actually shared with all the logic for call processing. This is not an issue most of the time, since there is enough space for most needs but since there is no mechanism to judge the optimal size of scripts, this will remain a potential pitfall for the existing releases. An equivalent of large scripts is very large VoiceXML scripts. Here again since the whole script is loaded into memory for each invocation (each call) in the parsed form, it can lead to excessive memory usage and subsequent crash. Note that since VoiceXML scripts may be loaded from external web sites, the partner/customer may not be fully aware of its memory needs during execution. Once again such situation can be averted by pre testing these scripts. 2

Memory Best Practices Multiple Applications Prompts and Grammars While large scripts remain a potential issue, creating a huge number of applications which use the same script or very similar scripts can also lead to excessive memory consumption leaving very little for other activities like call processing. Again script developers can be imaginative and build logic inside the script to handle calls in different ways for different originating triggers. Thus, a single application can be deployed with multiple triggers. The script can be coded to handle the calls to these triggers slightly differently e.g. playing a different prompt or presenting a different language. Another way of customizing parameters for different triggers is to store the information either in a custom database or in an XML document that can then be read within the script to determine parameter values based on the dialed number. The point to be noted here is that with each application one script is loaded into memory. If the script happens to be the same one, then it is loaded multiple times using up precious memory. Prompts, grammars and other run time document objects loaded into UCCX Engine memory during execution can bring down the system if they are too large in size. Such situation can arise if there are large advertisement prompts. Excessive Usage of Script Variables (especially Strings) Using a large number of string variables coupled with large call volume can lead to excessive memory usage and subsequent crash. The same can occur with other variable types. This issue can be curbed by suitable optimization. Reading or Parsing large XML files This has impact during runtime, depending on the number of instances of the application executing simultaneously, since the XML file will be loaded into memory per application session. 3

CPU Optimizations Reading Enterprise Database While using Database steps in Unified CCX Editor, use DB Release step after a DB Read or DB Write step to utilize the connection pool effectively. Generating Heap/thread Dumps In spite of best efforts once in a while we do encounter Java memory leaks and crashes due to that. In such cases TAC often requires customers to collect UCCX Engine Java heap dumps (and possibly thread dumps) for analysis. Such heap and thread dumps should strictly be done only during off-peak hours to minimize disruption to active calls. Here it should also be highlighted that the UCCX main Engine process memory is bounded and fixed. This has been done to optimize real time call processing which is the core functionality of the product. This also means that there is no scope of increasing the memory pool of UCCX Engine even if the system has spare main memory (RAM). UCCX 7.0(1) SR3 and other future releases will provide a mechanism to monitor the UCCX Engine memory usage in real time and have the ability to generate alarms upon hitting certain thresholds [CSCsz21189]. Since Script (and custom code) development is just another form of programming, many of the usual guidelines for efficient and optimized coding also applies here. The above guidelines are not exhaustive, and that s where the knowledge, care and imagination of the script programmers come into play. And to re-emphasize, script programmers must as a rule test the script(s) just like they would any other software programs, taking extra care of the boundary and rare conditions. CPU Optimizations Call Volume This is always highlighted even before the system is designed and bought. So issues due to excessive call volume are not common. 4

CPU Optimizations However, one must keep in mind that call volume is not just the BHCC or BHCA figure which is calculated across an hour or several hours. If there is a sudden surge in calls over a few seconds, CPU can peak and lead to dropped or failed calls. Please refer to the config and ordering tool to make sure that the system is within the specified guidelines for expected call volume. Usage of Heavy Scripts Script developers must be aware of any complex (CPU intensive) computation that the scripts might be required to do. If there are tight loops and/or CPU hogging threads especially as part of custom code, it can use up CPU and lead to starvation for actual call processing. This in turn will manifest as dropped or failed calls. Voice XML HTTP Requests Max Number of Executed Steps VoiceXML scripts are in general more CPU intensive due to a whole lot of parsing of XML documents. When this is done real time in parallel to call processing, the later can be affected. Voice XML scripts should be deployed with care. Usage of HTTP requests to query various kinds of status and real time information, when done very often, say every 3-5 seconds or so, it can cause extra load on the system in-terms of memory and CPU usage. The general impression is that since there is no call processing, it is OK. However one must keep in mind that these HTTP requests also need to be processed and they share the same resources CPU and memory as call processing. Customer should not change the max number of executed steps parameter unless instructed by TAC. The purpose is to prevent infinite loops which can impact system performance greatly. 5

Others Others Non-customary Usage of UCCX Database UCCX Database server is for the exclusive use by UCCX components. Hence, customers are not allowed to create Databases and/or tables in the UCCX DB server. However customers can read historical data records for analysis where the canned reports do not suffice. In such cases, all DB access should be tested thoroughly by partner/customer to ensure that there is no impact to UCCX in terms of performance. Care must be taken to not leave non-functional DSNs since UCCX polls those periodically. There is not good method of judging if the DSN is temporarily down or permanently. Also even if there is virtually no limit on the number of DSNs configured, it should be used judiciously. Operation in Island mode due to Network Outage The Island mode occurs when one of the UCCX node(s) gets detached from the LAN while still functioning. In the Island mode, both nodes run as masters of all components. It must be noted that when the network connectivity is restored for the detached node, it goes through convergence when a single master is elected. As a result of that both Engines drop mastership and with that all active calls. Similarly, if master re-election is done on purpose it must be noted that there will be disruption of calls. Also mastership moves to the more powerful machine hardware and if both Engine nodes are of equal power, the election outcome is non-deterministic. Disk Fragmentation in Windows Environment Windows OS (more specifically NTFS) has the unique issue of disk fragmentation. With prolonged usage, various files are created in memory and deleted/purged. However this leads to fragmentation as in the contiguous bytes of memory are broken up into smaller and smaller chunks. When the disk is heavily fragmented, any fair size disk space requirement cannot be satisfied. Disk reads and writes also are affected since the files spread across multiple fragments. 6

Others This can cause pauses in the system with catastrophic impact on call processing as all the processes are forced to freeze for seconds even. Hence, Disk De-fragmentation activity should be added to regular maintenance operations. However all disk de-fragmentation operation should strictly be run during off-peak hours. Low Disk Space Third Party Software Low or insufficient disk space can also bring down the system. Hence care must be taken that the system does not reach such a situation ever. Few of the activities which are helpful are Properly set DB purging Set the number of trace files to be generated at optimal levels/numbers. Turn off excess tracing when not needed. This usually happens after a debugging session when traces are turned ON, but administrators forget to turn them OFF once done. Free Disk space should be maintained at 15% or higher for best all round results. Disk de-fragmentation operation also runs more efficiently (i.e. less disruption) with 15% or more of free disk space. Cisco does not permit any unapproved third party software on the UCCX server. Only Cisco approved anti-virus, anti-spy ware software should be used along with the compatible version of Cisco Security Agent. On similar lines no patches/upgrades should be applied to SQL Server, Java or Windows itself. Only Cisco provided or approved patches are allowed. Regular Backup and Recovery Testing Customers are encouraged to take advantage of the regular backup mechanism built into UCCX (and associated products like Cisco UCM). Since a backup is meaningful only if the recovery mechanism works fine it is recommended that a replica system be used to test the recovery without touching the production system. This is only if a replica system can be afforded. 7

Others Following the documentation step by step is also important during any restore/recovery operation. Upgrades Two crucial guidelines during major upgrades (not Service Releases or Engineering Specials) are as follows Step 1 Step 2 Follow the steps described in Upgrade document to the point. This is even of the customer has had experience in upgrades before hand. Use a replica system to build an upgraded system before attempting the upgrade on the production system. This becomes important for customers who have a complex or large Contact Centers and downtime is not permitted. IP Address Change If ever any customer needs to change the IP Address of one or more machines in the solution, it is strongly recommended to follow the guidelines and detailed procedure mentioned in the corresponding document. Any deviation from the steps can lead to a irrecoverable damage to the system needing a full rebuild. Yet another reason to have backups before this major operation is attempted. This document is to be used in conjunction with Cisco Unified Contact Center Express Support Documentation. Cisco and the Cisco Logo are trademarks of Cisco Systems, Inc. and/or its affiliates in the U.S. and other countries. A listing of Cisco's trademarks can be found at www.cisco.com/web/siteassets/legal/trademark.html. Third party trademarks mentioned are the property of their respective owners. The use of the word partner does not imply a partnership relationship between Cisco and any other company. (1005R) 2011 Cisco Systems, Inc. All rights reserved. 8