Inhoud

Inleiding

Achtergrondinformatie

Gebruikte componenten

Probleem

Oplossing

Inleiding

Dit document beschrijft de maximale hoeveelheid gegevens die kan worden verwerkt door middel van een MDS-bericht (Intelligent Contact Management) (ICM), en de architectuur erachter.

Achtergrondinformatie

Wanneer het uitvoeren van de raadpleging van het gegevensbestand met ICM (het gebruik van dbworker.exe als proces om de interface tussen de router en de externe databank te verstrekken), is er een maximum hoeveelheid Gegevens dan kan door een MDS- bericht worden verwerkt.

De totale hoeveelheid gestructureerde query language (SQL) Response data + db worker process (DBW) Response header kan niet meer dan 4096 bytes overschrijden. Dit is een hardcodeerde limiet voor een MDS-bericht.

Gebruikte componenten

De informatie in dit document is gebaseerd op ICM versie 11.6

Probleem

Als te veel gegevens van SQL Server op dbw zijn teruggebracht en dbw het niet aan de router (RTR) kan doorgeven, wordt er een foutmelding gegenereerd, vergelijkbaar met deze:

06:33:38:639 ra-dbw-spoor: Wachtend verzoek wachtrij

06:33:38:644 ra-dbw-spoor: DBWorker Thread 4 (ID 5612 Tabel:Stores_Reception_BT.SRDB_NEW): Ontvangen verzoek: transactieID 14583170

06:33:38:658 ra-dbw-spoor: DBWorker Thread 4 (ID 5612), transactieID 14583170, probeert de record te lezen:

06:33:38:679 ra-dbw-spoor: DBWorker Thread 4 (ID 5612), transactieID 14583170, succesvol.(...)

06:33:38:735 ra-dbw-spoor: DBWorker transactieID 14583170, mislukt! resultaat=10

06:33:38:745 ra-dbw-spoor: Wachtend verzoek wachtrij

"10" - betekent dat er te veel gegevens van SQL Server naar dbw zijn teruggebracht en dat dbw het niet aan RTR kan doorgeven

Om de fout af te drukken, wordt dit niveau van overtrekken gebruikt:

dbw-spoorniveau tot 3 via Portico (spoorniveau 3 moet alleen worden gebruikt volgens de aanbeveling van Cisco TAC) en dit spoorniveau voor RTR via sportiegereedschap (c:\icm\bin):

Hier is een voorbeeld van hoe een MDS-bericht wordt gevormd door het DBW-proces:

02:22:01:273 ra-dbw-spoor: DBWorker Thread 2 (ID 15100 Tabel:ICM_lookup_1): Ontvangen verzoek: transactieID 3

02:22:01:273 ra-dbw-spoor: DBWorker Thread 2 (ID 15100), transactieID 3, Proberen de record te lezen:

02:22:01:273 ra-dbw-spoor: DBWorker Thread 2 (ID 15100), transactieID 3, succesvol.

02:22:01:273 ra-dbw-spoor: MDS: MDSAlocBuffer invoeren

02:22:01:273 ra-dbw-spoor: SQL-verbinding: Setupcolongegevens: Kolom-gegevens voor kolom 1 Lengte = 5

02:22:01:273 ra-dbw-spoor: SQL-verbinding: Setupcolongegevens: Kolom-gegevens voor kolom 2 Lengte = 0

02:22:01:273 ra-dbw-spoor: SQL-verbinding: Setupcolongegevens: Kolom gegevens voor kolom 3 Lengte = 0

02:22:01:273 ra-dbw-spoor: MDS: Invoeren van MDSSendInv02:22:01:273:273 SRB BW Berichtvak: Cliënt: DBW-bericht verzenden naar MDS-proces.

EMT:  klasse=2 type=1 lichaamsysize=116

MDS:  rsrvd=0 hdrsize=16 bodysize=100 src=56 dst=1 prioriteit=hoog

MDS:  flags=02 { side_a} vtime=0006f03b sequno=0000 class=4 type=16

00000 03 00 00 00 00 00 00 00 00 00 |........|

00008 03 00 00 00 8e 13 00 00 |........|

00010 02 00 00 00 00 00 00 00 00 00 |........|

00018 00 00 00 00 00 00 00 00 00 00 |........|

00020 00 00 00 00 05 00 38 30 |......80|

00028 31 30 34 00 8c 13 00 00 |104.....|

00030 02 00 00 00 00 00 00 00 00 00 |........|

00038 00 00 00 00 00 00 00 00 00 00 |........|

00040 00 00 00 00 00 00 00 00 00 00 |........|

00048 8d 13 00 00 02 00 00 00 |........|

00050 00 00 00 00 00 00 00 00 00 00 |........|

00058 00 00 00 00 00 00 00 00 00 00 |.........

00060 00 00 00 00

In dit voorbeeld zijn er 3 kolommen als resultaat van SQL-query naar geconfigureerde tabel, alle kolommen hebben VARCHAR(50) type in DB.

De respons bevat 5 bytes gegevens uit de 1ste kolom en 0 bytes in de andere 2 kolommen.

Op basis van deze responsknop vormt het MDS-bericht waarin elke kolom is verpakt in een veld dat bestaat uit 24 bytes header + 2 bytes lang + PAYLOAD + OFFSET.

Als de kolom geen gegevens bevat, bv. Lengte = 0, zal deze nog steeds bezet zijn: 24 bytes header + 2 bytes length + 2 bytes OFFSET = 28 bytes

Oplossing

Om dit scenario rond te werken, zult u ongebruikte kolommen uit tabellen/configuratie of kolom namen willen verwijderen, of de grootte van de kolom gegevens willen verkleinen.

Verwante documenten:

https://www.cisco.com/c/en/us/support/docs/customer-collaboration/unified-contact-center-enterprise/116215-configure-dblookup-00.html