Ich habe für nur einige Jahre programmiert, und wir haben eine Standarddll, die für den Datenzugriff verwendet wird. Es scheint, dass in letzter Zeit einige Data-Mining- oder Site-Scraping-Vorgänge stattgefunden haben. Obwohl es keine Probleme mit unseren SQL-Datenbankverbindungen gibt, halten viele Programme, die auf as/400 zugreifen, Verbindungen für längere Zeit offen und inaktiv Zeit. Ich schaute durch unsere Standard-Datenzugriffsdll und fügte Code hinzu, um die Verbindung nach jeder Funktion zu schließen, aber das half nicht. Ich habe wenig Erfahrung mit db2/as/400 ... Wie schließe ich alle diese Open/Idle-Verbindungen aus dem Code?Programm, das Verbindungen zu db2400/as/400 nicht schließt
0
A
Antwort
1
Wenn Sie Verbindungspools verwenden, funktioniert das wie vorgesehen.
Sind Sie sicher, dass die Verbindung tatsächlich geöffnet ist? Wie bestimmen Sie das?
Wenn Sie nur Sperren sehen, die vom Job QZDASOINIT auf dem IBM i gehalten werden, dann ist das auch beabsichtigt. Das System schließt die Tabellen (Cursor) nach der ersten Verwendung. Bei einer erneuten Verwendung durch den gleichen Job wird das System sie nur pseudo schließen; um eine schnellere Antwort zu liefern, wenn sie wiederverwendet werden.
Wenn ein Vorgang versucht wird, der exklusiven Zugriff erfordert, schließt das System den Pseudo-Closed-Cursor.
Verwandte Themen
- 1. Kotliquery schließt nicht postgresql Verbindungen
- 2. AsynchronousServerSocketChannel schließt die eingerichteten Verbindungen nicht
- 3. Schließt PDO jemals persistente Verbindungen?
- 4. Hibernate Spring schließt keine Verbindungen
- 5. Application.Exit Schließt mein Programm nicht, irgendwelche Alternativen?
- 6. Warum schließt Tomcat keine HTTP-Verbindungen?
- 7. PHP schließt keine Verbindungen zur Datenbank (odbc)
- 8. Hibernate schließt keine Verbindungen/Sitzungen auf DB
- 9. vert.x async jdbc schließt keine Verbindungen
- 10. Chat-Programm schließt sich automatisch
- 11. PyQt-Popupfenster über das Tray-Icon, das das Programm beim Schließen des Fensters nicht schließt
- 12. Warum schließt VB das Konsolenfenster zu früh?
- 13. Mein Thread schließt sich, während das Programm läuft
- 14. Datenbankverbindung schließt nicht ordnungsgemäß
- 15. wie man gdb Verbindung schließt, ohne laufende Programm zu stoppen
- 16. Java: Programm schließt, wenn es zuhören muss
- 17. Warum immer 5 Verbindungen ohne Programm angeschlossen?
- 18. Bedingung für, wenn außerhalb Programm schließt
- 19. Java Start Node.js Programm schließt sofort
- 20. Warum schließt dieses Java-Programm beim Beenden nicht?
- 21. C-Programm schließt nach erstem getchar()
- 22. Schließen Powershell-Fenster schließt auch mein Programm
- 23. C# Warum schließt form.Close() das Formular nicht?
- 24. mein Programm schließt und ich weiß nicht warum
- 25. FormClosed-Ereignis, das nicht aufgerufen wird, wenn Hauptformular schließt
- 26. Python Marionette Client schließt das letzte Fenster nicht
- 27. PyQt5. Das Dialogfenster wird nicht angezeigt. Schließt das Hauptfenster statt
- 28. QMessageBox schließt nicht
- 29. PyQt-Fenster schließt nicht
- 30. Orientdb Verbindung schließt nicht
Sie sollten 'using' immer verwenden, wenn Sie mit Datenbankverbindungen arbeiten. Dies gewährleistet die ordnungsgemäße Schließung von Verbindungen und die Entsorgung von Objekten. Siehe https://stackoverflow.com/questions/5243398/will-a-using-block-close-a-database-connection – VDWWD
Wir benutzen 'using', aber ich lese, dass könnte tatsächlich ein Teil des Problems sein, wenn es darum geht as/400 - ist das möglich? – deebs