Die Windows Sprach Settings waren es leider nicht…
Fehler immer noch da.
Wieder mal ein paar Neuigkeiten.
Win7 kann als Fehlerquelle ausgeschlossen werden.
Es muss entweder die Zwangstrennung durch den Provider sein, oder die Verzögerungen bei der anfrage zum Server über das Internet.
Ich hab das Problem auch auf meine XP-SP3 Backup System reproduzieren können.
Tritt täglich auf im 24/7 Betrieb.
Aktuell im Einsatz mAirList 3.1.6
@Torben, welche Protokolle vom Server wolltest Du noch mal genau einsehen?
Ich würde mal zwei Dinge tun:
-
Das Script von der ersten Seite des Threads, das das Encoding im Systemprotokoll ausgibt, per Event alle paar Minuten ausführen - dann lässt sich erkennen, ob das Encoding wirklich im laufenden Betrieb umspringt, und wenn ja, ob zu dem Zeitpunkt noch irgendetwas auffälliges war (du sprachst von Zwangstrennung?).
-
In der PostgreSQL-Konfiguration das Query-Logging einschalten. Siehe z.B. hier: http://stackoverflow.com/questions/722221/how-to-log-postgres-sql-queries
Bei Punkt 2 könnte man dann in die Logs schauen, ob man irgendwelche SET-STATEMENT-Befehle sieht - wobei aus der PostgreSQL-Doku nicht zweifelsfrei hervorgeht, ob die überhaupt mitgeloggt werden.
Das hab ich schon versucht, allerdings ist mAirList dabei hängen geblieben, sogar die Wiedergabe wurde angehalten, also der laufende Titel lief zu Ende und der nächste wurde nicht mehr nachgeladen. Encoder bleibt connectet, aber sendet eben nur Stille.
Wenn ich das Script über “öffnen” aufrufe, bleibt zwar die GUI kurz hängen, aber alles andere läuft weiter, das geht also. Ich erinnere mich da an Prozessprioritäten beim ausführen von Batch files. Ich denke mal das hängt damit zusammen.
Ich hatte das schon auf den fraglichen Zeitraum begrenzt also kurz vor der Internettrennung und kurz danach. Beim Fritzbox trennt immer in der Gegend um 03:00 Uhr.
Hm. Ich wüsste nicht, warum sich mAirList bei der Ausführung des Scripts aufhängen sollte. Es könnte allenfalls Probleme mit Nebenläufigkeit geben, wenn die Datenbank in genau dem Moment auch versucht etwas zu machen.
Nimm mal diese modifizierte Variante, damit sollte das nicht mehr passieren, weil die Datenbankverbindung während der Ausführung gesperrt wird:
var
db: ImAirListDB;
conn: IZConnection;
stmt: IZPreparedStatement;
rs: IZResultSet;
begin
db := ImAirListDB(Database(0));
db.BeginRead;
try
conn := ImAirListDB(Database(0)).GetConnection;
stmt := conn.PrepareStatement('SHOW client_encoding');
rs := stmt.ExecuteQueryPrepared;
while rs.Next do
SystemLog('Client encoding is ' + rs.GetString(1));
finally
db.EndRead;
end;
end.