Contents

Introduction

数据库表

汇总和聚合表

CVP 8.x和9.0报告的数据库之间的区别

报告服务器超载

排除故障

故障和恢复-报告部分的服务器

报告服务器故障

数据库连接故障

未完成的呼叫

恢复模式

跟踪级别和日志文件

聚合器调试和日志

数据库空间问题

Introduction

本文给予报告的思科统一客户语音门户(CVP)概述服务器并且提供故障排除步骤。

- 报告的服务从Cisco Unified IP Interactive Voice Response (IVR)服务、会话初始化协议(SIP)服务(若被采用)和Cisco Unified CVP语音XML (VXML)服务器收到报告数据。服务给报告的Informix公司然后变换并且写数据数据库，担当历史报告在呼叫中心环境。

- 报告的服务解析那些消息，然后转换他们成批可适用的结构化查询语言(SQL)语句，并且执行他们到SQL数据库通过Java Database连接(JDBC) API。

数据库表

CVP表分类如下：

- 呼叫表

- VXML表

- 汇总/聚合表

- 查找和参考表

- 礼貌回拨表

呼叫开始在呼叫表和与VXMLSession表连接由CallGUID列。

Note:统一的CVP DateTimes被记录作为UTC时间;例外是dbdatetime，被记录作为一个本地时间。Localtimezoneoffset是列在包含分钟偏移量的编号从UTC的为了派生本地时间的呼叫表里。这可以使用作为间隔。

汇总和聚合表

报告统一的CVP服务器包括从呼叫和VXMLElement表的会聚数据到新的汇总表里的一个概略的进程。

报告的汇总表是：

- ApplicationSummary_15

- ApplicationSummary_Daily

- ApplicationSummary_Weekly

- ApplicationSummary_Monthly

- Call_15

- Call_Daily

- Call_weekly

表被创建根据此日程表：

- 每日表被填充在15张分钟表后的一天。

- 一旦那些充分填充在正在考虑中的星期每周表从每日表被填充。

- 一旦那些充分填充在正在考虑中的月月度表从每周表被填充。

请参阅Cisco Bug ID CSCue65248， “报告的CVP汇总表没有被填充”。在报告的CVP服务器，汇总表没有被填充。问题由月度汇总的脚本导致，在CVP 9.0被引入。

CVP 8.x和9.0报告的数据库之间的区别

数据库Windows 2008 R2服务器仅支持报告统一的CVP 9.0(1)。由于数据库Windows支持报告统一的CVP 8.x 2003，没有直接更新对报告统一的CVP 9.0(1)数据库。

关于迁移指令，请参阅安装指南。注意， ：

- 报告的服务器组件，如果机器已经作为域的部分不可能安装。

- 报告的服务器组件不可能在是域的一部分的服务器上安装。组件的安装要求本地安全策略比在组策略控制台的同样安全策略获得更高的优先权，不是可能的，如果服务器是域的一部分。然而，因为这在服务器，不要求任何本地策略运行在安装以后，服务器可以被添加回到域。

在过帐安装任务上的区别包括：

- 4.x，报告的7.x数据库-登陆作为Informix公司用户，并且运行这些批处理文件：

- ReportingRunAsInformix.bat.

- ReportingRunAsCVP_DbAdmin.bat.

- 报告的8.x数据库-登陆作为Informix公司用户，并且运行此批处理文件：

- CVP_Database_Config.bat.

- 报告的9.x数据库-作为过帐安装过程一部分，批处理文件没有需要。

在用户上的一个关键区别是，与9.x，那儿不无Informix公司用户。反而， cvp_dbadmin用户是数据库的责任人。

报告服务器超载

报告Cisco的MCS-7845服务器能处理420个消息每秒。

请使用此等式为了确定报告消息的编号生成每每个VoiceXML应用程序的秒：

A# = %CPS * CPS * MSG

其中：

- %CPS =使用此VoiceXML应用程序呼叫的百分比

- CPS =呼叫的数量每秒

- MSG =报告此应用程序生成的消息的编号

请使用此等式为了添加每个应用程序生成的消息：

A(total) = A1+ A2+?..+An

那里A(total)是报告消息总数生成每秒由您的VoiceXML应用程序。

报告消息的编号每个元素或活动在表17思科统一客户语音门户(CVP)解决方案参考网络设计(SRND)版本9.0(1)。

简而言之，您能使用此查询为了计算给vxmlsession表被写的消息平均数在一秒钟：

select count(*)/86400 from vxmlsession where dbdatetime between

'2012-12-12 00:00:00' and '2012-12-13 00:00:00'"

运行此查询这14张表：

1. 呼叫

2. CallEvent

3. CallICMInfo

4. OutgoingECCVariable (涉及的CCB)

5. VXMLCustomContent

6. VXMLElement

7. VXMLElementDetail

8. VXMLElementFlag

9. VXMLError

10. VXMLHotEvent

11. VXMLHotLink

12. VXMLSession

13. VXMLSessionVariable

14. VXMLVoiceInteractDetail

添加结果为了获得消息平均数每报告的服务器接收的秒。

排除故障

如果超载报告的服务器，报告的日志包含这些戒备：

CVP_8_0_RPT-1-REPORTING_DB_ALERT_RAISE ALERT!!!!! The total JDBC messages queue

size has exceeded the critical limit 300000 .... All the JDBC messages will

be dropped. [id:4014]

CVP_8_0_RPT-1-REPORTING_DB_ALERT_RAISE ALERT!!!!! The total JDBC messages queue

size has exceeded the max limit 250000 .... Some of the JDBC messages may be

dropped. [id:4014]

故障和恢复-报告部分的服务器

有报告的服务器去部分服务的几个方案。然而，部分服务不一定意味着有问题。

报告服务器故障

如果报告的服务器出故障，为报告的服务器注定了的消息由呼叫服务器缓冲，在内存， 200,000个消息。以后限制达到，所有新的消息详细信息信息下降。

Note:对于UCS平台，您必须修改Receive缓冲区的数量设置在报告的服务器的为了最大化在虚拟平台的充分报告和呼叫负荷。如果没有修改此设置，在您安装OS后，消息在CallServer备份，并且消息队列得填满。您然后看到在Calls Per Second (CPS)费率的暴跌。

采取这些步骤为了设置Receive缓冲区的数量在报告的服务器TCP设置的到4096 (最大) ：

1. 在报告的服务器上，请点击Control Panel > Network连接。

2. 用鼠标右键单击网络连接。

3. 点击高级选项卡。

4. 在属性选项下，请选择Receive缓冲区的编号。

5. 在值文本框中，请输入4096。

6. 重新启动报告的服务器。

参考统一的CVP的虚拟化：UCS其他信息的网络配置。

数据库连接故障

如果数据库连接发生故障，报告的服务器派出简单网络管理协议(SNMP)戒备并且启动存储消息到一个不变文件(%CVP_HOME% \ tmp \ CVPReporting.tmp)至一用户指定的限制。在此时间，在限制的Service.When 75%的报告的服务器逗留被到达，警告写到日志文件。当100%限制达到时， SNMP戒备被派出，并且报告的服务器进入部分服务。所有新的消息也许被丢弃。

当数据库连接恢复时，报告的服务器进入恢复模式并且更改其状态到部分服务(如果已经不在该状态)。它然后开始读取消息从%CVP_HOME% \ tmp \ CVPReporting.tmp文件和承诺他们给数据库。根据文件的大小，它可能耗费几小时承诺所有数据给数据库。进来在恢复期间的新的消息在内存被缓冲。

不管服务器的模式或状态，有，然而，限制对报告的服务器能缓冲的通讯数量， ：

- 当缓冲区数消息到达100,000时， SNMP戒备被派出作为对用户的一个警告。

- 在200,000个消息，另一次SNMP戒备被派出，所有新的消息详细信息下降，并且仅基本数据类似呼叫、呼叫事件和会话信息保持。在200,000个消息， (如果已经不在该状态)，报告的服务器也更改其状态到部分服务。

- 当被缓冲的消息总数到达300,000时，另一次SNMP戒备被派出，并且所有新的消息从那时起被丢弃。

- 当通讯数量在内存的下降在50,000以下时，陈述的SNMP戒备被派出队列大小是回到正常，并且报告的服务器的状态回到在使用中。

如果一个不变文件在启动存在，报告的服务器在部分服务坚持并且进入恢复模式。

未完成的呼叫

当恢复未完成的呼叫时，报告的服务器可以也去部分服务。

此消息在报告的服务器日志被看到：

%CVP_8_0_RPT-1-REPORTING_STATE_CHANGE:  REPORTING Subsystem state changed to

RPT SS RPT1 changes its state to Partial Service cause Unfinished calls

recovery started [id:4001]

日志也包括关于这些呼叫恢复的信息。切记恢复进程能需要很长时间!

%CVP_8_0_RPT-6-REPORTING_INFO:  Recover Uncompleted call: 73

CallGUID:90DAAAC91000013C01075FC253EF37A4 Event Id: 11 CauseId: 0 [id:4000]

...

%CVP_8_0_RPT-6-REPORTING_INFO:  Recover Uncompleted call:

129 CallGUID:673A58361000013C087A209E53EF37A5 Event Id: 0 CauseId: 0 [id:4000]

一旦未完成的呼叫完成，这些消息被看到，并且报告的服务器回到在服务状态：

%CVP_8_0_RPT-6-REPORTING_INFO:  Recover CallRegistry finished [id:4000]

%CVP_8_0_RPT-6-REPORTING_INFO:  initKeepAliver() -- processed unfinished calls

[id:4000]

%CVP_8_0_RPT-1-REPORTING_STATE_CHANGE:  REPORTING Subsystem state changed to RPT

SS RPT1 changes its state to In Service cause Normal Operation [id:4001]

恢复模式

您在使用中能删除%CVP_HOME% \ tmp \ CVPReporting.tmp文件为了避免恢复进程和带回报告的服务器。此程序描述如何绕过恢复进程：

1. 终止CVP呼叫服务器服务。

2. 连接到%CVP_HOME% \ tmp。

3. 重命名CVPReporting.tmp文件。

4. 开始CVP呼叫服务器服务。

请参阅Cisco Bug ID CSCtu43570， “CVPReporting.tmp在大小限额之外变得并且不是被恢复的及时”。因为文件不可能完全地写入，报告新的呼叫数据丢失。硬盘驱动器得填满，最终导致一个‘出于磁盘空间’情况。

此问题在统一的CVP报告的8.5(1)SR18和的8.5(1)SR6被调整数据库。

跟踪级别和日志文件

编辑<install_dir> \ Cisco \ CVP \ conf \ reporting.properties文件为了设置在报告的服务器日志的跟踪级别。这是示例：

RPT.traceMask = 0x810000

RPT.logLevel = DEBUG

聚合器调试和日志

在ciscoadmin数据库的汇总使用两表：agg_schedule和agg_statements。

<CVP_HOME> \日志\ reporting.txt文件显示聚合是否运行了。

此程序描述如何对aggregator.bat工作的enable (event)另外的追踪：

1. 等待至少15分钟。

2. 编辑<CVP_HOME> \ bin \ aggregator.bat文件。从此默认值更改.bat文件的值：

echo call sp_sched_agg(); | dbaccess ciscoadmin

到：

echo call sp_sched_agg('D'); | dbaccess ciscoadmin

调试日志在CVP_HOME> \日志\ Agg_Debug.out文件被写。

数据库空间问题

Note:此空间问题在不同的实施被看到了。由于对此问题的解决方案介入Informix公司深刻的技术知识，请与Cisco技术支持中心(TAC)联系，如果遇到此问题。

此程序描述故障排除流程：

1. 升级到报告统一的CVP 8.0(1)数据库。

2. 运行CVP_Database_Config.bat文件，并且请参阅问题：

3. 查看c:\temp\cvpupg.sql文件。内容是：

call upg_est(); UNLOAD to "c:/temp/upgvars.out" SELECT estimate1,estimate2,

retention,log_space_needed,minlog,maxlog FROM cvp_data:upg_estimate;

4. 连接到数据库。当您尝试检查upg_estimate表时，不存在。

5. 检查c:\Temp\CiscoUnifiedCVPDB.log文件，并且请参阅这些错误：

23:41:54 Wed Dec 19 2012 : dbaccess cvp_data

C:\Cisco\CVP\informix_frag\upg_est.sql

Database selected.

312: Cannot update system catalog (sysprocbody).

131: ISAM error: no free disk space

Error in line 26

Near character position 11

23:41:54 Wed Dec 19 2012 : dbaccess cvp_data c:/temp/cvpupg.sql 2>NUL

Database selected.

206: The specified table (upg_estimate) is not in the database.

6. 检查upg_est.sql。upg_estimate表的内容是：

SELECT COUNT(*)

INTO tmp_int

FROM systables

WHERE tabname='upg_estimate';

IF tmp_int=0 THEN

CREATE TABLE upg_estimate (

estimate1 INTERVAL HOUR TO MINUTE,

estimate2 INTERVAL HOUR TO MINUTE,

retention SMALLINT,

log_space_needed INTEGER,

minlog INTEGER,

maxlog INTEGER

);
但是，此表不得到创建。

7. 连接到Dbaccess，并且运行此查询：

SELECT COUNT(*) FROM systables     WHERE tabname='upg_estimate';
查询返回0，因此应该创建了表。

8. 设法手工创建表在Dbaccess ：

CREATE TABLE upg_estimate (

estimate1 INTERVAL HOUR TO MINUTE,

estimate2 INTERVAL HOUR TO MINUTE,

retention SMALLINT,

log_space_needed INTEGER,

minlog INTEGER,

maxlog INTEGER

);
您收到错误信息：

261: Cannot Create file for table (informix.upg_estimate).

131: ISAM error: no free disk space

9. 运行onstat - d命令，并且验证最后大块没有足够的空间：

10. 登陆到CVP Informix公司机箱作为‘Informix公司’用户。

11. 创建一个新的空文件名为new_space在E:\ifmxdata\cvp_db_wp17cvprpt1a\下。打开prompt命令，并且输入这些命令。请勿复制和插入：

onspaces -a cvp_data_dbspace -

E:\ifmxdata\cvp_db_wp17cvprpt1a\cvp_data_dbspace\new_space -o 0 -s 10240

Note:- s在KBs表示新的大块的大小和产生。对于100 MB，它是100 * 1024 = 102400。

此命令添加dbspace 100 MB到CVP Informix服务器。

12. 重新运行CVP_Database_Config.bat文件。它将适当地当前运作。

此示例显示如何连接到数据库用Dbaccess ：