Wartbarkeit, Stabilität und Effektivität

Systemdienste bitte nur noch in englisch!

2013-04 15
Mo, 2013-04-15 15:25 -- mig

Um in Zukunft unter Windows ominöse Probleme zu vermeiden, gilt folgender Merksatz:

Systemdienste müssen immer mit der LOCALE="en_EN" laufen.

Das ist auf jedem Betriebssystem ein sinnvoller Tipp, besonders wichtig ist es aber im Umgang mit Windows, wo die meisten Dienste eine lokalisierte (=deutsche) Fehlermeldung als vermeindliche Hilfestellung anbieten.

In diesem Fall war eine PostgreSQL-Datenbank auf deutsch installiert und gab Fehlermeldungen mit in win1252 kodierten Umlauten an einen in UTF-8 laufenden Webservice, der diese folgsam aber unkonvertiert ins Log schrieb und beim Reload des Logs dann mit einer knappen Exception die Mitarbeit verweigerte. Offensichtlich erwarten Programmierer keine Umlaute in Exceptions (ich ehrlich gesagt auch nicht!)

In der postgresql.conf lc_messages = 'English_UNITED.1252' korrigiert das missliche Verhalten, ohne eine Neu-Anlage der Datenbank zu benötigen. Die log-Tabellen und am Besten auch die PostgreSQL-Logdateien löschen, denn pgAdmin hat das selbe Problem…