diff --git a/uppsrc/PostgreSQL/PostgreSQL.cpp b/uppsrc/PostgreSQL/PostgreSQL.cpp index 3f98b78e8..9b090d89f 100644 --- a/uppsrc/PostgreSQL/PostgreSQL.cpp +++ b/uppsrc/PostgreSQL/PostgreSQL.cpp @@ -303,7 +303,8 @@ void PostgreSQLSession::ExecTrans(const char * statement) return; } } - while(level == 0 && !ConnectionOK() && WhenReconnect(itry++)); + while(level == 0 && (!ConnectionOK() || ErrorMessage().Find("connection") >= 0 && itry == 0) + && WhenReconnect(itry++)); if(trace) *trace << statement << " failed: " << ErrorMessage() << "\n"; diff --git a/uppsrc/XmlRpc/Xml.cpp b/uppsrc/XmlRpc/Xml.cpp index 0535e9f97..cdc6ded13 100644 --- a/uppsrc/XmlRpc/Xml.cpp +++ b/uppsrc/XmlRpc/Xml.cpp @@ -107,7 +107,7 @@ String FormatXmlRpcValue(const Value& v) r = XmlTag("boolean")(AsString((int)(bool)v)); else if(IsNumber(v)) - r = XmlTag("double")(Format("%g", (double)v)); + r = XmlTag("double")(Format("%.12g", (double)v)); else if(IsDateTime(v)) { Time t = v;