Toon posts:

[ASP] Connection Timeout van ODBC

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hoi, op mijn werk hebben we een interne website die zorgt voor het aanmaken van een installatiescript voor werkstations.

De site is gemaakt in ASP (oa.) en werkt met een SQL database, die erg knullig is (schijnt)...

Mijn vraag is alsvolgt:

In de site staat een stuk code wat oa. zorgt voor de connection timeout. Ik de waarde reeds op 0 gezet (dat zou oneindig moeten betekenen), maar toch blijft hij maar maximaal 30 seconden proberen. In SQL staat de timeout ook al op oneindig.

Ik heb een voorbeeldje van een soortgelijke code geplakt:

code:
1
2
3
4
5
6
7
8
9
Set cnn1 = New ADODB.Connection 

cnn1.ConnectionString = "driver={SQL Server};" & _ 

"server=bigsmile;uid=sa;pwd=pwd;database=pubs" 

cnn1.ConnectionTimeout = 30 

cnn1.Open



Heeft iemand een idee waar de timeout nog meer aangepast zou moeten worden.

[ Voor 20% gewijzigd door Verwijderd op 03-02-2003 09:43 . Reden: Code toegevoegd ]


  • Basszje
  • Registratie: Augustus 2000
  • Laatst online: 24-08 10:30

Basszje

Reisvaap!]

Script timeout :?

Is de timeout in ASP of in de SQL ?

Beware of listening to the imposter; you are undone if you once forget that the fruits of the earth belong to us all, and the earth itself to nobody.


Verwijderd

Topicstarter
ASP volgens mij...

  • Basszje
  • Registratie: Augustus 2000
  • Laatst online: 24-08 10:30

Basszje

Reisvaap!]

response.scripttimeout (uit mijn hoofd ) op iets hoogs zetten kan wellicht werken :)

Het verbeteren van de code is een betere tip waarschijnlijk :P

Beware of listening to the imposter; you are undone if you once forget that the fruits of the earth belong to us all, and the earth itself to nobody.


Verwijderd

Topicstarter
Ik weet niet of het echt een script timeout is... ben er niet zo in thuis, maar volgens mij is het puur die ADO connectie die eruit vliegt! Het kan zijn dat ik helemaal op een verkeerde plaats zit te kijken hoor... Maar goed...
Tuurlijk is het verbeteren van het script een betere tip :)

  • Basszje
  • Registratie: Augustus 2000
  • Laatst online: 24-08 10:30

Basszje

Reisvaap!]

Verwijderd schreef op 03 februari 2003 @ 09:50:
Ik weet niet of het echt een script timeout is... ben er niet zo in thuis, maar volgens mij is het puur die ADO connectie die eruit vliegt! Het kan zijn dat ik helemaal op een verkeerde plaats zit te kijken hoor... Maar goed...
En dan gaan we nu het spelletje Post-je-error spelen :P .

Is dat iets van

bla bla bla ASP scripttimeout exceeded :? .

Beware of listening to the imposter; you are undone if you once forget that the fruits of the earth belong to us all, and the earth itself to nobody.


Verwijderd

Topicstarter
Je hebt gelijk...

Ik ben vandaag alleen niet op mijn werk, dus kan de precieze error niet geven, maar ik heb een soortgelijke melding gevonden... sorry hoor!

code:
1
OBDC Drivers error '80004005' {Microsoft} {ODBC SQL Server Driver} Timeout Expired


Vandaar dus dat ik zeg dat het geen ASP script timeout is...

Verwijderd

Gebeurt dit niet terwijl je een query uitvoert? Dan dien je CommandTimeout te wijzigen (en niet de ConnectionTimeout)

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
De server wordt gewoon niet gevonden, user/pass kloppen niet of iets in die richting. Als je ASP timeout op 0 staat zit de fout waarschijnlijk in je DB(server)....

[ Voor 3% gewijzigd door RobIII op 03-02-2003 12:19 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


  • watzie
  • Registratie: Juni 2001
  • Laatst online: 07-07 16:26
Die timeout stel je in in je ODBC link, je kan proggen wat je wilt maar die kun je niet overriden. Gewoon effe naar control panel/odbc gaan dus en hoger zetten. Daarna kun je de timeout altijd op je connectie programmatisch inkorten als je dat wilt.

Verwijderd

Topicstarter
...timeout stel je in in je ODBC link...
...effe naar control panel/odbc gaan...
ODBC link heb ik inderdaad al eens in gekeken, maar ik kon niets vinden wat lijkt op ODBC connection timeout settings o.i.d.
Zou je wat specifieker kunnen aangeven waar ik moet zoeken 8)7 ??

Verwijderd

Topicstarter
Ik post nog even voor de volledigheid de 'echte' fm:

code:
1
2
3
4
Microsoft OLE DB Provider for ODBC Drivers error '80040e31' 
[Microsoft][ODBC SQL Server Driver]Timeout expired 

.../modSQL.inc, line 584

[ Voor 8% gewijzigd door Verwijderd op 04-02-2003 09:53 . Reden: volledig+heid ]


  • watzie
  • Registratie: Juni 2001
  • Laatst online: 07-07 16:26
Ligt een beetje aan welke odbc driver (MS, Sybase, etc.)

MS: next next next save long queries (met daaronder timeout, default op 30000)

Geef nu alleen toe nu ik er naar kijk: met ODBC kun je dat inderdaad meestal niet in de dsn instellen. Ik werk al een eeuwigheid niet meer met ODBC, gebruik altijd OLEDB (raad ik ook sterk aan, sneller betrouwbaarder, minder overhead, maarja je moet wel de juist driver hebben natuurlijk). In OLEDB (voor sybase dan) kun je 't wel instellen. Denk dat toch dat je het met een connection setting moet kunnen instellen. Wat voor database gebruik je? het kan ook dat je DBMS automatisch na 30 seconden de boel dichtgooit natuurlijk.

Verwijderd

Ik denk echt dat dit gebeurt tijdens het uitvoeren van een query, en niet tijdens het connecteren. Kan je dit aub bevestigen?

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Wat staat er op regel 584 in modsql.inc?

P.s. de ".inc" naam is niet al te verstandig. Die kun je namelijk gewoon downloaden als je www.site.nl/modSQL.inc intypt (of b.v. www.site.nl/inc/modSQL.inc). Ik zou 'm gewoon .asp noemen...

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Verwijderd

Topicstarter
Ik denk echt dat dit gebeurt tijdens het uitvoeren van een query, en niet tijdens het connecteren. Kan je dit aub bevestigen?
Dit klopt... Het rare is, dat als eenmaal de query een keer is gelukt, de query's ineens supersnel gaan!! Als ik dus de eerste ben of een tijdje geen query uitvoer, dan klapt de query na precies 30 sec uit z'n time-out... Na een paar keer proberen, dan heb ik ineens resultaat en dan heeft 'iets' het ideale pad gevonden en lukken de query's wel.
Wat staat er op regel 584 in modsql.inc?

P.s. de ".inc" naam is niet al te verstandig. Die kun je namelijk gewoon downloaden als je www.site.nl/modSQL.inc intypt (of b.v. www.site.nl/inc/modSQL.inc). Ik zou 'm gewoon .asp noemen...
Regel 584
code:
1
Set oRs = oCmd.Execute


Vwb betreft de extensie aanpassen naar .ASP, daar zal ik me op dit moment maar niet aan wagen... Het klinkt erg dom, maar die site en scripts zijn bij ons ooit gemaakt door iemand en die is al een jaar tig weg!! Niemand weet er iets vanaf, maar ik ben er een beetje in aan het duiken... Met mijn beperkte script kennis, kom ik stukje bij beetje ergens... maar tot nu toe tot de voordeur... ;)

Reacties op vorige posts:
Gebeurt dit niet terwijl je een query uitvoert? Dan dien je CommandTimeout te wijzigen (en niet de ConnectionTimeout)
Aangepast. Waarde op 0 gezet, maar heeft helaas geen effect!
MS: next next next save long queries (met daaronder timeout, default op 30000)
Aangepast. Aangezet en waarde op 99999 gezet... geen effect

Dus wat ik ook doe... de query blijft er na 30 seconden uitklappen... :?

Verwijderd

Gelieve volgende quote aandachtig te lezen:
"The CommandTimeout setting on a Connection object has no effect on the CommandTimeout setting on a Command object on the same Connection; that is, the Command object's CommandTimeout property does not inherit the value of the Connection object's CommandTimeout value."

(van http://msdn.microsoft.com...m/mdprocommandtimeout.asp )

Heb je hiermee rekening gehouden? Maw de commandtimeout ook op je oCmd object uitgevoerd (en niet enkel op de connectie)?
oCmd.CommandTimeout = 0

Verwijderd

Topicstarter
Heb je hiermee rekening gehouden? Maw de commandtimeout ook op je oCmd object uitgevoerd (en niet enkel op de connectie)?
oCmd.CommandTimeout = 0
Jep... gedaan!! :?

[ Voor 3% gewijzigd door Verwijderd op 04-02-2003 15:02 ]


Verwijderd

In de "sql server enterprise manager", right-click op de naam van je server en kies "properties". Click dan op de tab "Connections". Wat staat daar in het item "Query time-out"?

Verwijderd

Of ook nog: In the enterprise manager, click op "Tools", dan "Options", "Advanced". Wat is daar de "Query Time-out"?

Verwijderd

Topicstarter
In de "sql server enterprise manager", right-click op de naam van je server en kies "properties". Click dan op de tab "Connections". Wat staat daar in het item "Query time-out"?

Of ook nog: In the enterprise manager, click op "Tools", dan "Options", "Advanced". Wat is daar de "Query Time-out"?
Beide staan op 0 ... Dit had ik idd al eens bekeken :'(

Verwijderd

Open de "odbc data source administrator", click op tab "connection pooling", double-click op "sql server". Wat is daar de timeout?

Probeer eventueel eens te connecteren via de ole db provider voor sql server (zonder odbc):

cnn1.ConnectionString = "provider=sqloledb;data source=bigsmile;" & _
"initial catalog=pubs;user id=sa;password=pwd"

Verwijderd

Topicstarter
tab "connection pooling"
Wat is daar de timeout?
Timeout staat op 60

Vwb. je andere optie, daar waag ik me nog niet aan... Zoals ik eerder zei, ben ik niet zo thuis in ASP scripting!

Ik vind het allemaal zo gek??
Pagina: 1