Introdução
Este documento descreve o método de solução de problemas para identificação de problemas na Fila ou problemas de atualização de estatísticas de grupo de habilidades observados no ambiente de desktop do agente Finesse, causados especificamente por atrasos de mensagens entre os servidores de integração Computador-Telefonia (CTI) e servidores Finesse. O artigo fornece análises de log e conclui com uma solução para melhorar a capacidade do servidor Finesse em lidar com essas mensagens de Atualização de Estatísticas em uma rede atrasada abaixo do ideal.
Pré-requisitos
Requisitos
A Cisco recomenda que você tenha conhecimento destes tópicos:
- Servidor CTISVR Cisco Unified Contact Center Enterprise (UCCE)
- servidor Cisco Finesse
Componentes Utilizados
As informações neste documento são baseadas nestas versões de software e hardware:
- Gateway periférico do agente UCCE com CTISVR instalado
- Cluster de servidores Finesse
As informações neste documento foram criadas a partir de dispositivos em um ambiente de laboratório específico. Todos os dispositivos utilizados neste documento foram iniciados com uma configuração (padrão) inicial. Se a rede estiver ativa, certifique-se de que você entenda o impacto potencial de qualquer comando.
Conventions
Consulte as Convenções de Dicas Técnicas da Cisco para obter informações sobre convenções de documentos.
Informações de Apoio
Os servidores Finesse que assinam o CTISVR como clientes CTI fornecem funções de agente que são semelhantes ao que um servidor de objetos de integração de telefonia e computador (CTIOS) e um Cisco Agent Desktop (CAD) podem oferecer. Os agentes/supervisores do Finesse também podem ter alguns dos problemas enfrentados pelos agentes do CTIOS e do CAD.
Um desses problemas é o status em tempo real da Fila ou do Grupo de Habilidades que não está sendo atualizado para o desktop do agente/supervisor do Finesse. No ambiente CTIOS e CAD, os engenheiros normalmente verificam as diretrizes de projeto e se os limites de configuração, como grupo de habilidades por agente, total de grupos de habilidades por periféricos e equipes por supervisor etc., tiveram excesso de assinaturas. Os engenheiros também verificariam o número de conexões de cliente CTI simultâneas no CTISVR, consulte o
Informações relevantes também podem ser consultadas nos guias de design das versões 10.5(x) e 11.
A solução de problemas desse tipo em agentes/supervisores Finesse também começa com as verificações de limite de projeto mencionadas. No entanto, os agentes da Finesse podem ser afetados por limitações adicionais encontradas exclusivamente nos servidores da Finesse.
Sintomas do problema
O problema de não atualização de estatísticas da fila ou do grupo de habilidades normalmente é encontrado nestes cenários:
- Os estados de agente atuais não são refletidos no gadget de habilidades/filas individuais na área de trabalho do agente Finesse. No entanto, a verificação dos estados dos agentes com o uso do comando opctest com la no Gateway Periférico (PG) do agente indica que os estados dos agentes estão corretos com os grupos de habilidades.
- O número de agentes está no estado CONVERSANDO por um tempo, no entanto, as áreas de trabalho do agente ou supervisor Finesse ainda mostram 0 em habilidades/filas para tempo de conversa.
- A reinicialização do servidor Finesse permitiria que o sistema funcionasse temporariamente, mas normalmente o mesmo problema ressurge em minutos ou horas.
Buffer de Mensagens CTI e Estatísticas da Fila Finesse do Finesse
As atualizações de estatísticas da fila do agente Finesse ou de estatísticas de habilidades são realizadas através das trocas desses pares de mensagens CTI de solicitação e resposta nos servidores Finesse.
Solicitação de mensagem getQueryQueueStatisticsReq() feita pelo Finesse e a mensagem QuerySkillGroupStatisticsConf como resultado das respostas CTISVR.
Por padrão, o Finesse pode processar 751 solicitações de grupo de habilidades dentro do intervalo de atualização de estatísticas de 10 segundos designado. As solicitações que não são processadas são armazenadas em buffer em uma fila de mensagens para serem processadas posteriormente. Por padrão, o Finesse é inicializado com essa Fila de Buffer de Mensagens para armazenar 5000 mensagens de SOLICITAÇÃO.
No entanto, se o buffer ficar cheio e sobrecarregado, algumas dessas mensagens de solicitação de estatísticas de fila sofrerão timeout e serão descartadas.
Possíveis causas da saturação do buffer de estatísticas da fila do Finesse
1. Excesso de assinatura de Design/Configuração. por exemplo, habilidades por agentes, total de grupos de habilidades por periféricos e equipes por supervisor etc. Consulte o para obter os limites de configuração recomendados. A assinatura em excesso pode levar a mensagens CTI excessivas nas atualizações de estatísticas e, portanto, sobrecarrega o buffer de solicitação de estado de fila Finesse.
2. Excedendo o máximo permitido de conexões de cliente CTI simultâneas que incluem conexões de Todos os Eventos e conexões de Modo Monitorado. Esgotamento de recursos CTISVR que levam a uma lentidão significativa na velocidade de processamento de mensagens CTI.
3. Desempenho PG, por exemplo CPU, memória e E/S de disco etc.
4. Não há largura de banda de rede suficiente para suportar os atrasos de mensagens CTI permitidos para o Finesse Application, ou seja, 62ms.
Calculadora de largura de banda Finesse fornecida no link aqui com as especificações de projeto atuais para alocar a largura de banda de rede recomendada. http://www.cisco.com/c/en/us/support/customer-collaboration/finesse/products-technical-reference-list.html
Estouro do Buffer de Estatísticas da Fila de Multas Devido ao Atraso de Mensagem CTI
Com base nessa limitação do Finesse na velocidade de processamento da mensagem REQUEST e no buffer de mensagens, o valor padrão do atraso médio máximo de solicitação/resposta é de 62 ms para implantações médias do Finesse. Se os atrasos médios excederem significativamente o parâmetro de referência de 62 ms, por exemplo, Atraso de mensagem CTI em torno de 100 ms. Em seguida, as mensagens getQueryQueueStatisticsReq() CTI armazenadas em buffer nunca podem ser enviadas para CTISVR e respondidas com QuerySkillGroupStatisticsConf com rapidez suficiente dentro do intervalo de atualização de 10 segundos. E as demais mensagens getQueryQueueStatisticsReq() com tempo limite excedido são removidas do buffer de Estatísticas da Fila.
Rastreamento Finesse relevante
As mensagens de estatísticas da fila podem ser encontradas no log do webservices finesse. Requer o nível de rastreamento DEBUG para revelar mensagens de status de fila detalhadas.
Para obter as etapas para ativar o nível de rastreamento de DEBUG para serviços da Web, consulte este link docwiki.
http://docwiki.cisco.com/wiki/Logging:_Enable_debug_level_logging
Análises de log
Quando a saturação do buffer de fila segue trechos de log podem ser observados no log de serviços da Web
Procure o início de uma rodada de 751 atualização de solicitação de estatísticas de fila, no início do intervalo de atualização de 10 segundos:
eg.
Sep 22 2014 14:34:59.878 -0700: %CCBU_pool-21-thread-1-6-QUEUE_STATISTICS_REQUEST: %[count=751]: Starting new round of querying active queue statistics
Entre esta e a próxima rodada de 751 solicitações que ocorre após 10 segundos, filtre e verifique com uma ferramenta de texto, por exemplo. Bloco de Notas++, se houver 751 mensagens QuerySkillGroupStatisticsConf correspondentes:
eg
Sep 22 2014 14:34:59.888 -0700: %CCBU_CTIMessageEventExecutor-0-6-DECODED_MESSAGE_FROM_CTI_SERVER: %[cti_message=CTIQuerySkillGroupStatisticsConf[peripheralID=5000, skillGroupNumber=28353, routerCallsQNow=0, longestRouterCallQNow=0, agentsNotReady=0, agentsReady=0, agentsTalkingIn=0, agentsTalkingOut=0, agentsTalkingOther=0, agentsWorkNotReady=0, agentsWorkReady=0]CTIMessageBean [invokeID=112223, msgID=115, timeTracker={"id":"QuerySkillGroupStatisticsConf","CTI_MSG_NOTIFIED":1411536082977,"CTI_MSG_RECEIVED":1411536082976}, msgName=QuerySkillGroupStatisticsConf, deploymentType=CCE]][cti_response_time=1]: Decoded Message to Finesse from backend cti server
Por exemplo, se houver apenas 329 mensagens QuerySkillGroupStatisticsConf processadas pelo Finesse para essa rodada, em outra palavra, deverá haver 422 mensagens enfileiradas no buffer. Obviamente, se forem enfileiradas cerca de 400 mensagens a cada 10 segundos, o buffer poderá atingir seu limite de 5.000 mensagens em 3 minutos.
Procure a primeira ocorrência de erro de polling que ocorre dentro de 3 minutos, que é o sinal de saturação de buffer:
Sep 22 2014 14:37:29.883 -0700: %CCBU_pool-21-thread-1-3-QUEUE STATISTICS POLLING ERROR: %[ERROR_DESCRIPTION= maximum pool and queue capacity reached so discarding execution][error_message=Thread pool saturated, discarding execution ]: Error during queue statistics polling
Ilustração do atraso de processamento CTISVR
- O Finesse envia a solicitação getQueryQueueStatisticsReq() para CTISVR - rastreando invokeId=112223, queueId=28353:
Sep 23 2014 22:21:22.875 -0700: %CCBU_pool-19-thread-4-7-CTIWriter.getQueryQueueStatisticsReq(): {Thrd=pool-19-thread-4} params : invokeId=112223, queueId=28353
- O CTISVR recebeu a solicitação:
match InvokeID:0x1b65f with invoked=112223 in the Finesse request
and SkillGroupNumber:28353 with queueId in the Finesse request
22:21:22:921 cg1A-ctisvr SESSION 9: MsgType:QUERY_SKILL_GROUP_STATISTICS_REQ (InvokeID:0x1b65f PeripheralID:5000
22:21:22:921 cg1A-ctisvr SESSION 9: SkillGroupNumber:28353 SkillGroupID:N/A )
22:21:22:999 cg1A-ctisvr SESSION 9: MsgType:QUERY_SKILL_GROUP_STATISTICS_CONF (InvokeID:0x1b65f PeripheralID:5000
22:21:22:999 cg1A-ctisvr SESSION 9: SkillGroupNumber:28353 SkillGroupID:9431 AgentsLoggedOn:0 AgentsAvail:0 AgentsNotReady:0
22:21:22:999 cg1A-ctisvr SESSION 9: AgentsReady:0 AgentsTalkingIn:0 AgentsTalkingOut:0 AgentsTalkingOther:0
22:21:22:999 cg1A-ctisvr SESSION 9: AgentsWorkNotReady:0 AgentsWorkReady:0 AgentsBusyOther:0 AgentsReserved:0 AgentsHold:0
22:21:22:999 cg1A-ctisvr SESSION 9: AgentsICMAvailable:0 AgentsApplicationAvailable:0 AgentsTalkingAutoOut:0
22:21:22:999 cg1A-ctisvr SESSION 9: AgentsTalkingPreview:0 AgentsTalkingReservation:0 RouterCallsQNow:0
- O Finesse recebeu a resposta CTISVR e formou a mensagem QuerySkillGroupStatisticsConf:
Sep 23 2014 22:21:22.977 -0700: %CCBU_CTIMessageEventExecutor-0-6-DECODED_MESSAGE_FROM_CTI_SERVER: %[cti_message=CTIQuerySkillGroupStatisticsConf[peripheralID=5000, skillGroupNumber=28353, routerCallsQNow=0, longestRouterCallQNow=0, agentsNotReady=0, agentsReady=0, agentsTalkingIn=0, agentsTalkingOut=0, agentsTalkingOther=0, agentsWorkNotReady=0, agentsWorkReady=0]CTIMessageBean [invokeID=112223, msgID=115, timeTracker={"id":"QuerySkillGroupStatisticsConf","CTI_MSG_NOTIFIED":1411536082977,"CTI_MSG_RECEIVED":1411536082976}, msgName=QuerySkillGroupStatisticsConf, deploymentType=CCE]][cti_response_time=1]: Decoded Message to Finesse from backend cti server
Observe que o Finesse levou mais de 100 ms para receber a mensagem QuerySkillGroupStatisticsConf correspondente, se este for um tempo de resposta médio. O Finesse pode enfrentar o problema de saturação da fila de buffer.
Solução
Há uma propriedade em aws.properties que define o intervalo de atualização no lado do servidor Finesse. Esse é basicamente o intervalo entre duas rodadas de solicitações de estatísticas de fila (uma rodada sendo 751 solicitações de estatísticas de fila nessa implantação) do Finesse para o CTISVR. O Finesse, por padrão, o solicita a cada 10 segundos. Esta propriedade poderia potencialmente ser alterada para algo mais alto em valor, o que significaria que o Finesse terá um pouco mais de tempo (por exemplo: 20 segundos em vez de 10 segundos) para processar uma rodada de solicitações de estatísticas de fila. Ele também estende efetivamente o atraso de solicitação/resposta de estatísticas de habilidades CTI de benchmark de 62 ms para 124 ms.
- Acesso root obtido à plataforma do SO Finesses
- VI para o arquivo de propriedade /opt/cisco/desktop/conf/webservices/aws.properties
- Valor desta propriedade modificado de 10 para 20
com.cisco.cc.webservices.reporting.core.queue_statistics_refresh_interval
Note: Intervalo de atualização para estatísticas da fila em segundos.
- salvar o arquivo aws.properties
- reiniciar o serviço Finesse Tomcat
- As mesmas etapas devem ser realizadas em todos os nós Finesse dentro do cluster Finesse