Verknüpfte server EINFÜGEN, AKTUALISIEREN und LÖSCHEN schlägt mit "Unbekannter provider Fehler"
Plötzlich INSERT -, UPDATE-und DELETE fehlschlägt, für eine bestimmte Datei (eine Tabelle in einem remote-system, die ich glaube, ist eine AS/400).
Den verknüpften server, die wir nutzen, die in SQL Server, und es ist mit einer ODBC-Datenquelle (DSN). Die Datenquelle ist ein "ODBC-Datenquelle für iSeries-Access für Windows".
Nur eine einzige Tabelle, die dieses problem hat. Wir können Einfügungen und Aktualisierungen an anderen Tabellen mit dem gleichen server verbunden, ohne Fehler, und Wählt immer noch Arbeit für die problematische Tabelle.
Bekommen wir diese Nachrichten für INSERT-und UPDATE-Anweisungen (server-und DB-Namen ersetzt im code unten):
Msg 7399, Level 16, State 1, Line 1
The OLE DB provider "MSDASQL" for linked server "MYSERVER" reported an error.
The provider did not give any information about the error.
Msg 7343, Level 16, State 2, Line 1
The OLE DB provider "MSDASQL" for linked server "MYSERVER" could not INSERT INTO
table "[MYSERVER].[MYDB].[DMPCOM].[DMPXIF]". Unknown provider error.
LÖSCHEN und gibt diese Meldung:
The OLE DB provider "MSDASQL" for linked server "MYSERVER" could not delete from
table ""MYDB"."DMPCOM"."DMPXIF"". There was a recoverable, provider-specific
error, such as an RPC failure.
Wenn Sie irgendwelche Hinweise zu dieser, bitte zögern Sie nicht, diese Frage zu beantworten.
Dank,
Andreas
Ich denke, dass Engagement control ist ein guter Erster Stelle zu sehen. Sehr oft, IBM i-Tabellen sind NICHT unter Engagement-Steuerung, so dass Einfügungen und Löschungen müssen, NC. Ich Frage mich, ob das DB-admin-zuletzt verändert Ihre Tabellen, so sind Sie jetzt unter Engagement-Steuerung (oder Umgekehrt)?
Journalling festgelegt worden waren, Nicht vor ein paar Tagen, wegen einem problem mit der Protokollierung von langen Texten. Wie ich es verstehe, journalling-und Engagement-Kontrolle hängt davon ab, jeder andere (oder einer von Ihnen auf der anderen). Ich habe versucht zu deaktivieren, Engagement control auf der iSeries ODBC-Datenquelle, aber das machte keinen Unterschied (gleiche Fehler wie vorher). Der DB-admin wird erstellen Sie die Tabelle mit den ursprünglichen Einstellungen auf morgen, und wir versuchen es noch einmal.
InformationsquelleAutor Andreas Jansson | 2013-01-02
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den Grund für den Fehler war, dass journalling worden war ausgeschaltet auf dem AS400-Datei, dass wir die Verbindung von SQL Server mithilfe der Option verknüpfte server und einer iSeries ODBC-Datenquelle. Dies hatte sich auch das Engagement control off.
Einstellung commit "Commit sofort (*NONE)" auf der iSeries ODBC-Datenquelle hat aber auch nicht geholfen. (Vielleicht gibt es mehr, als die änderung der Einstellung.)
Den Datenbank-administrator von der AS/400-system neu erstellt die Tabelle mit den Standardeinstellungen, einschließlich journaling und commitment control, und dann war alles wieder normal, insert, update und delete gearbeitet, aus dem verknüpften server-Verbindung.
InformationsquelleAutor Andreas Jansson