Arbetsflöde för databasrensning database-cleanup-workflow
Introduktion introduction
Med arbetsflödet Database cleanup som är tillgängligt via noden Administration > Production > Technical workflows kan du ta bort föråldrade data för att undvika exponentiell tillväxt i databasen. Arbetsflödet utlöses automatiskt utan användaråtgärder.
Konfiguration configuration
Databasrensningen är konfigurerad på två nivåer: i arbetsflödets schemaläggare och i distributionsguiden.
Arbetsflödesplanerare the-scheduler
Som standard är arbetsflödet Database cleanup konfigurerat att starta varje dag kl. 4AM. Med schemaläggaren kan du ändra arbetsflödets utlösande frekvens. Följande frekvenser är tillgängliga:
- Several times a day
- Daily
- Weekly
- Once
distributionsguide deployment-assistant
Med deployment wizard, som du kommer åt via menyn Tools > Advanced, kan du konfigurera hur länge data sparas för. Värdena anges i dagar. Om dessa värden inte ändras används standardvärdena i arbetsflödet.
Fälten i fönstret Purge of data sammanfaller med följande alternativ. Dessa används av vissa av de åtgärder som körs i arbetsflödet Database cleanup:
-
Konsoliderad spårning: NmsCleanup_TrackingStatPurgeDelay (se Rensa spårningsloggar)
-
Leveransloggar: NmsCleanup_BroadLogPurgeDelay (se Rensa leveransloggar)
-
Spårningsloggar: NmsCleanup_TrackingLogPurgeDelay (se Rensa spårningsloggar)
-
Borttagna leveranser: NmsCleanup_RecycledDeliveryPurgeDelay (se Rensa leveranser som ska tas bort eller återvinnas)
-
Importavvisanden: NmsCleanup_RejectsPurgeDelay (se Rensa nekanden som genererats av importer)
-
Besökarprofiler: NmsCleanup_VisitorPurgeDelay (se Rensning av besökare)
-
Erbjudandeförslag: NmsCleanup_PropositionPurgeDelay (se Rensa förslag)
note note NOTE Fältet Offer propositions är bara tillgängligt när modulen Interaktion är installerad. -
Händelser: NmsCleanup_EventPurgeDelay (se Rensa utgångna händelser)
-
Arkiverade händelser: NmsCleanup_EventHistoryPurgeDelay (se Rensa utgångna händelser)
note note NOTE Fälten Events och Archived events är bara tillgängliga om modulen Message Center är installerad. -
Granskningsspår: XtkCleanup_AuditTrailPurgeDelay (se Rensa granskningsspår)
Alla uppgifter som körs av arbetsflödet Database cleanup beskrivs i följande avsnitt.
Uppgifter som utförs i arbetsflödet för databasrensning tasks-carried-out-by-the-database-cleanup-workflow
På det datum och den tid som definieras i arbetsflödets schemaläggare (se Schemaläggaren) startar arbetsflödesmotorn databasrensningsprocessen. Rensningen av databasen ansluter till databasen och utför åtgärderna i den sekvens som visas nedan.
Listor som ska tas bort lists-to-delete-cleanup
Den första åtgärden som utförs av arbetsflödet Database cleanup tar bort alla grupper med deleteStatus != 0-attribut från NmsGroup. Poster som är länkade till de här grupperna och som finns i andra tabeller tas också bort.
-
Listor som ska tas bort återställs med följande SQL-fråga:
code language-sql SELECT iGroupId, sLabel, iType FROM NmsGroup WHERE iDeleteStatus <> 0 OR tsExpirationDate <= GetDate()
-
Varje lista har flera länkar till andra tabeller. Alla länkarna tas bort i grupp med följande fråga:
code language-sql DELETE FROM $(relatedTable) WHERE iGroupId=$(l) IN (SELECT iGroupId FROM $(relatedTable) WHERE iGroupId=$(l) LIMIT 5000)
där
$(relatedTable)
är en tabell som är relaterad till NmsGroup och$(l)
är listidentifieraren. -
När listan är en lista av typen List tas den associerade tabellen bort med följande fråga:
code language-sql DROP TABLE grp$(l)
-
Alla Select-typlistor som återställs av åtgärden tas bort med följande fråga:
code language-sql DELETE FROM NmsGroup WHERE iGroupId=$(l)
där
$(l)
är listidentifieraren
Rensa leveranser som ska raderas eller återvinnas cleanup-of-deliveries-to-be-deleted-or-recycled
Den här aktiviteten rensar alla leveranser som ska tas bort eller återvinnas.
-
Arbetsflödet Database cleanup väljer alla leveranser för vilka fältet deleteStatus har värdet Yes eller Recycled och vars borttagningsdatum är tidigare än den period som definieras i fältet Deleted deliveries (NmsCleanup_RecycledDeliveryPurgeDelay) i distributionsguiden. Mer information finns i distributionsguiden. Perioden beräknas i relation till aktuellt serverdatum.
-
För varje server med mellanleverantörer väljer aktiviteten listan över leveranser som ska tas bort.
-
Arbetsflödet Database cleanup tar bort leveransloggar, bilagor, information om spegelsidor och alla andra relaterade data.
-
Innan leveransen tas bort rensas länkad information från följande tabeller bort:
-
I tabellen för uteslutning av leverans (NmsDlvExclusion) används följande fråga:
code language-sql DELETE FROM NmsDlvExclusion WHERE iDeliveryId=$(l)
där $(l) är identifieraren för leveransen.
-
I kupongtabellen (NmsCouponValue) används följande fråga (med massborttagningar):
code language-sql DELETE FROM NmsCouponValue WHERE iMessageId IN (SELECT iMessageId FROM NmsCouponValue WHERE EXISTS (SELECT B.iBroadLogId FROM $(BroadLogTableName) B WHERE B.iDeliveryId = $(l) AND B.iBroadLogId = iMessageId ) LIMIT 5000)
där
$(l)
är leveransens identifierare. -
I leveransloggtabellerna (NmsBroadlogXx) utförs massborttagningar i grupper om 20 000 poster.
-
I offertförslagstabellerna (NmsPropositionXx) utförs massborttagningar i grupper om 20 000 poster.
-
I spårningsloggtabellerna (NmsTrackinglogXx) utförs massborttagningar i grupper om 20 000 poster.
-
I leveransfragmenttabellen (NmsDeliveryPart) utförs massborttagningar i grupper om 500 000 poster. Det här registret innehåller information om personalisering för de meddelanden som återstår att leverera.
-
I spegelsidans datagragmenttabell (NmsMirrorPageInfo) utförs massborttagningar i grupper om 20 000 poster för utgångna leveransdelar och för avslutade eller annullerade delar. Den här tabellen innehåller personaliseringsinformation om alla meddelanden som används för att generera spegelsidor.
-
I söktabellen med spegelsidor (NmsMirrorPageSearch) utförs massborttagningar i grupper om 20 000 poster. Det här registret är ett sökindex som ger åtkomst till anpassningsinformation som lagras i tabellen NmsMirrorPageInfo .
-
I loggtabellen för gruppbearbetning (XtkJobLog) utförs massborttagningar i grupper om 20 000 poster. Det här registret innehåller loggen över leveranser som ska tas bort.
-
I URL-spårningstabellen för leverans (NmsTrackingUrl) används följande fråga:
code language-sql DELETE FROM NmsTrackingUrl WHERE iDeliveryId=$(l)
där
$(l)
är leveransens identifierare.Den här tabellen innehåller de URL:er som finns i leveranserna som ska tas bort för att aktivera spårning av dem.
-
-
Leveransen tas bort från leveranstabellen (NmsDelivery):
code language-sql DELETE FROM NmsDelivery WHERE iDeliveryId = $(l)
där
$(l)
är leveransens identifierare.
Leveranser med medelhög källkod deliveries-using-mid-sourcing
Arbetsflödet Database cleanup tar också bort leveranser på mellankällservern(erna).
-
För att göra detta kontrollerar arbetsflödet att varje leverans är inaktiv (baserat på dess status). Om en leverans är aktiv stoppas den innan den tas bort. Kontrollen utförs genom att följande fråga körs:
code language-sql SELECT iState FROM NmsDelivery WHERE iDeliveryId = $(l) AND iState <> 100;
där $(l) är identifieraren för leveransen.
-
Om statusvärdet är Start pending, In progress , Recovery pending , Recovery in progress , Pause requested , Pause in progress eller Paused (värden 51, 55, 61, 62, 71, 72, 75) stoppas leveransen och aktiviteten tömmer den länkade informationen.
Rensa utgångna leveranser cleanup-of-expired-deliveries
Den här aktiviteten stoppar leveranser vars giltighetsperiod har gått ut.
-
Arbetsflödet Database cleanup skapar en lista över leveranser som har upphört att gälla. Den här listan innehåller alla utgångna leveranser med en annan status än Finished samt nyligen stoppade leveranser med över 10 000 obearbetade meddelanden. Följande fråga används:
code language-sql SELECT iDeliveryId, iState FROM NmsDelivery WHERE iDeleteStatus=0 AND iIsModel=0 AND iDeliveryMode=1 AND ( (iState >= 51 AND iState < 85 AND tsValidity IS NOT NULL AND tsValidity < $(currentDate) ) OR (iState = 85 AND DateMinusDays(15) < tsLastModified AND iToDeliver - iProcessed >= 10000 ))
där
delivery mode 1
matchar läget Mass delivery matcharstate 51
läget Start pending,state 85
läget Stopped och det högsta antalet massuppdateringar av leveransloggar på leveransservern är 10 000. -
Arbetsflödet innehåller sedan en lista över nyligen utgångna leveranser som använder mellanleverantörer. Leveranser för vilka inga leveransloggar har återställts via servern med mellanlagring är undantagna.
Följande fråga används:
code language-sql SELECT iDeliveryId, tsValidity, iMidRemoteId, mData FROM NmsDelivery WHERE (iDeliveryMode = 4 AND (iState = 85 OR iState = 95) AND tsValidity IS NOT NULL AND (tsValidity < SubDays(GetDate() , 15) OR tsValidity < $(DateOfLastLogPullUp)) AND tsLastModified > SubDays(GetDate() , 15))
-
Följande fråga används för att identifiera om det externa kontot fortfarande är aktivt eller inte, för att filtrera leveranser efter datum:
code language-sql SELECT iExtAccountId FROM NmsExtAccount WHERE iActive<>0 AND sName=$(providerName)
-
I listan över utgångna leveranser växlar leveransloggar med statusen Pending, växlar till Delivery cancelled och alla leveranser i listan till Finished.
Följande frågor används:
code language-sql UPDATE $(BroadLogTableName) SET tsLastModified=$(curdate), iStatus=7, iMsgId=$(bl) WHERE iDeliveryId=$(dl) AND iStatus=6
där
$(curdate)
är det aktuella datumet för databasservern, är$(bl)
identifieraren för leveransloggmeddelandet,$(dl)
är leveransidentifieraren,delivery status 6
matchar Pending-statusen ochdelivery status 7
matchar Delivery cancelled-statusen.code language-sql UPDATE NmsDelivery SET iState = 95, tsLastModified = $(curdate), tsBroadEnd = tsValidity WHERE iDeliveryId = $(dl)
där
delivery state 95
matchar Finished-statusen och$(dl)
är leveransens identifierare. -
Alla fragment (deliveryParts) av föråldrade leveranser tas bort och alla föråldrade fragment av pågående meddelandeleveranser tas bort. Massborttagning används för båda dessa uppgifter.
Följande frågor används:
code language-sql DELETE FROM NmsDeliveryPart WHERE iDeliveryPartId IN (SELECT iDeliveryPartId FROM NmsDeliveryPart WHERE iDeliveryId IN (SELECT iDeliveryId FROM NmsDelivery WHERE iState=95 OR iState=85) LIMIT 5000)
code language-sql DELETE FROM NmsDeliveryPart WHERE iDeliveryPartId IN (SELECT iDeliveryPartId FROM NmsDeliveryPart WHERE tsValidity < $(curDate) LIMIT 500000)
där
delivery state 95
matchar statusen Finished matchardelivery state 85
statusen Stopped och$(curDate)
är det aktuella serverdatumet.
Rensa spegelsidor cleanup-of-mirror-pages
Den här uppgiften tar bort de webbresurser (spegelsidor) som används av leveranser.
-
Först och främst återställs listan över leveranser som ska rensas med följande fråga:
code language-sql SELECT iDeliveryId, iNeedMirrorPage FROM NmsDelivery WHERE iWebResPurged = 0 AND tsWebValidity IS NOT NULL AND tsWebValidity < $(curdate)
där
$(curDate)
är aktuellt serverdatum. -
Tabellen NmsMirrorPageInfo rensas, om det behövs med hjälp av identifieraren för den tidigare återskapade leveransen. Massborttagning används för att generera följande frågor:
code language-sql DELETE FROM NmsMirrorPageInfo WHERE iMirrorPageInfoId IN (SELECT iMirrorPageInfoId FROM NmsMirrorPageInfo WHERE iDeliveryId = $(dl)) LIMIT 5000
code language-sql DELETE FROM NmsMirrorPageSearch WHERE iMessageId IN (SELECT iMessageId FROM NmsMirrorPageSearch WHERE iDeliveryId = $(dl)) LIMIT 5000
där
$(dl)
är leveransens identifierare. -
En post läggs sedan till i leveransloggen.
-
Rensade leveranser identifieras sedan så att de inte behöver bearbetas igen senare. Följande fråga körs:
code language-sql UPDATE NmsDelivery SET iWebResPurged = 1 WHERE iDeliveryId IN ($(strIn))
där
$(strIn)
är listan över leveransidentifierare.
Rensa arbetsregister cleanup-of-work-tables
Den här uppgiften tar bort alla arbetstabeller från databasen som matchar leveranser vars status är Being edited, Stopped eller Deleted.
-
Listan med tabeller med namn som börjar med wkDlv_ återställs först med följande fråga (postgresql):
code language-sql SELECT relname FROM pg_class WHERE relname LIKE Lower('wkDlv_%') ESCAPE E'\\' AND relkind IN ('r','v') AND pg_get_userbyid(relowner)<>'postgres'
-
Tabellerna som används av pågående arbetsflöden exkluderas sedan. För att göra detta återställs listan över pågående leveranser med följande fråga:
code language-sql SELECT iDeliveryId FROM NmsDelivery WHERE iDeliveryId<>0 AND iDeleteStatus=0 AND iState NOT IN (0,85,100);
där
0
är det värde som matchar Being edited leveransstatus, matchar85
Stopped-status och100
Deleted-status. -
Tabeller som inte längre används tas bort med följande fråga:
code language-sql DROP TABLE wkDlv_15487_1;
Rensa nekanden som genererats av import cleanup-of-rejects-generated-by-imports-
I det här steget kan du ta bort poster som inte bearbetades av alla data under importen.
-
Massborttagning utförs i tabellen XtkReject med följande fråga:
code language-sql DELETE FROM XtkReject WHERE iRejectId IN (SELECT iRejectId FROM XtkReject WHERE tsLog < $(curDate)) LIMIT $(l)
där
$(curDate)
är det aktuella serverdatumet från vilket vi subtraherar den period som definierats för alternativet NmsCleanup_RejectsPurgeDelay (se distributionsguiden) och$(l)
är det högsta antalet poster som kan masstas bort. -
Alla ignorerade objekt tas sedan bort med följande fråga:
code language-sql DELETE FROM XtkReject WHERE iJobId NOT IN (SELECT iJobId FROM XtkJob)
Rensa arbetsflödesinstanser cleanup-of-workflow-instances
Den här aktiviteten rensar varje arbetsflödesinstans med dess identifierare (lWorkflowId) och historik (lHistory). Den tar bort inaktiva tabeller genom att köra arbetstabellrensningsåtgärden igen. Rensningen tar också bort alla överblivna arbetstabeller (wkf% och wkfhisto%) i borttagna arbetsflöden.
-
Följande fråga används för att återställa listan med arbetsflöden som ska tas bort:
code language-sql SELECT iWorkflowId, iHistory FROM XtkWorkflow WHERE iWorkflowId<>0
-
Den här frågan genererar en lista över arbetsflöden som kommer att användas för att ta bort alla länkade loggar, slutförda uppgifter och slutförda händelser med hjälp av följande frågor:
code language-sql DELETE FROM XtkWorkflowLog WHERE iWorkflowId=$(lworkflow) AND tsLog < DateMinusDays($(lhistory))
code language-sql DELETE FROM XtkWorkflowTask WHERE iWorkflowId=$(lworkflow) AND iStatus<>0 AND tsCompletion < DateMinusDays($(lhistory))
code language-sql DELETE FROM XtkWorkflowEvent WHERE iWorkflowId=$(l) AND iStatus>2 AND tsProcessing < DateMinusDays($(lHistory))
där
$(lworkflow)
är arbetsflödets identifierare och$(lhistory)
är historikens identifierare. -
Alla oanvända tabeller tas bort. För detta ändamål samlas alla tabeller in tack vare en wkf% -typmask med hjälp av följande fråga (postgresql):
code language-sql SELECT relname FROM pg_class WHERE relname LIKE Lower('wkf%') ESCAPE E'\\' AND relkind IN ('r','v') AND pg_get_userbyid(relowner)<>'postgres'
-
Därefter exkluderas alla tabeller som används av en väntande arbetsflödesinstans. Listan över aktiva arbetsflöden återställs med följande fråga:
code language-sql SELECT iWorkflowId FROM XtkWorkflow WHERE iWorkflowId<>0 AND iState<>20
-
Varje arbetsflödes-ID återställs sedan för att hitta namnet på tabellerna som används i pågående arbetsflöden. Dessa namn tas inte med i listan över tidigare återställda tabeller.
-
Aktivitetshistoriktabeller av typen "inkrementell fråga" exkluderas med hjälp av följande frågor:
code language-sql SELECT relname FROM pg_class WHERE relname LIKE Lower('wkfhisto%') ESCAPE E'\\' AND relkind IN ('r','v') AND pg_get_userbyid(relowner)<>'postgres'
code language-sql SELECT iWorkflowId FROM XtkWorkflow WHERE iWorkflowId IN ($(strCondition))
där
$(strcondition)
är listan med tabeller som matchar masken wkfhisto%. -
De återstående tabellerna tas bort med följande fråga:
code language-sql DROP TABLE wkf15487_12;
Rensa arbetsflödesinloggningar cleanup-of-workflow-logins
Den här uppgiften tar bort arbetsflödesinloggningar med följande fråga:
DELETE FROM XtkWorkflowLogin WHERE iWorkflowId NOT IN (SELECT iWorkflowId FROM XtkWorkflow)
Rensa tabeller över överblivna arbeten cleanup-of-orphan-work-tables
Den här aktiviteten tar bort överblivna arbetsregister som är länkade till grupper. I tabellen NmsGroup lagras de grupper som ska rensas (med en annan typ än 0). Prefixet för tabellnamnen är grp. Följande fråga används för att identifiera de grupper som ska rensas:
SELECT iGroupId FROM NmsGroup WHERE iType>0"
Rensa besökare cleanup-of-visitors
Den här uppgiften tar bort inaktuella poster från besökstabellen med massborttagning. Föråldrade poster är poster för vilka den senaste ändringen är tidigare än den bevaringsperiod som har definierats i distributionsguiden (se distributionsguiden). Följande fråga används:
DELETE FROM NmsVisitor WHERE iVisitorId IN (SELECT iVisitorId FROM NmsVisitor WHERE iRecipientId = 0 AND tsLastModified < AddDays(GetDate(), -30) AND iOrigin = 0 LIMIT 20000)
där $(tsDate)
är det aktuella serverdatumet, från vilket vi subtraherar den period som definierats för alternativet NmsCleanup_VisitorPurgeDelay.
Rensa NPAI cleanup-of-npai
Med den här aktiviteten kan du ta bort poster som matchar giltiga adresser från tabellen NmsAddress. Följande fråga används för att utföra massborttagning:
DELETE FROM NmsAddress WHERE iAddressId IN (SELECT iAddressId FROM NmsAddress WHERE iStatus=2 AND tsLastModified < $(tsDate1) AND tsLastModified >= $(tsDate2) LIMIT 5000)
där status 2
matchar statusen Valid är $(tsDate1)
det aktuella serverdatumet och $(tsDate2)
matchar alternativet NmsCleanup_LastCleanup.
Rensa prenumerationer cleanup-of-subscriptions-
Den här aktiviteten rensar alla prenumerationer som tagits bort av användaren från tabellen NmsSubscription med massborttagning. Följande fråga används:
DELETE FROM NmsSubscription WHERE iDeleteStatus <>0
Rensa spårningsloggar cleanup-of-tracking-logs
Den här uppgiften tar bort inaktuella poster från loggtabellerna för spårning och webbspårning. Föråldrade poster är poster som är tidigare än den bevarandeperiod som har definierats i distributionsguiden (se distributionsguiden).
-
Först återställs listan med spårningsloggtabeller med följande fråga:
code language-sql SELECT distinct(sTrackingLogSchema) FROM NmsDeliveryMapping WHERE sTrackingLogSchema IS NOT NULL;
-
Massborttagning används för att rensa alla tabeller i listan med tidigare återskapade tabeller. Följande fråga används:
code language-sql DELETE FROM NmsTrackingLogRcp WHERE iTrackingLogId IN (SELECT iTrackingLogId FROM NmsTrackingLogRcp WHERE tsLog < $(tsDate) LIMIT 5000)
där
$(tsDate)
är det aktuella serverdatumet från vilket vi subtraherar den period som definierats för alternativet NmsCleanup_TrackingLogPurgeDelay. -
Registret för spårningsstatistik rensas med massborttagning. Följande fråga används:
code language-sql DELETE FROM NmsTrackingStats WHERE iTrackingStatsId IN (SELECT iTrackingStatsId FROM NmsTrackingStats WHERE tsStart < $(tsDate) LIMIT 5000)
där
$(tsDate)
är det aktuella serverdatumet från vilket vi subtraherar den period som definierats för alternativet NmsCleanup_TrackingStatPurgeDelay.
Rensa leveransloggar cleanup-of-delivery-logs
Med den här uppgiften kan du rensa leveransloggarna som lagras i olika tabeller.
-
För detta ändamål återställs listan med leveransloggscheman med följande fråga:
code language-sql SELECT distinct(sBroadLogSchema) FROM NmsDeliveryMapping WHERE sBroadLogSchema IS NOT NULL UNION SELECT distinct(sBroadLogExclSchema) FROM NmsDeliveryMapping WHERE sBroadLogExclSchema IS NOT NULL
-
När du använder mellanleverantörer refereras inte tabellen NmsBroadLogMid i leveransmappningar. Schemat nms:broadLogMid läggs till i listan som återställdes av föregående fråga.
-
Arbetsflödet för databasrensning rensar sedan bort föråldrade data från tidigare återställda tabeller. Följande fråga används:
code language-sql DELETE FROM $(tableName) WHERE iBroadLogId IN (SELECT iBroadLogId FROM $(tableName) WHERE tsLastModified < $(option) LIMIT 5000)
där
$(tableName)
är namnet på varje tabell i schemalistan och$(option)
är det datum som definierats för alternativet NmsCleanup_BroadLogPurgeDelay (se distributionsguiden). -
Arbetsflödet kontrollerar slutligen om tabellen NmsProviderMsgId finns. Om så är fallet tas alla föråldrade data bort med följande fråga:
code language-sql DELETE FROM NmsProviderMsgId WHERE iBroadLogId IN (SELECT iBroadLogId FROM NmsProviderMsgId WHERE tsCreated < $(option) LIMIT 5000)
där
$(option)
matchar datumet som definierats för alternativet NmsCleanup_BroadLogPurgeDelay (se distributionsguiden).
Rensa tabellen NmsEmailErrorStat cleanup-of-the-nmsemailerrorstat-table-
Den här aktiviteten rensar tabellen NmsEmailErrorStat. Huvudprogrammet (coalesceErrors) definierar två datum:
- Startdatum: datum för nästa process som matchar alternativet NmsLastErrorStatusCoalesce eller det senaste datumet i tabellen.
- Slutdatum: aktuellt serverdatum.
Om startdatumet är senare än eller lika med slutdatumet utförs ingen process. I det här fallet visas meddelandet coalesceUpToDate .
Om startdatumet är tidigare än slutdatumet rensas tabellen NmsEmailErrorStat.
Det totala antalet fel i tabellen NmsEmailErrorStat mellan start- och slutdatum återställs med följande fråga:
SELECT COUNT(*) FROM NmsEmailErrorStat WHERE tsDate>= $(start) AND tsDate< $(end)
där $end
och $start
är start- och slutdatum som definierats tidigare.
Om summan är större än 0:
-
Följande fråga utförs för att bara hålla fel utanför ett visst tröskelvärde (vilket är lika med 20):
code language-sql SELECT iMXIP, iPublicId, SUM(iTotalConnections), SUM(iTotalErrors), SUM(iMessageErrors), SUM(iAbortedConnections), SUM(iFailedConnections), SUM(iRefusedConnections), SUM(iTimeoutConnections) FROM NmsEmailErrorStat WHERE tsDate>=$(start ) AND tsDate<$(end ) GROUP BY iMXIP, iPublicId HAVING SUM(iTotalErrors) >= 20
-
Meddelandet coalescingErrors visas.
-
En ny anslutning skapas för att ta bort alla fel som inträffade mellan start- och slutdatumet. Följande fråga används:
code language-sql DELETE FROM NmsEmailErrorStat WHERE tsDate>=$(start) AND tsDate<$(end)
-
Varje fel sparas i tabellen NmsEmailErrorStat med följande fråga:
code language-sql INSERT INTO NmsEmailErrorStat(iMXIP, iPublicId, tsDate, iTotalConnections, iTotalErrors, iTimeoutConnections, iRefusedConnections, iAbortedConnections, iFailedConnections, iMessageErrors) VALUES($(lmxip ), $(lpublicId ), $(tsstart ), $(lconnections ), $(lconnectionErrors ),$(ltimeoutConnections ), $(lrefusedConnections ), $(labortedConnections ), $(lfailedConnections ), $(lmessageErrors))
där varje variabel matchar ett värde som återställdes av föregående fråga.
-
Variabeln start uppdateras med värdena från föregående process för att slutföra slingan.
Slingan och aktivitetsstoppet.
Rensningar utförs på tabellerna NmsEmailError och cleanupNmsMxDomain.
Rensning av tabellen NmsEmailError cleanup-of-the-nmsemailerror-table-
Följande fråga används:
DELETE FROM NmsEmailError WHERE iMXIP NOT IN (SELECT DISTINCT iMXIP FROM NmsEmailErrorStat)
Den här frågan tar bort alla rader utan länkade poster i NmsEmailErrorStat från tabellen NmsEmailError.
Rensa NmsMxDomain-tabellen cleanup-of-the-nmsmxdomain-table-
Följande fråga används:
DELETE FROM NmsMxDomain WHERE iMXIP NOT IN (SELECT DISTINCT iMXIP FROM NmsEmailErrorStat)
Den här frågan tar bort alla rader utan en länkad post i tabellen NmsEmailErrorStat från tabellen NmsMxDomain.
Rensa förslag cleanup-of-propositions
Om modulen Interaction är installerad körs den här aktiviteten för att rensa tabellerna NmsPropositionXx .
Listan med förslagstabeller återställs och massborttagning utförs för var och en av dem med hjälp av följande fråga:
DELETE FROM NmsPropositionXxx WHERE iPropositionId IN (SELECT iPropositionId FROM NmsPropositionXxx WHERE tsLastModified < $(option) LIMIT 5000)
där $(option)
är det datum som definierats för alternativet NmsCleanup_PropositionPurgeDelay (se distributionsguiden).
Rensa simuleringstabeller cleanup-of-simulation-tables
Den här aktiviteten rensar överblivna simuleringstabeller (som inte längre är länkade till en erbjudandesimulering eller en leveranssimulering).
-
Följande fråga används för att återställa listan med simuleringar som behöver rensas:
code language-sql SELECT iSimulationId FROM NmsSimulation WHERE iSimulationId<>0
-
Namnet på de tabeller som ska tas bort består av prefixet wkSimu_ följt av simuleringens identifierare (till exempel: wkSimu_456831_aggr):
code language-sql DROP TABLE wkSimu_456831_aggr
Rensa granskningsspår cleanup-of-audit-trail
Följande fråga används:
DELETE FROM XtkAudit WHERE tsChanged < $(tsDate)
där $(tsDate) är det aktuella serverdatumet från vilket den period som definierats för alternativet XtkCleanup_AuditTrailPurgeDelay subtraheras.
Rensa Nmsaddress cleanup-of-nmsaddress
Följande fråga används:
DELETE FROM NmsAddress WHERE iAddressId IN (SELECT iAddressId FROM NmsAddress WHERE iStatus=STATUS_QUARANTINE AND tsLastModified < $(NmsCleanup_AppSubscriptionRcpPurgeDelay + 5d) AND iType IN (MESSAGETYPE_IOS, MESSAGETYPE_ANDROID ) LIMIT 5000)
Den här frågan tar bort alla poster som är relaterade till iOS och Android.
Statistikuppdatering och lagringsoptimering statistics-update
Med alternativet XtkCleanup_NoStats kan du styra beteendet för lagringsoptimeringssteget i rensningsarbetsflödet.
Om alternativet XtkCleanup_NoStats inte finns, eller om värdet är 0, kommer detta att köra lagringsoptimeringen i utförligt läge (VACUUM VERBOSE ANALYZE) på PostgreSQL och uppdatera statistik för alla andra databaser. Kontrollera PostgreSQL-loggarna för att se till att kommandot körs. VACUUM kommer att mata ut rader i formatet: INFO: vacuuming "public.nmsactivecontact"
och ANALYZE kommer att mata ut rader i formatet: INFO: analyzing "public.nmsactivecontact"
.
Om värdet för alternativet är 1 utförs ingen statistikuppdatering i någon databas. Följande loggrad visas i arbetsflödesloggarna: Option 'XtkCleanup_NoStats' is set to '1'
.
Om värdet för alternativet är 2 körs lagringsanalysen i detaljerat läge (ANALYZE VERBOSE) på PostgreSQL och statistik uppdateras för alla andra databaser. Kontrollera PostgreSQL-loggarna för att se till att kommandot körs. ANALYZE kommer att visa rader i formatet: INFO: analyzing "public.nmsactivecontact"
.
Rensning av prenumeration (NMAC) subscription-cleanup--nmac-
Den här uppgiften tar bort alla prenumerationer som rör borttagna tjänster eller mobilprogram.
Följande fråga används för att återställa listan med sändningsscheman:
SELECT distinct(sBroadLogSchema) FROM NmsDeliveryMapping WHERE sBroadLogSchema IS NOT NULL
Aktiviteten återställer sedan namnen på de tabeller som är länkade till länken appSubscription och tar bort dessa tabeller.
Det här rensningsarbetsflödet tar också bort alla poster där det är inaktiverat = 1 som inte har uppdaterats sedan den tid som angetts i alternativet NmsCleanup_AppSubscriptionRcpPurgeDelay .
Rensar sessionsinformation cleansing-session-information
Den här aktiviteten tar bort information från tabellen sessionInfo och följande fråga används:
DELETE FROM XtkSessionInfo WHERE tsexpiration < $(curdate)
Rensar utgångna händelser cleansing-expired-events
Den här aktiviteten rensar de händelser som tas emot och lagras på körningsinstanserna och de händelser som arkiveras på en kontrollinstans.
Rensningsreaktioner cleansing-reactions
Den här aktiviteten rensar de reaktioner (tabellen NmsRemaMatchRcp) där själva hypoteserna har tagits bort.