Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

SQL-Access-ODBC-Block-Problem Meldung ODBC-Aktualisierung fehlgeschlagen

Frage Entwicklung Datenbanken

Mitglied: ShitzOvran

ShitzOvran (Level 1) - Jetzt verbinden

28.10.2009 um 09:11 Uhr, 7397 Aufrufe, 4 Kommentare

Hallo liebe SQL-Profis, Ich verzweifele bei nachfolgendem Problem:

Wenn der gleiche (oder ein anderer) Benutzer aus mind. 2 Access-Frontend-Formularen auf dieselbe SQL-Backend-Tabelle zugreift (oder eine darauf aufbauenden Access-Frontend-Abfrage),
wird der Prozess geblockt. Die entsprechende Tabelle kann dann nicht mehr editiert werden.
z.B. gleichzeitige Bearbeitung von:
Form: Produktstammdaten
Form: Bestellungen (Kombinationsfeld mit Abfrage auf Stammdaten)
Form: Stücklisten ((Kombinationsfeld mit Abfrage auf Stammdaten)

Im anderen Fall (z.B. Kontakt-Tabelle aus verschiedenen Formularen bearbeiten) treten diese Blocks nicht auf

SQL-Guard Log: Blocksituation
01.
BLOCKING Statement : Auswahl in Form: Bestellungen 
02.
Parameter : 0 - SQL : SELECT "PNIdNr" ,"PN" ,"Bezeichnung" ,"Beschreibung" ,"BemerkungenIntern" ,"EK" ,"VK"  FROM "dbo"."PDB" WHERE NOT(("PN" IS NULL ) ) ORDER BY "dbo"."PDB"."PN" ,"dbo"."PDB"."Bezeichnung"   - Typ : Language Event 
03.
BLOCKED Statement : Editieren im Formular „Produkt-Stammdaten“ 
04.
Parameter : 0 - SQL : UPDATE "dbo"."PDB" SET "BeschreibungEK"=N'1',"UpdateDat"='20091007 00:00:00.000',"UpdateUser"=N'rwe'  WHERE "PNIdNr" = 31206 AND "TS" = 0x00000000027F7853 - Typ : Language Event 
05.
SQL Guard LOCKCHECK: Der blockierende Prozess 53 besteht weiterhin! Alter min: 10 Sekunden 
06.
SQL Guard LOCKCHECK: Der blockierende Prozess 53 besteht weiterhin! Alter min: 20 Sekunden 
07.
SQL Guard LOCKCHECK: Der blockierende Prozess 53 wurde terminiert
Wenn meherer User auf die gleiche Tabelle zugreifen:

SQL Guard LOCKCHECK: Der blockierende Prozess 53 besteht weiterhin! Alter min: 30 Sekunden
SQL Guard LOCKCHECK: Der blockierende Prozess 53 besteht weiterhin! Alter min: 40 Sekunden

Nach 30 sek. Wird das Editieren der Produktstammdaten wieder freigegeben und die Änderung übernommen oder es folgt nach ca. 60 sek. die Meldung:

"ODBC-Aktualisierung in einer verknüpfter Tabelle „Produktstammdaten“ fehlgeschlagen"
[Microsoft][ODBC-SQL-Server-Driver]Timeout abgelaufen (#0)

-> Wahrscheinlich wenn mehrere Benutzer auf die Tabelle zugreifen und die Sperrung nach einem bestimmten Zeitlimit nicht aufgehoben werden kann (Wo kann man das einstellen ?)

Änderungen im SQL-Guard bzgl. Zeitintervall (Check- & Killintervall) scheinen keinen Einfluß zu haben...
Ich habe von Deadlocks, no locks, row level locking und dirty reads gelesen, weiß aber nicht wo ich das Einstellen kann.
Die Abfragen laufen aus dem Access-Frontend heraus, da Views auf dem SQL-Server nicht editierbar sind und teilw. Probleme bei der Einbindung in Access haben.
Eine Umstellung auf ADP ist bei ca. 500 Abfragen zu aufwendig.
Software:
Frontend: Access 2003 SP3 auf Windows 2003 Server SP2 Terminalserver mit ca 15 Benutzern
Backend: MS SQL 2000
Verknüpft über ODBC
ODBC-Treiber
ODBCJT32.DLL Version 4.00.6305.00
SQLNCLI.DLL Version 2005.90.3042.00
SQLSRV32.DLL Version 2000.86.3959.00

der Frontend (4 GB-Ram) ist über Gigabit Netz mit dem SQL-Server (2 GB-Ram) verbunden

Anmerkung: Es gibt nur einen Useraccount, der auf den SQL-Server zugreift

Ich wäre sehr dankbar, wenn mir hier jemand Licht in meine Dunkelheit bringen kann…
Mitglied: SlainteMhath
28.10.2009 um 09:54 Uhr
Moin,

das Problem kommt aus den Comboboxen.
Is schon ne weile her, aber ich glaube in den Parametern der Abfrage kannst Du das Sperrverhalten einstellen.
ODER du Wandelst die Abfragen in SQL-Passthru um und fügst ein "with no locks" ein das Statement ein.
ODER du verwendest Views mit "no lock" und bindest die in Access ein (so haben wir das gemacht)

lg,
Slainte
Bitte warten ..
Mitglied: ShitzOvran
28.10.2009 um 10:33 Uhr
Das mit den Views, bzw Pass-Through, hatte ich auch schon im Sinn... nur leider fehlt mir an dieser Stelle das nötige Know-How um die ca 2700 komplexen Abfragen die das System umfasst anzupassen.

... gibt es nicht eine Art Converter oder Compiler, der das ganze von AccessSyntax auf SQL umconvertiert?
Bitte warten ..
Mitglied: SlainteMhath
28.10.2009 um 10:53 Uhr
... gibt es nicht eine Art Converter oder Compiler, der das ganze von AccessSyntax auf SQL umconvertiert?
MIr ist nichts bekannt. Wir hatten das "damals" mit dem Tool "Praktikant 1.0" gelöst (~16.000 Tabellen, ~10.000 Abfragen)
Bitte warten ..
Mitglied: ShitzOvran
28.10.2009 um 16:02 Uhr
also das Hauptproblem, neben der PErformance, ist eigentlich, dass an unterschiedlichen stellen geblockt wird...

gibt es im SQL Server 2000 irgendeine Einstellungsmöglichkeit, dass wenn ein Block entsteht einfach alles so schnell wie möglich gelöst wird, oder halt abgebrochen wird, ohne dass dann überall im Frondend die Mitarbeiter sitzen und warten müssen, weil alles stockt?
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Microsoft Office
ODBC Verbindung Problem mit Excel (5)

Frage von 3jojojo zum Thema Microsoft Office ...

Windows Server
gelöst Oracle ODBC Treiber in Windows 2008 R2 (3)

Frage von kschi12 zum Thema Windows Server ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

Outlook & Mail
gelöst Outlook 2010 findet ost datei nicht (19)

Frage von Floh21 zum Thema Outlook & Mail ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Windows Server
Server 2008R2 startet nicht mehr (Bad Patch 0xa) (18)

Frage von Haures zum Thema Windows Server ...