목차

소개

데이터베이스 테이블

요약 및 집계 테이블

CVP 8.x 및 9.0 보고 데이터베이스의 차이점

보고 서버 오버로드

문제 해결

실패 및 복원 - 보고 서버 부분

보고 서버 오류

데이터베이스 연결 실패

완료되지 않은 통화

복구 모드

추적 레벨 및 로그 파일

집계 디버그 및 로그

데이터베이스 공간 문제

소개

이 문서에서는 Cisco CVP(Unified Customer Voice Portal) 보고 서버를 개괄적으로 소개하고 문제 해결 단계를 제공합니다.

- 보고 서비스는 Cisco Unified IP IVR(Interactive Voice Response) 서비스, SIP(Session Initiation Protocol) 서비스(사용되는 경우) 및 Cisco Unified CVP VXML(Voice XML) 서버에서 보고 데이터를 수신합니다.그런 다음 이 서비스는 콜센터 환경에서 기록 보고 역할을 하는 Informix 보고 데이터베이스에 데이터를 변환하고 기록합니다.

- 그런 다음 보고 서비스는 이러한 메시지를 구문 분석하고 해당 메시지를 적용 가능한 SQL(Structured Query Language) 문의 일괄 처리로 변환한 다음 JDBC(Java Database Connectivity) API를 통해 SQL 데이터베이스로 실행합니다.

데이터베이스 테이블

CVP 테이블은 다음과 같이 분류됩니다.

- 통화 테이블

- VXML 테이블

- 요약/집계 테이블

- 조회 및 참조 테이블

- 콜백 테이블 제공

CallGUID 열에 의해 Call 테이블에서 시작되며 VXMLSession 테이블에 연결됩니다.

참고:Unified CVP DateTimes는 UTC 시간으로 기록됩니다.예외는 로컬 시간으로 기록된 dbdatetime입니다.Localtimezoneoffset은 Local Time을 파생하기 위해 UTC에서 오프셋된 분 수를 포함하는 Call 테이블의 열입니다.이 값은 간격으로 사용할 수 있습니다.

요약 및 집계 테이블

Unified CVP 보고 서버에는 통화 및 VXMLElement 테이블의 데이터를 새 요약 테이블로 집계하는 요약 프로세스가 포함되어 있습니다.

보고 요약 테이블은 다음과 같습니다.

- 응용 프로그램 요약_15

- 응용 프로그램 요약_일별

- 응용 프로그램 요약_매주

- 응용 프로그램 요약_매월

- 통화_15

- 통화_일별

- 매주 통화(_Weekly)

테이블은 이 일정을 기반으로 생성됩니다.

- 매일 테이블은 15분 테이블 뒤에 하루 채워져 있습니다.

- 매주 테이블은 일별 테이블에서 채워지며, 해당 주 동안 해당 테이블이 완전히 채워지면 해당 주별로 채워집니다.

- 매월 테이블은 매주 테이블에서 채워지며, 해당 월에 완전히 채워지면 해당 월별로 채워집니다.

Cisco Bug ID CSCue65248, "CVP 보고 요약 테이블이 채워지지 않음"을 참조하십시오. CVP 보고 서버에서는 요약 테이블이 채워지지 않습니다.이 문제는 CVP 9.0에 도입된 월별 요약 스크립트로 인해 발생합니다.

CVP 8.x 및 9.0 보고 데이터베이스의 차이점

Unified CVP 9.0(1) 보고 데이터베이스는 Windows 2008 R2 서버에서만 지원됩니다.Unified CVP 8.x 보고 데이터베이스는 Windows 2003에서 지원되므로 Unified 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(합계) = A1+ A2+?..+An

여기서 A(total)는 VoiceXML 애플리케이션에서 초당 생성된 총 보고 메시지 수입니다.

요소 또는 활동당 보고 메시지 수는 Cisco CVP(Unified Customer Voice Portal) SRND(Solution Reference Network Design) 릴리스 9.0(1)의 표 17에 있습니다.

간단히 하기 위해 이 쿼리를 사용하여 vxmlsession 테이블에 기록된 평균 메시지 수를 1초 동안 계산할 수 있습니다.

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

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

다음 14개 테이블에 대해 이 쿼리를 실행합니다.

1. 통화

2. 통화 이벤트

3. 통화 ICMInfo

4. OutgoingECCVariable(CCB 관련)

5. VXMLC사용자 지정 콘텐츠

6. VXMLElement

7. VXMLElementDetail

8. VXMLElement플래그

9. VXMLE오류

10. VXMLHotEvent

11. VXMLHotLink

12. VXMLS세션

13. VXMLSession변수

14. VXMLV장치상호작용 세부 정보

보고 서버에서 받은 초당 평균 메시지 수를 얻으려면 결과를 추가합니다.

문제 해결

보고 서버가 오버로드되면 보고 로그에는 다음 경고가 포함됩니다.

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]

실패 및 복원 - 보고 서버 부분

보고 서버가 Partial Service로 이동하는 시나리오에는 여러 가지가 있습니다.그러나 부분 서비스가 반드시 문제가 있음을 의미하지는 않습니다.

보고 서버 오류

보고 서버가 실패하면 보고 서버로 향하는 메시지는 메모리에서 최대 200,000개의 메시지에 의해 버퍼링됩니다.이 제한에 도달하면 새 메시지 세부 정보 정보가 모두 삭제됩니다.

참고:UCS 플랫폼의 경우 가상 플랫폼에서 전체 보고 및 통화 로드를 최대화하려면 보고 서버에서 수신 버퍼 수 설정을 수정해야 합니다.OS를 설치한 후 이 설정이 수정되지 않으면 CallServer에 메시지가 백업되고 메시지 큐가 채워집니다.그런 다음 CPS(Calls Per Second) 속도가 급격하게 저하됩니다.

보고 서버 TCP 설정의 수신 버퍼 수를 4096(최대)으로 설정하려면 다음 단계를 수행합니다.

1. 보고 서버에서 제어판 > 네트워크 연결을 클릭합니다.

2. 네트워크 연결을 마우스 오른쪽 단추로 클릭합니다.

3. Advanced 탭을 클릭합니다.

4. 속성 탭에서 수신 버퍼 수를 선택합니다.

5. 값 텍스트 상자에 4096을 입력합니다.

6. 보고 서버를 다시 시작합니다.

Unified CVP용 가상화를 참조하십시오.UCS 네트워크 컨피그레이션에서 추가 정보를 제공합니다.

데이터베이스 연결 실패

데이터베이스 연결이 실패하면 보고 서버는 SNMP(Simple Network Management Protocol) 알림을 보내고 사용자가 지정한 제한까지 메시지를 영구 파일(%CVP_HOME%\tmp\CVPReporting.tmp)에 저장하기 시작합니다.이 시간 동안 보고 서버는 계속 작동 중입니다.제한의 75%에 도달하면 로그 파일에 경고가 기록됩니다.제한 100%에 도달하면 SNMP 알림이 전송되고 보고 서버가 부분 서비스로 전환됩니다.새 메시지가 삭제될 수 있습니다.

데이터베이스 연결이 복구되면 보고 서버가 복구 모드로 전환되고 상태가 부분 서비스로 변경됩니다(해당 상태가 아직 해당 상태가 아닌 경우). 그런 다음 %CVP_HOME%\tmp\CVPReporting.tmp 파일에서 메시지를 읽고 데이터베이스에 커밋하기 시작합니다.파일 크기에 따라 모든 데이터를 데이터베이스에 커밋하는 데 몇 시간이 걸릴 수 있습니다.복구 중에 들어오는 새 메시지는 메모리에 버퍼링됩니다.

그러나 서버의 모드 또는 상태에 관계없이 보고 서버가 버퍼링할 수 있는 메시지 수에 제한이 있습니다.

- 버퍼된 메시지 수가 100,000에 도달하면 SNMP 경고가 사용자에게 경고로 전송됩니다.

- 200,000개의 메시지에서 다른 SNMP 알림이 전송되고, 모든 새 메시지에 대한 세부 정보가 삭제되며, 통화, 통화 이벤트 및 세션 정보와 같은 기본 데이터만 유지됩니다.200,000개의 메시지에서 보고 서버는 상태를 부분 서비스로 변경합니다(아직 해당 상태가 아닌 경우).

- 버퍼링된 메시지의 총 수가 300,000에 도달하면 다른 SNMP 알림이 전송되고 모든 새 메시지가 해당 시점부터 삭제됩니다.

- 메모리의 메시지 수가 50,000 이하로 다시 떨어지면 대기열 크기가 정상으로 돌아왔고 보고 서버의 상태가 다시 In Service로 돌아가도록 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]

완료되지 않은 통화가 완료되면 이러한 메시지가 표시되고 보고 서버는 In Service 상태로 돌아갑니다.

%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는 크기 제한을 초과하여 적시에 복구되지 않습니다." 파일을 완전히 읽을 수 없으므로 새 통화 보고 데이터가 손실되었습니다.하드 드라이브가 가득 차 결국 디스크 공간 부족 상태가 되었습니다.

이 문제는 Unified 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>\logs\reporting.txt 파일은 집계가 실행되었는지 여부를 표시합니다.

이 절차에서는 aggregator.bat 작업에 대해 추가 추적을 활성화하는 방법에 대해 설명합니다.

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>\logs\Agg_Debug.out 파일에 기록됩니다.

데이터베이스 공간 문제

참고:이 공간 문제는 다른 구현에서 발견되었습니다.이 문제에 대한 솔루션에는 Informix에 대한 심층적인 기술 지식이 포함되어 있으므로 이 문제가 발생하면 Cisco TAC(Technical Assistance Center)에 문의하십시오.

이 절차에서는 문제 해결 프로세스에 대해 설명합니다.

1. Unified 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. E:\ifmxdata\cvp_db_wp17cvprpt1a\ 아래에 new_space라는 빈 파일을 새로 만듭니다.명령 프롬프트를 열고 다음 명령을 입력합니다.복사하여 붙여넣기 안 함:

onspaces -a cvp_data_dbspace -

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

참고:-s는 새 청크의 크기를 나타내며 KB로 지정됩니다.100MB의 경우 100 * 1024 = 102400입니다.

이 명령은 CVP Informix 서버에 100MB의 dbspace를 추가합니다.

12. CVP_Database_Config.bat 파일을 다시 실행합니다.이제 제대로 작동할 것입니다.

다음 예에서는 DBAccess를 사용하여 데이터베이스에 연결하는 방법을 보여 줍니다.