[vz-dev] Request failed: [400] PDOException: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry ... for key 'ts_uniq'

xdiwi xdiwi at gmx.net
Sat Dec 15 22:38:06 CET 2012


Am 15.12.2012 22:30, schrieb Thorben Thuermer:
> On Sat, 15 Dec 2012 22:21:48 +0100 xdiwi <xdiwi at gmx.net> wrote:
>> Am 15.12.2012 22:00, schrieb Thorben Thuermer:
>>> On Sat, 15 Dec 2012 21:45:49 +0100 xdiwi <xdiwi at gmx.net> wrote:
>>>> Es kommt immer wieder zu obiger Fehlermeldung.
>>> die meldung bedeutet einfach, das versucht wurde zwei werte mit identischem
>>> zeitstempel in die datenbank einzutragen.
>>> (die middleware koennte die db-exception mal abfangen und eine sinnvollere
>>>    meldung liefern...)
>>>> Leider sind die Daten
>>>> dann verloren und ich muss den vzlogger abschiessen und neu starten!
>>> das ist nicht ganz nachzuvollziehen.
>>> eigentlich sollte das kein problem sein, bzw nur einmalig auftreten,
>>> wenn zB die bearbeitung eines requests mal zu lange dauert.
>>> und danach sollte dann einfach mit dem naechsten messwert weitergeloggt werden.
>> Bisher war es meistens (nicht immer!) so, dass der Fehler, nachdem er
>> das erste mal aufgetreten ist, immer wieder erfolgt. Es werden also
>> keine weiteren Daten geloggt.
>
> das wuerde bedeuten, das bei jedem eintrag schon ein eintrag mit dem
> timestamp existiert.
> entweder sendet vzlogger wegen einem bug immer den gleichen timestamp...
> da faellt mir auf:
> es kann sein, das vzlogger wegen dem fehler immer wieder versucht,
> die gleichen daten aus seinem puffer einzutragen -
> das ist dann tatsaechlich ein bug.
> log wuerde helfen.

Ich habe gerade mal das Log-File durchgeschaut und ja, vzlogger versucht 
immer wieder die selben Daten mit dem selben Timestamp zu loggen!

>
>> In diesem Zustand hat ein Neustart der Middelware nicht geholfen. Nur
>> der Neustart des vzloggers hilft!
>
> die middleware als solche kann man garnicht "neu starten",
> die sie aus einem php-script besteht, das fuer jeden request neu gestartet wird.
>
>>> in jedem fall braeuchten wir dann mal die info, welche http-requests vzlogger
>>> an die middleware sendet.
>>> (log ausreichend hohem debug-level,  strace, oder wireshark...)
>> Das kann ich mal machen. Welcher Log-Level wäre sinnvoll?
>
> der muss so hoch sein, dass die requests mit daten drinstehen.
> trage einfach mal 9999 ein und schaue ob das reicht.
> (bin mir nicht sicher ob vzlogger die daten jemals loggt,
>   deswegen alternativ strace oder wireshark.
>   ("strace -f -s 9999 vzlogger -f 2>vzlogger.trace" ))
>
> poste nebenbei auch mal deine config...?
>
> - T.
>



More information about the volkszaehler-dev mailing list