Benutzer-Werkzeuge

Webseiten-Werkzeuge


engine:procedures:mi_garbagecollect_ad

mi_GarbageCollect_Ad

Löscht Daten, die nicht mehr benötigt werden, weil sie entweder nicht mehr referenziert werden oder weil es sich um historische Daten handelt, deren „Aufbewahrungszeitraum abgelaufen“ ist.

Hinweis:
Aus Performancegründen sollte diese Prozedur nicht zu oft oder bei hoher Last aufgerufen werden ! Im Regelfall implementiert man einen täglichen Job („dstore“-Datenbank : Prozedur „sp_CronjobsDaily“), der diese Prozedur aufgeruft.

Anmerkung zum Parameter „CheckForCorrectDate“ :
Vor dem Löschen wird überprüft, wann die Prozedur das letzte mal angestoßen wurde (das steht in „BatchJobs“). Bei einer zu großen Differenz zum letzten Aufruf (siehe „Settings“-Eintrag zum Schlüssel „MaxDaysAllowedBetweenGarbageCollect“) wird davon ausgegangen, daß das aktuelle Server-Datum nicht stimmt, so daß die Prozedur abbricht - um nicht fälschlicherweise z.B. sämtliche historischen Daten zu löschen !

Gelöscht werden Datensätze aus derzeit folgenden Tabellen - in Klammern unter dem Tabellennamen ist angegeben, auf welcher Grundlage die Prozedur die Daten löscht :

  • Actions

(„Settings“, Schlüssel „MaxDaysInActions“)

  • Bills

(„Settings“, Schlüssel „MaxMonthsInBillsAndOrders“)

  • Binaries

(Nicht mehr referenzierte „BinaryCodeID“s werden gelöscht, Referenz-Tabellen : „NodePresentations“, „BinariesForValues“, „BinariesForPersons“, „AuctionItems“)

  • BinaryCharacteristicValues

(Nicht mehr in „BinaryProperties“ referenzierte „ValueID“s werden gelöscht, allerdings nur zu „BinaryCharacteristicID“s mit „PredefinedValues = 0“ !)

  • DailyCharacteristicNos_PH

(„Settings“, Schlüssel „MaxDaysInDailyCharacteristicNos_PH“)

  • DateIntervalls

(Nicht mehr referenzierte „DateIntervallID“s bzw. „TimeIntervallID“s werden gelöscht, Referenz-Tabellen : „HistoryTreeView“, „UnitConverts“, „ValidRules“, „NodePresentations“, „TemplateUsage“)

  • DSS_StatisticData

(„Settings“, Schlüssel „MaxDaysInDSS_StatisticData“)

  • ForumPostings

(„ForumSettings“, Schlüssel „KeepPostingsInDays“ und „PostingDeletionOptions“)

  • ForumStatistics

(„ForumSettings“, Schlüssel „KeepForumStatisticsInDays“)

  • LockCriteriaValues

(„LockCriteriaValue“-Werte zu „RatingSubjectID“s werden gelöscht, wenn die durch „LockPeriodInMinutes“ in „RatingSubjects“ konfigurierte Zeit abgelaufen ist)

  • Messages

(„CommunitySettings“, Schlüssel „sys_KeepMessagesInDays“)

  • NodePresentations

(Datensätze zu Elemente, die gelöscht sind („Deleted = 1“ in „TreeView“)

  • NodeProperties

(„KeepPropertiesHistoryInHours“ in „NodeCharacteristics“)

  • OnlineTimeStatistics

(„CommunitySettings“, Schlüssel „sys_KeepOnlineTimeStatisticsInDays“)

  • Orders

(„Settings“, Schlüssel „MaxMonthsInBillsAndOrders“)

  • Performance

(„Settings“, Schlüssel „MaxNumberOfRowsInPerformance“)

  • PersonCharacteristicNos_PD

(Einstellungen in „PeriodsToKeepStatistics“)

  • PersonCharacteristicNos_PM

(Einstellungen in „PeriodsToKeepStatistics“)

  • PersonPropertiesHistory

(„KeepPropertiesHistoryInDays“ in „PersonCharacsInCategories“)

  • Ratings

(Abstimmungen zu „RatingSubjects“ werden gelöscht, wenn die durch „KeepRatingsInHours“ in „RatingSubjects“ konfigurierte Zeit abgelaufen ist)

  • RatingStatistics

(Abstimmungs-Statistiken zu „RatingSubjects“ werden gelöscht, wenn die durch „KeepRatingStatisticsInDays“ in „RatingSubjects“ konfigurierte Zeit abgelaufen ist)

  • ReadPostingsPerPerson

(„ForumSettings“, Schlüssel „HoursAfterPostingsAreRegardedAsRead“)

  • SearchPostings

(Alle Datensätze zu nicht mehr in „ForumPostings“ referenzierten „PostingID“s)

  • TreeNodeCharacteristicNos_PD

(Einstellungen in „PeriodsToKeepStatistics“)

  • TreeNodeCharacteristicNos_PW

(Einstellungen in „PeriodsToKeepStatistics“)

  • TreeNodeCharacteristicNos_PM

(Einstellungen in „PeriodsToKeepStatistics“)

  • Trolley

(„Settings“, Schlüssel „HoursItemsRemainInTrolley“)

  • UsersOnlineTime

(„CommunitySettings“, Schlüssel „sys_KeepUsersOnlineTimeInDays“)

  • VisitorInformation

(„Settings“, Schlüssel „MaxDaysInVisitorInformation“)

  • VisitorsLastVisit

(Alle Datensätze, deren „VisitDateAndTime“ länger als 1800 Sekunden (= 30 Minuten) her ist)

Außerdem werden (durch die Aufrufe der internen Prozeduren „_im_DeleteInactiveProducts“ und „_im_DeleteHistoryTreeNodes“) Daten aus „HistoryTreeView“, „TreeView“ und „dStore“, „NodeCharacteristicValues“ und „DateIntervalls“ gelöscht. Zunächst werden (mit „_im_DeleteInactiveProducts“) inaktive Produkte/Varianten, bei denen länger keinerlei Datenänderung stattfand (s. „Settings“-Eintrag „DeleteInactiveProductsWithoutDataUpdateInXDays“), als „gelöscht markiert“. Anschließend löscht „_im_DeleteHistoryTreeNodes“ dann tatsächlich (i.S.v. „wirklich entfernen“) „HTreeNodeID“s und damit verbunden andere (z.B. weil nicht mehr referenzierte) Daten aus den genannten Tabellen, die NICHT mehr gültig sind. Allerdings werden natürlich KEINE statistik- bzw. auftragsrelevanten Elemente gelöscht. Grundlage für die Feststellung, wann eine „HTreeNodeID“ tatsächlich aus der Tabelle gelöscht werden kann, ergibt sich aus dem größten Wert der beiden Zahlen „MaxMonthsInBillsAndOrders“ (in Tagen umgerechnet, also mit 31 multipliziert) aus „Settings“ sowie der gößten Zahl „KeepStatistics“ (ebenfalls in Tagen umgerechnet, also evtl. mit 7 bzw. 31 multipliziert) aus der Tabelle „PeriodsToKeepStatistics“.

HTTP-MethodPOST
HTTP-AuthOptional
Tags
Engine-Kategoriesystem administration
Engine-TypDaten-Änderung
Letzte Aktualisierung7.0.7 (2015-01-29)

Parameter

Name 1) Standard-Wert Beschreibung 2) SQL-Datentyp3) ab Version
CheckForCorrectDate1 Falls auf „1“ gesetzt, wird vor dem Löschen von Daten geprüft, ob das aktuelle Serverdatum nicht zu weit (siehe „Settings“-Eintrag zum Schlüssel „MaxDaysAllowedBetweenGarbageCollect“) vom letzen Aufruf des „Garbage-Collectors“ abweicht
bit3.5.4

Rückgabe

Die Prozedur hat keine Rückgaben.

Output-Parameter

Die Prozedur hat keine Output-Parameter.

Mögliche Return-Codes

Code Beschreibung Quelle 4)
-856Fehlerhafte Daten in „MainPostingSorting“nur indirekt
-855Fehlerhafte Konfiguration des Sortier-Kriteriumsnur indirekt
-850Sortier-Kriterium nicht definiert oder inaktiv oder nicht verwendbarnur indirekt
-840Posting kann nicht bearbeitet werden, weil es bereits von einem anderen Prozess bearbeitet wirdnur indirekt
-621Fehlender oder falscher Eintrag in PersonTypeSettingsnur indirekt
-599Lizenz ist ungültig oder abgelaufennur indirekt
-572Die Prozedur darf nur innerhalb einer Transaktion ausgeführt werdennur indirekt
-569Der Benutzer hat kein Ausführungsrecht für die Prozedurnur indirekt
-567Die Prozedur darf z. Zt. nicht ausgeführt werdennur indirekt
-566Die Prozedur darf mit den übergebenen Parametern nicht ausgeführt werdennur indirekt
-565Die „Objekt-ID“ der Prozedur konnte nicht ermittelt werdennur indirekt
-564Der Status in BatchJobs konnte nicht gesetzt werdennur indirekt
-562Die Prozedur ist nicht in BatchJobs registriertnur indirekt
-560Prozedur konnte nicht gestartet werdendirekt und indirekt
-550Fehlender oder falscher Eintrag in Settingsnur indirekt
-535Das Datum liegt nicht in der Vergangenheitnur indirekt
-530Der Wert ist nicht konvertierbarnur indirekt
-510Der Benutzer ist nicht registriertnur indirekt
-504Es ist ein Problem aufgetreten, das nicht gelöst werden kann, Prozedur wird daher abgebrochennur indirekt
-500Falsche Parameternur indirekt

XML-Schema

Die Rückgabe erfolgt als XML-Dokument welches gegen das Schema Response/EngineProcedure_v1_0.xsd validiert.

Historie

7.0.7 2015-01-29Interne Änderung : Datentyp-Erweiterung des „ReferenceKey“ [für „_mi_StartProcedure“-Aufruf]
7.0.5 2014-05-26Fehler „-550“ bzgl. des neuen „Settings“-Eintrags „DeleteInactiveProductsWithoutDataUpdateInXDays“ behoben
7.0.4 2014-03-191. Implementierung des neuen „Settings“-Eintrags „DeleteInactiveProductsWithoutDataUpdateInXDays“, s. Ticket #3557
2. Bedeutung von „KeepPropertiesHistoryInHours“ von „NodeCharacteristics“ hat sich leicht geändert, s. Ticket #3560
6.5.1 2012-11-02Aufruf der neuen Prozedur „_om_MoveExpiredCampaignPeriods“ eingebaut
6.0.8 2012-06-291. Fehlende Fehlerbehandlung und „print“-Ausgabe bzgl. „SourceCodeHistory“ (außerdem Performance-Verbesserung)
2. Quellcode-Anpassungen
3. Fehler beim Löschen von „RatingStatisticsPerSubject“ [es wurden nie Daten gelöscht]
6.0.1 2010-07-20Holger Wies : Um Aufräumarbeiten in „SourceCodeHistory“ erweitert
5.1.4 2006-08-141. „RatingStatistics“ wurde umbenannt in „RatingStatisticsPerSubject“
2. Eine Spalte in „RatingSubjects“ wurde umbenannt
3. Neue Statistik-Tabelle „RatingStatisticsPerSubject“
4. Überprüfung, ob Daten in der Tabelle „Performance“ vorkommen, geändert
5.1.2 2006-06-26Verlagerung des Codes aus „ra_GarbageCollect_Ad“ in diese Prozedur, d.h. ab jetzt werden hier die Tabellen „ LockCriteriaValues“, „Ratings“ und „RatingStatistics“ [den Konfigurationen entsprechend] geleert !
5.1.1 2006-04-051. Optimierung des Zugriffs auf „NodeProperties“ (bedingt durch die Änderung dieser Tabelle in 5.1.0)
2. Fehlerhafte Index-Angabe bei „TemplateUsage“
5.0.2 2005-04-29Nicht mehr verwendete interne Variable, die zudem noch „falsch“ initialisiert war, entfernt
5.0.1 2005-03-29Verlagerung des Löschens von Forum-Beiträgen zur neuen Prozedur „_fo_DeleteForumPostings“
5.0.0 2004-12-21Berücksichtigung des neuen „ForumSettings“-Schlüssel „PostingDeletionOptions“, der jetzt zusätzlich zum Schlüssel „KeepPostingsInDays“ bzgl. des Löschens „alter“ Beiträge beachtet werden muß
4.0.13 2004-05-181. „_mi_StartProcedure“ u. „_mi_FinishProcedure“
2. „set transaction isolation level 1“, „set rowcount 0“
3. Konsequente Fehlerbehandlung
4. Diverse interne Änderungen
5. Fehler bzgl. Löschen von „DateIntervalls“
4.0.7 2004-01-161. Ausnutzung neuer Parameter der intern verwendeten Prozedur „_mi_TryToStartBatchJob“
2. Interne Änderung : „ProcedureName“ steht jetzt in der neuen Tabelle „RegisteredProcedures“, in „BatchJobs“ steht nur noch die „ProcedureID“
4.0.0 2003-04-031. Löschen von „PersonPropertiesHistory“
2. Korrektur der Doku bzgl. der verwendeten Tabellen/Prozeduren
3.5.22 2002-08-30
3.5.21 2002-08-06
3.5.20 2002-07-22
3.5.19 2002-06-17
3.5.18 2002-05-15
3.5.13 2001-12-06
3.5.12 2001-10-17
3.5.11 2001-09-06
3.5.10 2001-07-14
3.5.9 2001-06-16
3.5.7 2001-05-04
3.5.5 2001-03-30
3.5.4 2001-03-11
3.5.2 2001-01-28
3.5.0 2000-11-23Erstmalig in dieser Version erstellt

Code-Snippets

Engine Playground

Der folgende Link öffnet in einem separaten Fenster den Engine Playground der fest mit dem dbap-demo System verbunden ist:

cURL

Unformatierte Ausgabe:

curl -X POST  'http://<partner>-<project>.dstore.de/default/engine/mi_GarbageCollect_Ad'

Mit xmllint 5) formatierte Ausgabe:

curl -X POST  'http://<partner>-<project>.dstore.de/default/engine/mi_GarbageCollect_Ad' | xmllint --format -
dStore_php
use dStore_php\WebService;
 
$service = new WebService\Service( WebService\Scheme::HTTP,'<partner>-<project>.dstore.de', 80);
 
$request = new WebService\Requests\Engine\Procedure\Request(
			new WebService\Requests\AccessData('default'),
	'mi_GarbageCollect_Ad',
		array(
			// 'CheckForCorrectDate' => 1
		)
);
 
$service->execute($request);
 
			$xml_result = $request->getResponse()->getBody()->toSimpleXmlDocument();
			$ResultSet = $xml_result->getRowsAsArray();
engine/execute

XML zur Ausführung mit der Methode engine/execute, z.B. per

curl --header 'Content-Type: application/xml' -X POST 'http://<partner>-<kunde>.dstore.de/default/engine/execute' -d '<xml-daten>'
<?xml version="1.0" encoding="UTF-8"?>
<ListOfBatches>
	<Batch No="0">
		<Procedure Name="mi_GarbageCollect_Ad">
			<Parameters>
				<!-- <Parameter Name="CheckForCorrectDate">1</Parameter> -->
			</Parameters>
		</Procedure>
	</Batch>
</ListOfBatches>
1)
Pflichtparameter sind unterstrichen
4)
direkt meint „von der Prozedur selber“ und indirekt meint „von intern aufgerufenen Unterprozeduren“
5)
I.d.R. auf Unix-artigen Systemen bereits installiert, Bestandteil der libxml2, siehe http://www.xmlsoft.org
engine/procedures/mi_garbagecollect_ad.txt · Zuletzt geändert: 11.01.2016 (Externe Bearbeitung)