MS-SQL/ColdFusion: Geheimnisvoll Datenbank-Fehler: Objekt wurde geschlossen
Ich bin mit ColdFusion mit Microsoft SQL Server 2005 und gelegentlich bekomme ich diesen Fehler:
"[Macromedia][SQLServer JDBC Driver] - Objekt wurde geschlossen."
Wird die traceback-führt unweigerlich zu einer SQL-Abfrage, wie man erwarten würde, selbst einfache SELECT-Befehle mit keine JOINs oder input-Parametern oder-nichts besonderes.
Die einzige Lösung, die ich gehört habe über so weit ist, neu zu starten "der service", die ich mir nur vorstellen kann, bezieht sich auf den SQL Server-Dienst. Ich habe versucht, Neustart von SQL Server und den ColdFusion-Dienst, aber es immer noch geschieht nach dem Zufallsprinzip mal.
(Auch ein Neustart ist keine Lösung. Man kann nicht beliebige Seiten geben willkürliche Fehlermeldungen zu beliebigen Zeitpunkten in einer Produktionsumgebung.)
Wenn es Auftritt, es tritt auf, beharrlich für ein paar Minuten, dann geht Weg und hat vielleicht wieder in ein paar Sekunden oder Minuten. Es begann, die passiert, wenn I war die Entwicklung einer JavaScript-Teil meiner Anwendung, die nichts zu tun haben-entweder mit der ColdFusion-code oder SQL-Befehlen.
Meiner Suche im Internet blieben bisher ohne Erfolg bisher.
Jede Hilfe dankbar.
- Haben Sie versucht, Blick auf die SQL-logs, um zu sehen, wenn Sie herausfinden können, was es verursacht wird?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dieser ist alt, aber ich lief einfach in dieses und fand einen Weg, es zu tun, ohne Neustart VGL.
In ColdFusion Administrator gehen Sie auf Ihre Datenquellen zu und Bearbeiten Sie die eine, die verursacht dein problem. Ändern Sie es, wie das überprüfen einer unwichtigen Feld und Abschicken.
Dadurch wird eine Neukonfiguration der Verbindung und erlauben es, um zu arbeiten. Gehen Sie zurück in und un-tick die box (wenn Sie nicht wirklich wollen, es ist markiert).
Zum Beispiel. Ich schaltete "Enable High-ASCII-Zeichen..." Treffer vorlegen und die datasource gearbeitet. Dann ging ich zurück und überprüft es wieder aus und übernehmen Sie die änderungen erneut.
Kein Neustart! Ideal, wenn dies ist ein Produktions-box.
Liefen wir in dieses problem mit CF9 und den Dienst neu zu starten hat nicht geholfen. Wir gelöscht und neu erstellt, die problematische DSN in der CF-Konfiguration, und das hat das Problem behoben. Also, wenn die anderen Lösungen nicht funktionieren, geben diesem einen Versuch.
Mein Bauchgefühl ist, dass Sie gehen zu müssen, um nach außen zu schauen, der code und die Arbeit mit einem DBA zu untersuchen, die die Stabilität der Datenbank-server selbst. Es klingt wie der SQL Server-Dienst hängt oder immer nicht reagiert.
Wie die meisten alle software, die benimmt, ist der erste Ort, den ich sehen ist der Treiber. Sie können sicher sein wollen, dass Sie über die neuesten Microsoft-JDBC-Treiber. Ich weiß, Sie haben sich verbessert Sie die performance Ihrer neuesten Treiber, und möglicherweise ist dies auch das Problem beheben, sind Sie zu sehen.
Wenn Sie die Treiber, die im Lieferumfang von ColdFusion, es ist absolut lohnt sich ein Upgrade.
http://www.microsoft.com/downloads/en/details.aspx?FamilyID=a737000d-68d0-4531-b65d-da0f2a735707&displaylang=en
Bewusst sein, dass, wenn Sie aktualisieren, wenn Sie INSERT-Anweisungen, verwenden Sie SCOPE_IDENTITY (), um die ID der neu eingefügten Zeile, müssen Sie auf SET NOCOUNT ON; an der Spitze der einzelnen INSERT-Anweisung, um zu verhindern, dass SQL Server die Rückgabe der Anzahl der Zeilen eingefügt, statt der ID der eingefügten Zeile.
Dan
Gab es einen bug im sQL 2K und ich denke, 2K5, so dass das system würde denken, es war im shutdown-Modus, trotz dass Sie nie aufgefordert, den Dienst zu schließen. IIRC, es warf eine Fehlermeldung ähnlich zu verkaufen. Es wurde ein patch für dieses ausgestellt meiner MS, aber ich glaube mich zu erinnern es war ein separater download statt, der Teil der MS-Update.
Leid, so vage, aber es ist schon eine Weile her, seit ich befasste sich mit diesem problem. Hoffe, dies hilft Ihnen den Einstieg, aber.
Stellt sich heraus, das einfach passiert, wenn der server überlastet ist. Es scheint keine andere Abhilfe, als ein Neustart und/oder entfernen der Last aus der server.
Danke an alle die antworteten, sowieso!