O Database cleanup acessível por meio do Administration > Production > Technical workflows , permite excluir dados obsoletos para evitar o crescimento exponencial do banco de dados. O workflow é acionado automaticamente sem a intervenção do usuário.
A limpeza do banco de dados é configurada em dois níveis: no scheduler de workflow e no assistente de implantação.
Para saber mais sobre o scheduler, consulte esta seção.
Por padrão, a variável Database cleanup O fluxo de trabalho é configurado para iniciar diariamente às 4:00. O scheduler permite alterar a frequência de acionamento do workflow. As seguintes frequências estão disponíveis:
Para Database cleanup para iniciar na data e hora definidas no scheduler, o mecanismo de workflow (wfserver) deve ser iniciado.
O Deployment wizard, acessado pelo Tools > Advanced permite configurar por quanto tempo os dados são salvos. Os valores são expressos em dias. Se esses valores não forem alterados, o workflow usará os valores padrão.
Os campos do Purge of data coincidir com as seguintes opções. Eles são usados por algumas das tarefas executadas pela variável Database cleanup fluxo de trabalho:
Rastreamento consolidado: NmsCleanup_TrackingStatPurgeDelay (consulte Limpeza de logs de rastreamento)
Logs do delivery: NmsCleanup_BroadLogPurgeDelay (consulte Limpeza de logs do delivery)
Logs de rastreamento: NmsCleanup_TrackingLogPurgeDelay (consulte Limpeza de logs de rastreamento)
Deliveries excluídos: NmsCleanup_RecycledDeliveryPurgeDelay (consulte Limpeza de entregas a eliminar ou reciclar)
Importar rejeições: NmsCleanup_RejectsPurgeDelay (consulte Limpeza de rejeições geradas por importações)
Perfis do visitante: NmsCleanup_VisitorPurgeDelay (consulte Limpeza de visitantes)
Apresentações da oferta: NmsCleanup_PropositionPurgeDelay (consulte Limpeza de propostas)
O Offer propositions só estará disponível quando a variável Interação está instalado.
Eventos: NmsCleanup_EventPurgeDelay (consulte Limpar eventos expirados)
Eventos arquivados: NmsCleanup_EventHistoPurgeDelay (consulte Limpar eventos expirados)
O Events e Archived events só estarão disponíveis se a variável Centro de mensagens está instalado.
Trilha de auditoria: XtkCleanup_AuditTrailPurgeDelay (consulte Limpeza da trilha de auditoria)
Todas as tarefas executadas pela Database cleanup Os workflows são descritos na seção a seguir.
Na data e hora definidas no scheduler de workflow (consulte O agendador), o mecanismo de workflow inicia o processo de limpeza do banco de dados. A limpeza do banco de dados se conecta ao banco de dados e executa as tarefas na sequência mostrada abaixo.
Se uma dessas tarefas falhar, as próximas não serão executadas.
Consultas SQL com um LIMITE são executadas repetidamente até que todas as informações sejam processadas.
A primeira tarefa executada pela Database cleanup O fluxo de trabalho exclui todos os grupos com a variável deleteStatus != 0 do NmsGroup. Os registros vinculados a esses grupos e que existem em outras tabelas também são excluídos.
As listas a serem excluídas são recuperadas usando a seguinte consulta SQL:
SELECT iGroupId, sLabel, iType FROM NmsGroup WHERE iDeleteStatus <> 0 OR tsExpirationDate <= GetDate()
Cada lista tem vários links para outras tabelas. Todos esses links são excluídos em massa usando a seguinte query:
DELETE FROM $(relatedTable) WHERE iGroupId=$(l) IN (SELECT iGroupId FROM $(relatedTable) WHERE iGroupId=$(l) LIMIT 5000)
em que $(relatedTable)
é uma tabela relacionada a NmsGroup e $(l)
é o identificador da lista.
Quando a lista é do tipo "Lista", a tabela associada é excluída usando a seguinte query:
DROP TABLE grp$(l)
Cada Selecionar A lista do tipo recuperada pela operação é excluída usando a seguinte consulta:
DELETE FROM NmsGroup WHERE iGroupId=$(l)
em que $(l)
é o identificador da lista
Essa tarefa limpa todos os deliveries a serem excluídos ou reciclados.
O Database cleanup O workflow seleciona todos os deliveries para os quais a variável deleteStatus tem o valor Yes ou Recycled e cuja data de exclusão é anterior ao período definido no Deleted deliveries (NmsCleanup_RecycledDeliveryPurgeDelay) do assistente de implantação. Para obter mais informações, consulte Assistente de implantação. Esse período é calculado em relação à data atual do servidor.
Para cada servidor mid-sourcing, a tarefa seleciona a lista de deliveries a serem excluídos.
O Database cleanup O workflow exclui logs de delivery, anexos, informações de mirror page e todos os outros dados relacionados.
Antes de excluir o delivery para sempre, o workflow limpa as informações vinculadas das seguintes tabelas:
Na tabela de exclusão de delivery (NmsDlvExclusion), a seguinte query é usada:
DELETE FROM NmsDlvExclusion WHERE iDeliveryId=$(l)
em que $(l) é o identificador do delivery.
Na tabela de cupom (NmsCouponValue), é usada a seguinte consulta (com exclusões em massa):
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)
em que $(l)
é o identificador do delivery.
Nas tabelas de log do delivery (NmsBroadlogXxx), as exclusões em massa são executadas em lotes de 20.000 registros.
Nas tabelas de apresentação de oferta (NmsPropositionXxx), as exclusões em massa são executadas em lotes de 20.000 registros.
Nas tabelas de log de rastreamento (NmsTrackinglogXxx), as exclusões em massa são executadas em lotes de 20.000 registros.
Na tabela de fragmentos do delivery (NmsDeliveryPart), as exclusões em massa são executadas em lotes de 500.000 registros. Esta tabela contém informações de personalização das mensagens restantes a serem entregues.
Na tabela de fragmentos de dados da mirror page (NmsMirrorPageInfo), as exclusões em massa são executadas em lotes de 20.000 registros para partes de delivery expiradas e para partes concluídas ou canceladas. Esta tabela contém informações de personalização de todas as mensagens usadas para gerar mirror pages.
Na tabela de pesquisa da mirror page (NmsMirrorPageSearch), as exclusões em massa são executadas em lotes de 20.000 registros. Esta tabela é um índice de pesquisa que fornece acesso às informações de personalização armazenadas no NmsMirrorPageInfo tabela.
Na tabela de log do processo em lote (XtkJobLog), as exclusões em massa são executadas em lotes de 20.000 registros. Esta tabela contém o log de deliveries a serem excluídos.
Na tabela de rastreamento do URL de delivery (NmsTrackingUrl), a seguinte query é usada:
DELETE FROM NmsTrackingUrl WHERE iDeliveryId=$(l)
em que $(l)
é o identificador do delivery.
Esta tabela contém os URLs encontrados nos deliveries a serem excluídos para permitir o rastreamento.
O delivery é excluído da tabela de delivery (NmsDelivery):
DELETE FROM NmsDelivery WHERE iDeliveryId = $(l)
em que $(l)
é o identificador do delivery.
O Database cleanup O workflow também exclui deliveries no(s) servidor(es) mid-sourcing.
Para fazer isso, o workflow verifica se cada delivery está inativo (com base em seu status). Se um delivery estiver ativo, ele será interrompido antes de ser excluído. A verificação é realizada executando a seguinte consulta:
SELECT iState FROM NmsDelivery WHERE iDeliveryId = $(l) AND iState <> 100;
em que $(l) é o identificador do delivery.
Se o valor do status for Start pending , In progress , Recovery pending , Recovery in progress , Pause requested , Pause in progress ou Paused (valores 51, 55, 61, 62, 71, 72, 75), o delivery é interrompido e a tarefa limpa as informações vinculadas.
Esta tarefa interrompe os deliveries cujo período de validade expirou.
O Database cleanup O workflow cria a lista de deliveries que expiraram. Esta lista inclui todos os deliveries expirados com um status diferente de Finished , bem como deliveries interrompidos recentemente com mais de 10.000 mensagens não processadas. A seguinte query é usada:
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 ))
em que delivery mode 1
corresponde ao Mass delivery modo, state 51
corresponde ao Start pending estado, state 85
corresponde ao Stopped , e o maior número de logs do delivery atualizados em massa no servidor de delivery é igual a 10.000.
O workflow então inclui a lista de deliveries expirados recentemente que usam mid-sourcing. Os deliveries para os quais nenhum log de delivery foi recuperado por meio do servidor mid-sourcing são excluídos.
A seguinte query é usada:
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))
A query a seguir é usada para detectar se a conta externa ainda está ativa ou não, para filtrar os deliveries por data:
SELECT iExtAccountId FROM NmsExtAccount WHERE iActive<>0 AND sName=$(providerName)
Na lista de deliveries expirados, logs do delivery cujo status é Pending , alterne para Delivery cancelled e todos os deliveries nesta lista mudam para Finished .
As seguintes consultas são usadas:
UPDATE $(BroadLogTableName) SET tsLastModified=$(curdate), iStatus=7, iMsgId=$(bl) WHERE iDeliveryId=$(dl) AND iStatus=6
em que $(curdate)
é a data atual do servidor de banco de dados, $(bl)
é o identificador da mensagem de logs do delivery, $(dl)
é o identificador de delivery, delivery status 6
corresponde ao Pending status e delivery status 7
corresponde ao Delivery cancelled status.
UPDATE NmsDelivery SET iState = 95, tsLastModified = $(curdate), tsBroadEnd = tsValidity WHERE iDeliveryId = $(dl)
em que delivery state 95
corresponde ao Finished status e $(dl)
é o identificador do delivery.
Todos os fragmentos (deliveryParts) de deliveries obsoletos são excluídos e todos os fragmentos obsoletos de deliveries de notificação em andamento são excluídos. A exclusão em massa é usada para ambas as tarefas.
As seguintes consultas são usadas:
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)
DELETE FROM NmsDeliveryPart WHERE iDeliveryPartId IN (SELECT iDeliveryPartId FROM NmsDeliveryPart WHERE tsValidity < $(curDate) LIMIT 500000)
em que delivery state 95
corresponde ao Finished status, delivery state 85
corresponde ao Stopped status e $(curDate)
é a data atual do servidor.
Essa tarefa exclui os recursos da Web (mirror pages) usados pelos deliveries.
Primeiro, a lista de deliveries a serem removidos é recuperada usando a seguinte query:
SELECT iDeliveryId, iNeedMirrorPage FROM NmsDelivery WHERE iWebResPurged = 0 AND tsWebValidity IS NOT NULL AND tsWebValidity < $(curdate)
em que $(curDate)
é a data atual do servidor.
O NmsMirrorPageInfo é então removida, se necessário usando o identificador do delivery recuperado anteriormente. A exclusão em massa é usada para gerar as seguintes consultas:
DELETE FROM NmsMirrorPageInfo WHERE iMirrorPageInfoId IN (SELECT iMirrorPageInfoId FROM NmsMirrorPageInfo WHERE iDeliveryId = $(dl)) LIMIT 5000
DELETE FROM NmsMirrorPageSearch WHERE iMessageId IN (SELECT iMessageId FROM NmsMirrorPageSearch WHERE iDeliveryId = $(dl)) LIMIT 5000
em que $(dl)
é o identificador do delivery.
Uma entrada é então adicionada ao log de delivery.
Os deliveries removidos são identificados, para evitar a necessidade de reprocessá-los posteriormente. A seguinte query é executada:
UPDATE NmsDelivery SET iWebResPurged = 1 WHERE iDeliveryId IN ($(strIn))
em que $(strIn)
é a lista de identificadores de delivery.
Essa tarefa é excluída do banco de dados, todas as tabelas de trabalho que correspondem aos deliveries cujo status é Being edited , Stopped ou Deleted .
A lista de tabelas com nomes começando com wkDlv_ é recuperada primeiro com a seguinte query (postgresql):
SELECT relname FROM pg_class WHERE relname LIKE Lower('wkDlv_') ESCAPE E'\\' AND relkind IN ('r','v') AND pg_get_userbyid(relowner)<>'postgres'
As tabelas usadas pelos workflows em andamento são excluídas. Para fazer isso, a lista de deliveries em andamento é recuperada usando a seguinte query:
SELECT iDeliveryId FROM NmsDelivery WHERE iDeliveryId<>0 AND iDeleteStatus=0 AND iState NOT IN (0,85,100);
em que 0
é o valor que corresponde a Being edited status do delivery, 85
corresponde ao Stopped status e 100
corresponde ao Deleted status.
As tabelas que não forem mais usadas serão excluídas usando a seguinte query:
DROP TABLE wkDlv_15487_1;
Esta etapa permite excluir registros para os quais todos os dados não foram processados durante a importação.
A exclusão em massa é realizada no XtkReject com a seguinte query:
DELETE FROM XtkReject WHERE iRejectId IN (SELECT iRejectId FROM XtkReject WHERE tsLog < $(curDate)) LIMIT $(l)
em que $(curDate)
é a data atual do servidor a partir da qual subtraímos o período definido para a variável NmsCleanup_RejectsPurgeDelay (consulte Assistente de implantação) e $(l)
é o número máximo de registros a eliminar em massa.
Todas as rejeições órfãs são excluídas usando a seguinte query:
DELETE FROM XtkReject WHERE iJobId NOT IN (SELECT iJobId FROM XtkJob)
Essa tarefa limpa cada instância de workflow usando seu identificador (lWorkflowId) e o histórico (lHistory). Ele exclui tabelas inativas executando a tarefa de limpeza da tabela de trabalho novamente. A limpeza também exclui todas as tabelas de trabalho órfãs (wkf% e wkfhisto%) dos fluxos de trabalho excluídos.
A frequência de limpeza do histórico é especificada para cada workflow no Histórico em dias (valor padrão de 30 dias). Este campo pode ser encontrado na variável Execução das propriedades do workflow. Para obter mais informações, consulte esta seção.
Para recuperar a lista de workflows a serem excluídos, a seguinte query é usada:
SELECT iWorkflowId, iHistory FROM XtkWorkflow WHERE iWorkflowId<>0
Esta query gera a lista de workflows que será usada para excluir todos os logs vinculados, tarefas concluídas e eventos concluídos, usando as seguintes queries:
DELETE FROM XtkWorkflowLog WHERE iWorkflowId=$(lworkflow) AND tsLog < DateMinusDays($(lhistory))
DELETE FROM XtkWorkflowTask WHERE iWorkflowId=$(lworkflow) AND iStatus<>0 AND tsCompletion < DateMinusDays($(lhistory))
DELETE FROM XtkWorkflowEvent WHERE iWorkflowId=$(l) AND iStatus>2 AND tsProcessing < DateMinusDays($(lHistory))
em que $(lworkflow)
é o identificador do workflow e $(lhistory)
é o identificador do histórico.
Todas as tabelas não utilizadas são excluídas. Para essa finalidade, todas as tabelas são coletadas graças a um wkf% digite a máscara usando a seguinte query (postgresql):
SELECT relname FROM pg_class WHERE relname LIKE Lower('wkf%') ESCAPE E'\\' AND relkind IN ('r','v') AND pg_get_userbyid(relowner)<>'postgres'
Em seguida, todas as tabelas usadas por uma instância de workflow pendente são excluídas. A lista de workflows ativos é recuperada usando a seguinte query:
SELECT iWorkflowId FROM XtkWorkflow WHERE iWorkflowId<>0 AND iState<>20
Cada identificador de workflow é então recuperado para localizar o nome das tabelas usadas pelos workflows em andamento. Esses nomes são excluídos da lista de tabelas recuperadas anteriormente.
As tabelas do histórico de atividades do tipo "query incremental" são excluídas usando os seguintes queries:
SELECT relname FROM pg_class WHERE relname LIKE Lower('wkfhisto%') ESCAPE E'\\' AND relkind IN ('r','v') AND pg_get_userbyid(relowner)<>'postgres'
SELECT iWorkflowId FROM XtkWorkflow WHERE iWorkflowId IN ($(strCondition))
em que $(strcondition)
é a lista de tabelas que corresponde à variável wkfhisto% máscara.
As tabelas restantes são excluídas usando a seguinte query:
DROP TABLE wkf15487_12;
Essa tarefa exclui os logons do workflow usando a seguinte query:
DELETE FROM XtkWorkflowLogin WHERE iWorkflowId NOT IN (SELECT iWorkflowId FROM XtkWorkflow)
Esta tarefa exclui tabelas de trabalho órfãs vinculadas a grupos. O NmsGroup A tabela armazena os grupos a serem limpos (com um tipo diferente de 0). O prefixo dos nomes da tabela é grp. Para identificar os grupos a serem limpos, a seguinte query é usada:
SELECT iGroupId FROM NmsGroup WHERE iType>0"
Essa tarefa exclui registros obsoletos da tabela do visitante usando exclusão em massa. Registros obsoletos são aqueles para os quais a última modificação é anterior ao período de conservação definido no assistente de implantação (consulte Assistente de implantação). A seguinte query é usada:
DELETE FROM NmsVisitor WHERE iVisitorId IN (SELECT iVisitorId FROM NmsVisitor WHERE iRecipientId = 0 AND tsLastModified < AddDays(GetDate(), -30) AND iOrigin = 0 LIMIT 20000)
em que $(tsDate)
é a data atual do servidor, a partir da qual subtraímos o período definido para a variável NmsCleanup_VisitorPurgeDelay opção.
Essa tarefa permite excluir registros que correspondem a endereços válidos do NmsAddress tabela. A consulta a seguir é usada para executar a exclusão em massa:
DELETE FROM NmsAddress WHERE iAddressId IN (SELECT iAddressId FROM NmsAddress WHERE iStatus=2 AND tsLastModified < $(tsDate1) AND tsLastModified >= $(tsDate2) LIMIT 5000)
em que status 2
corresponde ao Valid status, $(tsDate1)
é a data atual do servidor e $(tsDate2)
corresponde ao NmsCleanup_LastCleanup opção.
Essa tarefa limpa todas as assinaturas excluídas pelo usuário do NmsSubscription tabela, usando exclusão em massa. A seguinte query é usada:
DELETE FROM NmsSubscription WHERE iDeleteStatus <>0
Essa tarefa exclui registros obsoletos das tabelas de log de rastreamento e rastreamento Web. Registros obsoletos são aqueles que são anteriores ao período de conservação definido no assistente de implantação (consulte Assistente de implantação).
Primeiro, a lista de tabelas de log de rastreamento é recuperada usando a seguinte query:
SELECT distinct(sTrackingLogSchema) FROM NmsDeliveryMapping WHERE sTrackingLogSchema IS NOT NULL;
A exclusão em massa é usada para limpar todas as tabelas na lista de tabelas recuperadas anteriormente. A seguinte query é usada:
DELETE FROM NmsTrackingLogRcp WHERE iTrackingLogId IN (SELECT iTrackingLogId FROM NmsTrackingLogRcp WHERE tsLog < $(tsDate) LIMIT 5000)
em que $(tsDate)
é a data atual do servidor a partir da qual subtraímos o período definido para a variável NmsCleanup_TrackingLogPurgeDelay opção.
A tabela de estatísticas de rastreamento é removida com a exclusão em massa. A seguinte query é usada:
DELETE FROM NmsTrackingStats WHERE iTrackingStatsId IN (SELECT iTrackingStatsId FROM NmsTrackingStats WHERE tsStart < $(tsDate) LIMIT 5000)
em que $(tsDate)
é a data atual do servidor a partir da qual subtraímos o período definido para a variável NmsCleanup_TrackingStatPurgeDelay opção.
Essa tarefa permite limpar os logs de delivery armazenados em várias tabelas.
Para essa finalidade, a lista de schemas de log de delivery é recuperada usando a seguinte query:
SELECT distinct(sBroadLogSchema) FROM NmsDeliveryMapping WHERE sBroadLogSchema IS NOT NULL UNION SELECT distinct(sBroadLogExclSchema) FROM NmsDeliveryMapping WHERE sBroadLogExclSchema IS NOT NULL
Ao usar mid-sourcing, a variável NmsBroadLogMid tabela não é referenciada em mapeamentos de delivery. O nms:broadLogMid é adicionado à lista recuperada pela query anterior.
O Limpeza do banco de dados em seguida, limpa os dados obsoletos das tabelas recuperadas anteriormente. A seguinte query é usada:
DELETE FROM $(tableName) WHERE iBroadLogId IN (SELECT iBroadLogId FROM $(tableName) WHERE tsLastModified < $(option) LIMIT 5000)
em que $(tableName)
é o nome de cada tabela na lista de schemas, e $(option)
é a data definida para a variável NmsCleanup_BroadLogPurgeDelay (consulte Assistente de implantação).
Finalmente, o workflow verifica se a variável NmsProviderMsgId tabela existe. Em caso afirmativo, todos os dados obsoletos serão excluídos usando a seguinte consulta:
DELETE FROM NmsProviderMsgId WHERE iBroadLogId IN (SELECT iBroadLogId FROM NmsProviderMsgId WHERE tsCreated < $(option) LIMIT 5000)
em que $(option)
corresponde à data definida para a variável NmsCleanup_BroadLogPurgeDelay (consulte Assistente de implantação).
Essa tarefa limpa o NmsEmailErrorStat tabela. O principal programa (coalesceErrors) define duas datas:
Se a data de início for maior ou igual à data de término, nenhum processo ocorrerá. Nesse caso, a variável coalesceUpToDate será exibida.
Se a data de início for anterior à data de término, a variável NmsEmailErrorStat é limpa.
O número total de erros no NmsEmailErrorStat , entre as datas de início e término, é recuperada usando a seguinte query:
SELECT COUNT(*) FROM NmsEmailErrorStat WHERE tsDate>= $(start) AND tsDate< $(end)
em que $end
e $start
são as datas de início e término definidas anteriormente.
Se o total for maior que 0:
O query a seguir é executado para manter somente erros além de um determinado limite (que é igual a 20):
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
O coalescingErrors será exibida.
Uma nova conexão é criada para excluir todos os erros que ocorreram entre as datas de início e término. A seguinte query é usada:
DELETE FROM NmsEmailErrorStat WHERE tsDate>=$(start) AND tsDate<$(end)
Cada erro é salvo na variável NmsEmailErrorStat tabela usando a seguinte query:
INSERT INTO NmsEmailErrorStat(iMXIP, iPublicId, tsDate, iTotalConnections, iTotalErrors, iTimeoutConnections, iRefusedConnections, iAbortedConnections, iFailedConnections, iMessageErrors) VALUES($(lmxip ), $(lpublicId ), $(tsstart ), $(lconnections ), $(lconnectionErrors ),$(ltimeoutConnections ), $(lrefusedConnections ), $(labortedConnections ), $(lfailedConnections ), $(lmessageErrors))
em que cada variável corresponde a um valor recuperado pela query anterior.
O start é atualizada com os valores do processo anterior para finalizar o loop.
O loop e a tarefa param.
As limpezas são executadas na variável NmsEmailError e cleanupNmsMxDomain tabelas.
A seguinte query é usada:
DELETE FROM NmsEmailError WHERE iMXIP NOT IN (SELECT DISTINCT iMXIP FROM NmsEmailErrorStat)
Essa query exclui todas as linhas sem registros vinculados na NmsEmailErrorStat do NmsEmailError tabela.
A seguinte query é usada:
DELETE FROM NmsMxDomain WHERE iMXIP NOT IN (SELECT DISTINCT iMXIP FROM NmsEmailErrorStat)
Esta consulta exclui todas as linhas sem um registro vinculado na NmsEmailErrorStat da tabela do NmsMxDomain tabela.
Se a variável Interação estiver instalado, esta tarefa será executada para limpar o NmsPropositionXxx tabelas.
A lista de tabelas de propostas é recuperada e a exclusão em massa é realizada em cada uma, usando a seguinte query:
DELETE FROM NmsPropositionXxx WHERE iPropositionId IN (SELECT iPropositionId FROM NmsPropositionXxx WHERE tsLastModified < $(option) LIMIT 5000)
em que $(option)
é a data definida para a variável NmsCleanup_PropositionPurgeDelay (consulte Assistente de implantação).
Essa tarefa limpa tabelas de simulação órfãs (que não estão mais vinculadas a uma simulação de oferta ou a uma simulação de delivery).
Para recuperar a lista de simulações que exigem limpeza, a seguinte query é usada:
SELECT iSimulationId FROM NmsSimulation WHERE iSimulationId<>0
O nome das tabelas a serem excluídas é composto pela variável wkSimu_ seguida pelo identificador da simulação (por exemplo: wkSimu_456831_aggr):
DROP TABLE wkSimu_456831_aggr
A seguinte query é usada:
DELETE FROM XtkAudit WHERE tsChanged < $(tsDate)
em que $(tsDate) é a data atual do servidor a partir da qual o período definido para a variável XtkCleanup_AuditTrailPurgeDelay é subtraída.
A seguinte query é usada:
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)
Esse query exclui todas as entradas relacionadas ao iOS e Android.
O XtkCleanup_NoStats permite controlar o comportamento da etapa de otimização de armazenamento do fluxo de trabalho de limpeza.
Se a variável XtkCleanup_NoStats não existe ou, se o valor for 0, a otimização de armazenamento será executada no modo detalhado (VACUUM VERBOSE ANALYZE) no PostgreSQL e as estatísticas serão atualizadas em todos os outros bancos de dados. Para garantir que esse comando seja executado, verifique os logs PostgreSQL. O VACUUM emitirá linhas no formato : INFO: vacuuming "public.nmsactivecontact"
e ANALYZE gerará linhas no formato : INFO: analyzing "public.nmsactivecontact"
.
Se o valor da opção for 1, a atualização de estatísticas não será executada em nenhum banco de dados. A seguinte linha de log será exibida nos logs do workflow: Option 'XtkCleanup_NoStats' is set to '1'
.
Se o valor da opção for 2, isso executará a análise de armazenamento no modo detalhado (ANALYZE VERBOSE) no PostgreSQL e atualizará as estatísticas em todos os outros bancos de dados. Para garantir que esse comando seja executado, verifique os logs PostgreSQL. O ANALYZE emitirá linhas no formato : INFO: analyzing "public.nmsactivecontact"
.
Essa tarefa exclui qualquer assinatura relacionada a serviços ou aplicativos móveis excluídos.
Para recuperar a lista de schemas broadlog, a seguinte query é usada:
SELECT distinct(sBroadLogSchema) FROM NmsDeliveryMapping WHERE sBroadLogSchema IS NOT NULL
A tarefa recupera os nomes das tabelas vinculadas à appSubscription e exclui essas tabelas.
Este fluxo de trabalho de limpeza também exclui todas as entradas em que desabilitado = 1 que não foram atualizadas desde a hora definida no NmsCleanup_AppSubscriptionRcpPurgeDelay opção.
Essa tarefa limpa as informações do sessionInfo tabela, a seguinte query é usada:
DELETE FROM XtkSessionInfo WHERE tsexpiration < $(curdate)
Essa tarefa limpa os eventos recebidos e armazenados nas instâncias de execução e os eventos arquivados em uma instância de controle.
Essa tarefa limpa as reações (tabela) NmsRemaMatchRcp) em que a hipótese foi eliminada.