Archiv des Autors: Daniel Weber

„Casting-Show“ mit dem MS SQL Server

Eigentlich sollte man meinen, dass mit Unicode diverse Probleme rund um das Thema Sonderzeichen endlich gegessen wären, aber leider durfte ich neulich erleben, dass dem nicht so ist.

Gegeben sei eine einfache Tabelle „test“ mit einer NVARCHAR(50)-Spalte „name“ und zwei Datensätzen: „Preussen“ und „Preußen“.

Eine ebenso einfache Abfrage

SELECT * FROM test WHERE name = 'Preussen'

liefert – wie man es erwartet – einen Treffer. Macht man aus Ihr ein Prepared Statement, dann sind es plötzlich zwei Treffer: „Preussen“ und „Preußen“.

Natürlich sucht man den Fehler nun erstmal im eigenen Code, findet aber nichts, also probiert man alternative JDBC-Treiber aus und… findet auch nichts, bis man das ganze zum Schluss im Management Studio versucht und auch dort das seltsame Verhalten reproduzieren kann. Erst ein expliziter CAST des Vergleichswertes nach VARCHAR behebt das Problem. Ob diese Lösung aber performanter ist als der Verzicht auf Prepared Statements habe ich noch nicht geprüft.

Feedback (nicht) erwünscht?

Die Telekom gibt sich ja neuerdings sehr „Kundennah“ und nimmt mit dem Telekom-Hilft-Team auf Twitter und Facebook teil, hat die Feedback-Community ins Leben gerufen und die Telekom-Service-Foren geschaffen. Schaut man genauer hin entpuppt sich das ganze allerdings mehr als Schein denn als Sein.

Werfen wir erst einen Blick zurück in längst vergangene Zeiten: Als das Thema „Web 2.0“ für die Telekom noch neu war, war der erste Schritt eine bereits existierende und hervorragend funktionierende Plattform für Feedback, Service und Diskussionen – die t-online-Newsgroups – dichtzumachen. Kann ja nicht angehen, dass man sich – basierend auf bewährtem – in Richtung „Web 2.0“ öffnet und z.B. die bestehende Plattform mit einem Webinterface ergänzt. Nein, man schlägt stattdessen das, was man hat, erstmal gründlich kaputt. Ein gutes Jahr später hat man dann den Newsserver (zu dem Zeitpunkt der meistgenutzte Newsserver in Deutschland) komplett dicht gemacht.

Kommen wir nun zurück zur jetzigen Feedback-Community. Obwohl dort der Begriff „Feedback“ schon im Namen steht scheint man nicht sonderlich an Feedback interessiert zu sein. Kritisiert man die Produktgestaltung (z.B. fehlendes IPv6 bei Bestandskunden sowie ISDN- und Analoganschlüssen) zu deutlich kann es einem leicht passieren, dass ein Moderator das Thema für beendet erklärt und/oder auf die Service-Foren verweist (die wenig mit Feedback zu tun haben) und schließt (konnte ich selbst reproduzieren). Amüsanterweise stellt er in seinem Abschlußposting nochmal ein paar Gegenfragen…

@Kai, wie soll man auf Deine Gegenfragen antworten, wenn Du den Thread schließt?

Liebe Telekom, liebes Telekom-Hilft-Team, …

…wenn Ihr eine Feedback-Community betreibt, dann müsst ihr damit rechnen, dass sich die Kunden erlauben, diese für Feedback zu nutzen. Wenn Ihr kein Feedback bekommen wollt, dann nennt das Ding anders oder macht einfach einen Link auf die Service-Foren daraus.

…selbstverständlich kann Euch niemand (naja, fast, die BNetzA in manchen Dingen durchaus) die Produktgestaltung vorschreiben, aber es gehört dennoch zum guten Ton, mit seinem Geschäftspartner zu Reden. Es weckt beim Kunden keinerlei Vertrauen, wenn er auf Anfragen – egal wo – immer nur eine Mauer aus Nichtswissern, Nichtssagern oder Nichtsentscheidern stößt. Der Kunde bekommt dabei leicht den Eindruck, dass der Laden nur durch ein Wunder noch immer läuft, obwohl dort eigentlich keiner so recht weiß, was er tut.

Unser Bahnhof soll schöner werden

Für 2007 schonmal angekündigt beginnt nun endlich der Umbau des Bahnhofs Ebersberg. Vor etwas mehr als 10 Jahren wurden die Reste das Ladegleises zwischen dem Park & Ride Platze und Gleis 1 entfernt sowie Gleis 1 zum Stumpfgleis gemacht. Bis dahin konnten Züge von und nach Wasserburg beide Gleise benutzen, nun steht nur noch Gleis 2 zur Verfügung. Zugbegegnungen und damit ein dichterer Takt sind somit derzeit nicht möglich.

Nun wird Gleis 1 etwas nach Norden versetzt – dort war ja das oben erwähnte Ladegleis, es ist also Platz – und der Bahnsteig wird entsprechend verbreitert und auf die normale Höhe der S-Bahnen angehoben. Während der ersten Hälfte der Bauarbeiten verkehren die Züge Wasserburg – Grafing Bf nur bis Ebersberg, die bis München durchgebundenen Züge sowie die S-Bahnen verkehren normal.

Leider wird der sogenannte „Westzugang“ mit Fußgängerunterführung aus Kostengründen nicht realisiert und somit bleibt Gleis 1 wahrscheinlich weiterhin ein Stumpfgleis mit entsprechenden Einschränkungen für flexibleren Verkehr. Bleibt zu hoffen, dass der für 2013 geplante Begegnungsbahnhof in Steinhöring planmäßig angegangen wird und ab dann ein dichterer Takt möglich wird.

Blogopause

Ja, jetzt war es etwas länger Still hier, aber ich habe gute Ausreden: Unser Nachwuchs und mehrere Hardwareschäden an 4 verschiedenen Servern kamen mir dazwischen, wobei jetzt vor allem unsere kleine Evi vorrang hat. Die nächste Zeit hoffe ich aber wieder etwas regelmäßiger berichten zu können.

Digitalisierung einer Märklin BR 361

Bereits vor einiger Zeit hatte ich begonnen eine etwa 15 Jahre alte BR 361 von Märklin zu digitalisieren. Im Gegensatz zu meinen bisher umgebauten Modellen hat dieses sogenannte Telex-Kupplungen (die das abkoppeln von Zügen „aus der Ferne“ ermöglichen); dadurch brauche ich einen Dekoder mit zusätzlichen Funktionsausgängen. Der Dekoder der Wahl war der Tams LD-W-33 (MM und DCC, 6 Funktionsausgänge), der schnell eingebaut war und während der Programmierung mit der CU 6021 leider auch schnell in Rauch auf ging.

Heute folgte ein zweiter Anlauf, wieder mit dem LD-W-33, der diesmal gelang. Im Unterschied zum ersten Umbau habe ich heute eine Drossel zwischen der Gehäusemasse und der Motorrückleitung entfernt. Die Drossel hätte ich beinahe wieder übersehen und damit den Dekoder vermutlich wieder gegrillt, schließlich warnt die Anleitung explizit davor, die Gehäusemasse mit der Rückleitung zu verbinden. Das Modell hat folglich heute die Programmierung, die diesmal im DCC-Protokol mit derECoS 2 erfolgte, auch gut überstanden. Die Fahreigenschaften des umgebauten Modells sind auf Anhieb deutlich besser als zuletzt im Analogbetrieb.

Schalten und Walten mit der ECoS 2 von ESU

Wie schonmal erwähnt habe ich vor 6 Jahren begonnen meinen Modellbahnfuhrpark zu digitalisieren. Ich startete damals mit einer sehr günstig gebraucht erworbenen Märklin Control Unit 6021 und einer Reihe von Tams LD-W-3-Dekodern, für die ersten Umbauten. Vor etwa einem Monat war ich, im Zuge des Aufbaus meines derzeitigen Modellbahnprojekts, bei Überlegungen zur zukünftigen Steuerung der Anlage angekommen. Aus diversen Wünschen stellte sich relativ schnell die ECoS von ESU als geeignete Kandidatin heraus, da sie die von mir geforderten Protokolle MM, DCC und M4 spricht und ESU sich bisher bzgl. Softwareupdates verlässlich gezeigt hat. Als ich ein günstiges Angebot für eine gebrauchte ECoS 2 sah, schlug ich zu.

Vor der ersten Inbetriebnahme sollte man die Anleitung gründlich durcharbeiten. Ich tat das leider nicht und war daher für zwei Tage unzufrieden mit dem Fahrverhalten, bis ich die Stelle fand, die die Einstellung der richtigen Gleisspannung nahelegte. Kaum war die Spannung von niedrigen 14 V auf die für H0-Dreileiter üblichen 19 V angehoben fuhren alle Modelle wieder mindestens so gut, wie mit der bisherigen Zentrale.

Danach standen erste Versuche mit dem DCC-Protokoll auf dem Plan: Die im November digitalisierte 212 besaß bereits einen DCC-fähigen Dekoder und war daher das geeignete „Opfer“. Man kann komfortabel die Lokparameter auslesen und verändern ohne sie von der normalen Strecke nehmen zu müssen. Im Vergleich zur DCC-Programmierung kommt mir die bisherige MM-Programmierung mit der 6021 steinzeitlich vor.

Vor zwei Wochen kamen dann die Weichen dran: Ein paar günstig ergatterte gebrauchte k83-Dekoder haben mich nun auch bei den Weichen aus der analogen Zeit geholt. Äußerst komfortabel geht darüberhinaus die Einrichtung von Fahrstraßen mit der ECoS 2 von der Hand. Weichen und Fahrstraßen kann man dann – um es perfekt zu machen – auf einem Gleisbildstellpult grafisch anordnen. Wieder kam mir die bisherige Praxis der Stellpulte sehr altmodisch vor.

In Kürze folgen nun noch die Signale. Dazu habe ich mir eine Reihe von günstigen Signaldecodern basierend auf dem WeichZwei bestellt, die die nächsten Tage eintreffen sollten.

Das Fazit: Die ECoS 2 war nicht gerade billig aber dennoch eine gute Entscheidung. Um den jetzt in kurzer Zeit erreichten Stand basierend auf der alten 6021 zu erreichen wären ähnliche hohe Investitionen in veraltete Technik nötig gewesen. Alternativ hätte ich mich auch mit SRCP und DDL/DDW befassen können und damit vermutlich etwas Geld gespart… aber viel mehr Zeit investiert. Da ich beruflich schon genug vor dem PC sitze und mich mit Sourcecode und Konfigurationsdateien beschäftige muss ich das beim Modellbahnhobby nicht auch noch haben.

Veolia Verkehr gewinnt E-Netz-Rosenheim

Die Entscheidung der BEG, das E-Netz-Rosenheim von 2013 bis 2025 an Veolia Verkehr statt DB Regio zu vergeben, hat mich doch etwas überrascht. Bin ich doch nach dem Rückzug der ÖBB davon ausgegangen, dass DB Regio den Auftrag so gut wie in der Tasche hat und es sich eher um eine „pro forma“-Ausschreibung handelt.

Laut ersten Stellungnahme der DB Regio war der äußerst aggressive Preis, den Veolia Verkehr geboten hat, wohl ausschlaggebend für die BEG. Zusätzlich mögen die diversen Baustellen auf den KBS 950 und 951 die letzten Jahre eine Rolle gespielt haben, obwohl die Baustellen und die Gestaltung des Schienenersatzverkehrs eher auf das Konto von DB Netz geht und auch Veolia zukünftig nicht von derartigen Störungen verschont bleiben wird. Bleibt zu hoffen, dass die ca. 200 Beschäftigten von DB Regio aus Freilassing und Rosenheim beim neuen Betreiber unterkommen oder aber zum Beispiel zur SüdostBayernBahn wechseln können.

DB Regio betreibt auf der Strecke seit den 90ern einen Zwei-Stunden-Takt mit RE-Zügen von Salzburg nach München. Seit Dezember 2001 wurde dieser mit RB-Zügen auf einen Stundentakt verdichtet. Für mich, der damals in Aßling gewohnt hat, war das ein SPNV-Quantensprung. Bis dahin hatten wir an Werktagen eine Handvoll Regionalszüge die in Aßling, Ostermünchen und Großkarolinenfeld hielten und größtenteils nicht bis nach München sondern nur nach Grafing Bahnhof fuhren. Ab der Einführung des festen RB-Taktes im Dezember 2001 wurde dieser schrittweise verdichtet, so dass nun die Orte zwischen Rosenheim und Grafing Bahnhof an Werktagen fast durchgehend stündlichen Bahnanschluß haben. Mit meinem Umzug 2005 hat sich die regelmäßige Nutzung dieser Züge erledigt. Wenn dann steige ich in Grafing Bahnhof in einen dieser Züge um oder wir unternehmen gelegentlich Ausflüge ins Chiemgau oder nach Salzburg. Im Herbst 2008 gab es nochmal eine deutliche Verbesserung: Die Hälfte der Züge wurde auf Doppelstock-Wagen umgestellt. Leider spürte man das zusätzliche Platzangebot nicht lange. An Wochenenden sind Stehplätze in diesen Zügen weiterhin häufig.

Mit der Übernahme durch Veolia ab Dezember 2013 wird es einen Stundentakt zwischen Salzburg und München geben ohne Halt zwischen Rosenheim und München Ost, einen Stundentakt zwischen Kufstein und München mit Halt an allen Stationen, einen Stundentakt zwischen Rosenheim und Holzkirchen mit halbstündiger Verdichtung und Verlängerung nach München zur Hauptverkehrszeit und zusätzlich als Option „Expresszüge“ zwischen Traunstein und München.

DB Regio und ihren Mitarbeitern möchte ich schonmal danken für die vielen i.d.R. relativ pünktlichen Fahrten mit und auch für viele lustige Erlebnisse in den Zügen.

Von Veolia und dem bayrischen Verkehrsministerium (als Besteller der Leistungen) wünsche ich mir ein paar Dinge:

  • Ausreichend dimensionierte Garnituren: Möglicherweise wären zumindest für die Züge nach Salzburg Stadler KISS statt der angebotenen Stadler FLIRT 2 sinnvoller gewesen.
  • Ein brauchbares Fahrgastinformationssystem mit Echt-Zeit-Verspätungsprognosen nicht nur in den Zügen sondern auch an den Bahnhöfen und im Internet, damit man z.B. mit seinem Smartphone auf einer einzigen Seite alle Zugfahrten an einem Bahnhof ablesen kann, egal zu welchem EVU der jeweilige Zug gehört.
  • Sinnvolle Umsteigemöglichkeiten in Rosenheim von Grafing Bahnhof, Aßling, Ostermünchen und Großkarolinenfeld kommend in Richtung Salzburg und umgekehrt.

Cyrus-Zickigkeiten

In meinem Bekanntenkreis bin ich einer der wenigen der (auch) Postfix mit Cyrus einsetzt – die geläufigere Kombination ist dort wohl Exim mit Dovecot. Mit Postfix habe ich bisher keine negativen Erfahrungen mit Cyrus war das auch so bis mir neulich eine etwas ältere Installation Spaß bereiten wollte.

20. Dezember

Es trudeln Meldungen zweier User ein, dass sich das Webmail komisch verhalte. Der Mailabruf per POP3 oder IMAP4 ist nicht komplett ausgefallen jedoch führt ein EXPUNGE zu Ende der TCP-Connection… und das Webmail möchte beim öffnen eines Ordner erstmal ein EXPUNGE ausführen. Im Logfile äußerst sich das so:

cyrus/master[7067]: service imap pid 8873 in BUSY state: terminated abnormally

Später gesellen sich noch Meldungen folgender Art dazu:

cyrus/imaps[11644]: DBERROR db4: 24 lockers

Okay, führe ich also ein manuelles Recovery der Cyrus-Datenbanken durch und… nichts ändert sich. Eine Recherche bei Google nach der ersten Fehlermeldung führt zu der Empfehlung Cyrus upzudaten und der Einheizkater schließt sich dieser Empfehlung an. Kommt mir zwar komisch vor, wo es doch bis vor wenigen Stunden noch funktioniert hat, aber in meiner Ratlosigkeit versuche ich das und… es funktioniert wieder.

Damit war das Thema für mich erstmal erledigt, doch es sollte wieder auf meinen Tisch zurückkommen.

22. Dezember

Wir fahren über die Weihnachtsfeiertage zur schwäbischen Verwandschaft. Dort angekommen fehlt mir die Motivation nochmal den Rechner anzuwerfen, daher merke ich erstmal nicht, dass bei Cyrus schon wieder etwas im Argen ist. Im Logfile finde ich später Meldungen folgender Art:

couldn't connect to lmtpd: Connection timed out_ 421 4.3.0 deliver: couldn't connect to lmtpd_

23. Dezember

Nagios begrüßt mich mit zwei Mails, der POP3- und IMAP4-Dienst seien gegen 5:23 ausgefallen. Zu der Zeit findet ein täglicher Restart der Cyrus-Dienste statt um liegengebliebene Prozesse – die leider bei TLS/SSL-verschlüsselten Sessions häufig auftreten – abzuräumen. Ich schaue dem System in die Eingeweide und stelle fest, dass ein cyr_expire-Prozess beinahe alle CPU-Leistung auffrisst aber nichts tut. Nach einem Versuch Cyrus per Restart zu motivieren finde ich das hier im Log:

cyrus/cyr_expire[19078]: DBERROR db4: PANIC: fatal region error detected; run recovery
cyrus/cyr_expire[19078]: DBERROR: critical database situation

Aha, das erinnert mich wieder an die Meldungen vom 20. Dezember. Also nochmal ein manuelles Recovery versucht, leider wieder ohne Verbesserung. Nach etwas Recherche wird mir klar dass cyr_expire sich um deliver.db bearbeitet, das normale Recovery jedoch mailboxes.db und annotations.db repariert. Da ich nichts finde, dass mir für eine Reparatur der deliver.db gedacht erscheint, benenne ich die Datei um und starte Cyrus ein weiteres Mal neu und… siehe da: Es läuft wieder.

26. Dezember

Wieder beglückt mich Nagios mit zwei Mails am Morgen. Der Server war von ca. 23:20 bis 01:10 nicht erreichbar. Nach einem Blick im Logfile ist er in der Zeit tatsächlich tot gewesen, wurde um 01:10 wieder gestartet und um 03:20 nochmals. Ich vermute einen kleinen Stromausfall in einem Teil des beheimatenden RZ. Mal sehen was der Betreiber dazu sagt. Nach obigen Cyrus-Incidents und einem unpuscheligen Bootsektor Anfang des Monats wünsche ich mir etwas Ruhe an dieser Baustelle.

Erster Test der VKVM bei Hetzner

Im Gegensatz zu den Karlsruher Mitbewerbern bietet Hetzner bei seinen dedizierten Servern keine serielle Konsole mit an. Zwar benötigt man dieses Feature nicht wirklich oft, praktisch ist es aber dennoch, wenn man ein Unwohlbefinden des Servers beim Bootvorgang genauer untersuchen möchte bzw. auch einfach nach einem Systemupgrade den Bootvorgang miterleben will.

Als Ersatz gibt es bei Hetzner schon längere auf Anfrage stundenweise die sogenannte LARA, die ich bisher zum Glück nicht gebraucht habe. Die LARA wird an die Keyboard-, Video- und Mouse-Anschlüsse angeschlossen und bietet dem Kunden dann über ein Java-Applet Zugriff auf seinen Server. Damit hat man sogar etwas mehr Möglichkeiten als mit einer seriellen Konsole, da man mit der LARA auch den Bootvorgang boch vor dem Bootloader beobachten kann. Im Notfall muss man aber erst eine Supportanfrage absetzen und drauf hoffen, dass zeitnah eine LARA verfügbar ist.

Als Zwischenlösung gibt es seit etwas über einem Jahr auch VKVM bei Hetzner. Dabei wird der Server über das Netzwerk in ein Rescue-System geboot und darin eine VM gestartet, auf die man per VNC zugreifen kann. Diese VM kann dann das System von der Platte des Servers starten, so dass man den kompletten Bootvorgang miterleben kann.

Nachdem ich nun auch einen noch nicht produktiven Server zur Hand hatte, um das mal auszuprobieren, habe ich die Gelegenheit genutzt. Besser man macht sich vorab mit dem Feature vertraut anstatt erst im Notfall wenn man dann eh schon aufgeregt ist und die Zeit knapp ist.

Als erstes wählt man im Hetzner Robot bei seinem Server unter Rescue VKVM in der zur Installation passenden Variante aus. Man erfährt sofort URL und Zugangsdaten der VKVM-Konsole. Nicht wundern braucht man sich darüber, dass die URL auf die Haupt-IP-Adresse des eigenen Servers verweist. Nun löst man den Restart des Servers aus; entweder per Reboot auf dem Server selbst oder – wenn dieser nicht mehr erreichbar ist – über den Hetzner Robot. Es dauert nun einige Zeit bis das Rescue-Virtualisierungs-System hochgefahren ist. Nach einiger Zeit kann man dann per Java-fähigemBrowser auf die genannte URL zugreifen und sich mit den genannten Zugangsdaten anmelden. Es startet ein Java-Applet über dass man Zugriff auf die Konsole des virtualisierten Systems erhält. In dieser Konsole sieht man nun eine etwas verwirrende Boot-Schleife, bei der scheinbar versucht wird, das lokale System zu starten, was jedoch nicht klappen mag. Des rätsels Lösung ist, auf folgende Frage mit Q zu antworten:

Boot from (N)etwork or (Q)uit?

Erst dadurch wird der Bootloader auf der Festplatte des eigenen Systems gestartet, der Default N bietet hingegen weitere Diagnose- und Rescue-Möglichkeiten an aber nichtden Zugriff auf das installierte System. Einen weiteren Fallstrick gibt es nun beim Start des installierten Systems: Benutzt man einen Kernel, der auf Hardware-Virtualisierungstechniken angewiesen ist, z.B. mit Xen-Support, so scheitert der Start, denn man ist ja bereits in einer virtuellen Umgebung in der keine Hardware-Virtualisierungstechniken mehr verfügbar sein können.

Hat man auch diese Hürde geschafft startet endlich das installierte System und ist dann auch aus dem Internet z.B. per SSH erreichbar, was für Arbeiten an den Konfigurationsdateien sicherlich etwas angenehmer ist als der Zugriff über die Konsole im Java-Applet.

Verzwickt ist zum Schluss nochmal der Wechsel zurück zum „echten“ System. Die Menüpunkte des Java-Applets, die einen Strg+Alt+Entf senden lassen bzw. einen Hardware-Reset durchführen lassen wirken sich nur auf die virtuelle Umgebung aus, d.h. man verläßt damit das Rescue-VKVM-System nicht. Erst durch einen richtigen Reboot aus dem Hetzner-Robot kommt man hier wieder raus.

Fazit: Von der Handhabung her etwas komplizierter als eine serielle Konsole her, von den Diagnose- und Reparaturmöglichkeiten möglicherweise sogar etwas besser.

Unglückliche Parkplatzwahl

Letzte Woche Donnerstag gab es bei uns Abends ein großes Schneegestöber, dass den Bahnverkehr sowieso schon etwas durcheinander brachte. So hatte meine abendliche Regionalbahn bei der Abfahrt schon ca. +10 aber sie fuhr…

…bis es dann zwischen Grafing Bahnhof und Grafing Stadt zu einer Schnellbremsung mit gut durchgeschüttelten Fahrgästen kam. Kurz nach dem Stillstand des Zuges meldete sich der Tf: „Unsere Weiterfahrt verzögert sich um unbestimmte Zeit, vor uns steht ein Auto.“ Entweder wollte da noch jemand schnell die Halbschranken des BÜ umrunden oder das Auto verstarb direkt auf dem Bahnübergang.

Passiert ist zum Glück nichts weiter, nach wenigen Minuten war das Hinderniss aus dem Weg und unsere Regionalbahn konnte weiterfahren. Ob aber einer der sonst dort noch fahrenden 423er rechtzeitig zum Stillstand gekommen wäre bezweifle ich.