Ich arbeite mit redshift mit Java und Node Js. Vor einiger Zeit wurde festgestellt, dass das Ereignis disconnect nicht bei allen eingehenden Verbindungsaufrufen erstellt wurde. Java (mit redshift.jdbc41):Redshift Verbindungen nicht ordnungsgemäß geschlossen
Connection conn = null;
Statement stmt = null;
try {
...
} catch (Exception ex){
throw new Exception("Can't sync raw data from redshift");
}finally {
try {
if (stmt != null) {
stmt.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
try {
if (conn != null) {
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
und Knoten Js (mit pg Modul) Beispiel:
var client = new pg.Client(conString);
client.connect(function (err) {
if (err) throw err;
client.query(query, function (err, result) {
client.end(function (err) {if (err) throw err;});
...
});
});
So nach Code aufgerufen Abfrage ausgeführt Verbindung zu schließen, aber in stl_connection_log für einen Teil der Verbindungen erstellt nur initiierende Sitzung Ereignis, aber keine Sitzung trennen, so dass viele Verbindungen tagelang aktiv sind und nicht zurückgesetzt werden, nachdem die Clientanwendung gestoppt wurde.
Kann jemand Ratschläge zur Lösung dieses Problems geben? Möglicherweise sind einige Konfigurationen für die Rotverschiebung oder eine andere Art der Arbeit in der Client-Anwendung erforderlich?
Sie können idleTimeoutMillis: in Ihrer Verbindungszeichenfolge festlegen. –