expertenaustausch > microsoft.* > microsoft.access.clientserver

Benjamin Hauser (10.07.2007, 14:02)
Hi NG,

ihr seid meine letzte Hoffnung ;-)

Hat mir jemand zu diesem Problem einen Lösungsvorschlag:


Besten Dank schon mal

Viele Grüße
Benjamin Hauser
Stefan Hoffmann (10.07.2007, 14:15)
hallo Benjamin,

Benjamin Hauser schrieb:
> Hat mir jemand zu diesem Problem einen Lösungsvorschlag:
> Ein kurze Zusammenfassung wäre trotzdem nett gewesen.


> Ich habe eine Access-Anwendung mit Zugriff auf einen MSSQL-Server.
> Wenn ich die Anwendung längere Zeit geöffnet lasse und nicht benutze,
> erscheint folgende Fehlermeldung: ADP oder MDB? Was heißt längere Zeit?


Wie sieht deine Funktion oeffneNeuCnn konkret aus, bzw. wie sieht der
Connectionstring aus?

Passiert es immer an der gleichen Stelle deiner Accessanwendung?

Lass einmal den SQL Profiler mitlaufen, und gleiche den Trace zeitlich
mit dem Fehler ab. Irgendwelche Besonderheiten?

Hast du Timeouteinstellungen?

Welche SQL Server Version?

mfG
--> stefan <--
Benjamin Hauser (10.07.2007, 16:18)
Hi Stefan,

sorry für die fehlende Zusammenfassung. Hier in Kürze:
bekomme folgende Fehlermeldung, wenn das Programm eine längere Zeit
nicht mehr benutzt wird.

"3000 Reservierter Fehler (-1104); es gibt keine Meldung für diesen
Fehler"

Zeiten: Zwischen 5min und 5h.
--> Der Zugriff erfolgt direkt per ADO auf die Datenbank, ohne
verknüpfte Tabellen.

> ADP oder MDB? Was heißt längere Zeit?


MDB / zwischen 5min und 5h

> Passiert es immer an der gleichen Stelle deiner Accessanwendung?


Nein es passiert willkürlich an irgendeiner Stelle

> Lass einmal den SQL Profiler mitlaufen, und gleiche den Trace zeitlich
> mit dem Fehler ab. Irgendwelche Besonderheiten?


was ist das und wie mache ich das?
--> großer SQL-Server wo über 1000 Leute damit arbeiten, was soll ich
da genau tracen?

> Hast du Timeouteinstellungen?

natürlich hat jede Connection ein TimeOut, aber es wird vor jeder
Funktion geprüft ob die Connection noch da ist, und dann notfalls neu
aufgebaut.

> Welche SQL Server Version? SQL Server 2000 Englisch


Conenction sieht so aus:

Sub oeffneConnection_Batch()

On Error GoTo Fehler

Set cnn_b = New ADODB.Connection
With cnn_b
.Provider = "MSDataShape"
.Properties("Data Provider").value = "SQLOLEDB"
.Properties("Data Source").value = "server"
.Properties("User ID").value = "user"
.Properties("Password").value = "pw"
.Properties("Initial Catalog").value = "datenbank"
.CursorLocation = adUseServer
.CommandTimeout = 120
.IsolationLevel = adXactBrowse
.Open
End With

Exit Sub

Fehler:
MsgBox "Error " & Err.Number & " in oeffneConnection_Batch:" &
Err.Description
End Sub

Viele Grüße
Benjamin Hauser
Stefan Hoffmann (10.07.2007, 17:05)
hallo Benjamin,

Benjamin Hauser schrieb:
>> Lass einmal den SQL Profiler mitlaufen, und gleiche den Trace zeitlich
>> mit dem Fehler ab. Irgendwelche Besonderheiten?

> was ist das und wie mache ich das? Siehe im Startmenü unter SQL Server...


> --> großer SQL-Server wo über 1000 Leute damit arbeiten, was soll ich
> da genau tracen? Na ja, alles was deine Session betrifft.


>> Hast du Timeouteinstellungen?

> natürlich hat jede Connection ein TimeOut, aber es wird vor jeder
> Funktion geprüft ob die Connection noch da ist, und dann notfalls neu
> aufgebaut. Wie hoch ist der?


>> Welche SQL Server Version?

> SQL Server 2000 Englisch SELECT @@version liefert was?


> Conenction sieht so aus:
> .Provider = "MSDataShape" Welchen Grund hat die Wahl diese Providers?


mfG
--> stefan <--
Benjamin Hauser (10.07.2007, 17:17)
Hi Stefan,

> Wie hoch ist der (Timeout)?


120 sec

> SELECT @@version liefert was?

Microsoft SQL Server 2000 - 8.00.2187 (Intel X86) Mar 9 2006
11:38:51 Copyright (c) 1988-2003 Microsoft Corporation Enterprise
Edition on Windows NT 5.2 (Build 3790: Service Pack 1)

> > Conenction sieht so aus:
> > .Provider = "MSDataShape"

> Welchen Grund hat die Wahl diese Providers?

Keine Ahnung, den hatten die Kollegen vor mir verwendet und drum nehme
auch ich diesen :-)
Ich weiß nicht was ich hier sonst nehmen kann/muss.

Viele Grüße
Benjamin Hauser
Stefan Hoffmann (10.07.2007, 18:07)
hallo Benjamin,

Benjamin Hauser schrieb:
>> SELECT @@version liefert was?

> Microsoft SQL Server 2000 - 8.00.2187 (Intel X86) Mar 9 2006
> 11:38:51 Copyright (c) 1988-2003 Microsoft Corporation Enterprise
> Edition on Windows NT 5.2 (Build 3790: Service Pack 1)

Ich empfehle auch _dringenst_ das Service Pack 4 zu installieren. Möchte
fast schon ein EOT dran hängen...

>>> Conenction sieht so aus:
>>> .Provider = "MSDataShape"

>> Welchen Grund hat die Wahl diese Providers?

> Keine Ahnung, den hatten die Kollegen vor mir verwendet und drum nehme
> auch ich diesen :-) Dann ist diese Wahl imho Nonsens, der ist eigentlich für andere Aufgaben.


> Ich weiß nicht was ich hier sonst nehmen kann/muss. Siehe




mfG
--> stefan <--
Henry Habermacher (11.07.2007, 04:07)
Hallo Stefan

Stefan Hoffmann wrote:

>> Microsoft SQL Server 2000 - 8.00.2187 (Intel X86) Mar 9 2006
>> 11:38:51 Copyright (c) 1988-2003 Microsoft Corporation Enterprise
>> Edition on Windows NT 5.2 (Build 3790: Service Pack 1)

> Ich empfehle auch _dringenst_ das Service Pack 4 zu installieren. Möchte
> fast schon ein EOT dran hängen...


Huch, da hätte ich in der Access NG auch schon drauf kommen können! SQL2k
ohne SP4 ist nicht nur weniger stabil, sondern auch ziemlich unsicher!

Nichts desto trotz: Es wäre in jedem Fall sinnvoll die Errors Collection
zumindest für das Debuggen zusätzlich zum Err Objekt abzufragen, also z.B.
so:

If Err Then
MsgBox Err.Number & " " & Err.Description
For I = 0 to Errors.Count - 1
MsgBox Errors(I).Number & " " & Err.Description
Next
End If

Gruss
Henry
Benjamin Hauser (11.07.2007, 09:36)
Hi Stefan,
> Ich empfehle auch _dringenst_ das Service Pack 4 zu installieren. Möchte
> fast schon ein EOT dran hängen...


Ich werde mal unseren DB-Admin anhauen, dass er sich dem Fall mal
annimmt ;-)
Vielen Dank für die Info.

> Dann ist diese Wahl imho Nonsens, der ist eigentlich für andere Aufgaben.
> Siehe
>


Kann mir das jemand vielleicht erklären, was das MSDAtaShape bewirkt?
Ich finde leider auch bei dem Link nicht wirklich die Info, was das
für folgen hat, bzw. was ich sonst hinschreiebn soll und was dies
bewirkt?
hat mir hier jemand vielleicht nen Tipp/Info dazu?

Vielen Dank für eure Unterstützung.

Gruß
Benni
Stefan Hoffmann (11.07.2007, 10:28)
hallo Benjamin,

Benjamin Hauser schrieb:
> Kann mir das jemand vielleicht erklären, was das MSDAtaShape bewirkt?

MSDataShap ist für die Abfrage/Darstellung einer hierarchischen
Datenmenge. Er ist nicht wriklich für relationale Daten geeignet.

> Ich finde leider auch bei dem Link nicht wirklich die Info, was das
> für folgen hat, bzw. was ich sonst hinschreiebn soll und was dies
> bewirkt? Zugegeben, war etwas kurz, siehe mal hier:




mfG
--> stefan <--
Benjamin Hauser (11.07.2007, 13:35)
Hi Stefan,

> Zugegeben, war etwas kurz, siehe mal hier:
> ...


Vielen Dank für die vielen Tips. Sollte ich mein Problem irgendwann
gelöst bekommen, werde ich die Lösung hier posten.

P.S.:
Der SQL Server hat Service-Pack 4.... Die Info über Service-Pack 1
bezieht sich wohl auf das Betriebssystem....

Gruß
Benni
Stefan Hoffmann (11.07.2007, 13:53)
hallo Benjamin,

Benjamin Hauser schrieb:
> Der SQL Server hat Service-Pack 4.... Die Info über Service-Pack 1
> bezieht sich wohl auf das Betriebssystem.... Stimmt, Nummer verwechselt, ich habe keine gute Woche...


mfG
--> stefan <--
Henry Habermacher (11.07.2007, 14:43)
Hallo Benjamin

Benjamin Hauser wrote:
> Der SQL Server hat Service-Pack 4.... Die Info über Service-Pack 1
> bezieht sich wohl auf das Betriebssystem....


Da bin ich auch darauf reingefallen.

Was gibt die Errors Collection im Fehlerfall zurück? Passiert das auf allen
Rechnern oder nur auf bestimmten (z.B. allen, die am gleichen Hub hängen).
Es könnte durchaus auch ein Netzwerkfehler sein. Diese hat der ODBC Treiber
nicht so gerne.

Gruss
Henry
Winfried Sonntag [MVP] (11.07.2007, 14:45)
Stefan Hoffmann schrieb:

> ich habe keine gute Woche...


Hmm, und dann komm ich auch noch. ;-)

Servus
Winfried
Benjamin Hauser (12.07.2007, 14:43)
Hi an Alle,
> Da bin ich auch darauf reingefallen.

--> kein Problem, ich bin auch erst von unserem DB-Admin darauf
aufmerksam gemacht worden ;-)

> Was gibt die Errors Collection im Fehlerfall zurück? Passiert das auf allen
> Rechnern oder nur auf bestimmten (z.B. allen, die am gleichen Hub hängen).
> Es könnte durchaus auch ein Netzwerkfehler sein. Diese hat der ODBC Treiber
> nicht so gerne.


Es passiert leider nicht auf allen Rechner, z.B. auf meinem gar
nicht :-(
Die Fehlerhaften Geräte lassen sich aber nicht gruppieren, die sind
quer durch ganz Deutschland verteilt und haben alle unterschiedliche
Anbindungen, etc.

Die error-Collection konnte ich bisher leider noch nicht abfangen, da
ich mich erst mal wo aufschalten muss, um das nochmals genauer
durchzuprüfen, ist aber in Arbeit, ihr hört wieder von mir ;-)

Gruß
Benni
Henry Habermacher (12.07.2007, 14:49)
Hallo Benjamin

Benjamin Hauser wrote:

> Es passiert leider nicht auf allen Rechner, z.B. auf meinem gar
> nicht :-(
> Die Fehlerhaften Geräte lassen sich aber nicht gruppieren, die sind
> quer durch ganz Deutschland verteilt und haben alle unterschiedliche
> Anbindungen, etc.


Das macht mich stutzig. Kannst Du mal einige der Arten der Anbindungen
aufzählen. Ich habe schweren Verdacht, es liegt an den Netzwerkverbindungen,
z.B. unterbrochene WiFi Anbindung oder instabile Internet Verbindung. Da ist
Access ziemlich anfällig drauf und quittiert oft mit unerklärlichen Fehlern.

> Die error-Collection konnte ich bisher leider noch nicht abfangen, da
> ich mich erst mal wo aufschalten muss, um das nochmals genauer
> durchzuprüfen, ist aber in Arbeit, ihr hört wieder von mir ;-)


Das muss sowieso rein. du solltest das mal im Code einbauen und diese Errors
Collection in ein Log-File wegschreiben. Wenn ein Benutzer sagt, es sei ihm
passiert, dann soll er Dir das Log File schicken. ErrorHandling in Access
Anwendungen ist übrigens im Download Bereich des als
Whitepaper erhältlich, kostenfrei.

Gruss
Henry

Ähnliche Themen