[vz-dev] vzlogger und neue Middleware

Andreas Brus andreas at brus.name
Sat Feb 1 22:21:53 CET 2014


Moin

leider ist die neue Middleware doch nicht zu 100% gleich was die 
Rückmeldungen betrifft.
Bisher war die Meldung bei "Duplicate Entry" die in 
src/api/Volkszaehler.cpp behandelt wird:

CURL Error from middleware: 'PDOException': 'SQLSTATE[23000]: Integrity 
constraint violation: 1062 Duplicate entry '2-1375860463105' for key 
'ts_uniq''

Dies wurde folgendermaßen behandelt:

       if( err_type == "PDOException") {
         if( err_message.find("Duplicate entry") ) {
           print(log_warning, "middle says duplicated value. removing 
first entry!", channel()->name());
           _values.pop_front();
         }
       }
Nun wird aber stattdessen DBALException zurückgegeben:
CURL Error from middleware: 'DBALException': 'An exception occurred 
while executing 'INSERT INTO data (timestamp, value, channel_id) VALUES 
(?, ?, ?)' with params [1391043674905,...

Daher habe ich folgende Zeilen zusätzlich eingefügt.

       if( err_type == "DBALException") {
         if( err_message.find("Duplicate entry") ) {
           print(log_warning, "middle says duplicated value. removing 
first entry!", channel()->name());
           _values.pop_front();
         }
       }
Jemand mit c++ Kenntnissen würde sicher sinngemäß sowas wie:

if( err_type == "PDOException" || err_type == "DBALException") {

einfügen und damit ein paar Zeilen Code sparen.

Ich bittte um baldige Aufnahme ins git Repository, damit vzlogger sowohl 
mit alter als auch neuer Middleware bei Verbindungsproblemen nicht aus 
dem Tritt kommt.

Gruß
A. Brus


More information about the volkszaehler-dev mailing list