Tjena
Jag håller på och gör om en mycket stor sida som i dagsläget jobbar mot Access, till MySQL.
Jag har lagt databaskopplingen i en "funcs.asp" fil som inkluderas på sidorna.
Såhär ser det ut:
'
'-------------------------------------------------------------------------------------------
' Initiera Databasanslutning
'-------------------------------------------------------------------------------------------
Public Sub open_db()
Set oConn = Server.CreateObject("ADODB.Connection")
oConn.Open("Driver={MySQL ODBC 3.51 Driver};Server=domänet.se;Port=3307;Database=min_databas;User=anv.namn;Password=mitt_passwd;Option=3;")
End Sub
'
'-------------------------------------------------------------------------------------------
' Avsluta Databasanslutning
'-------------------------------------------------------------------------------------------
Public Sub close_db()
oConn.close
Set oConn = Nothing
End Sub
'-------------------------------------------------------------------------------------------
Högst upp på undersidorna kör jag:
Dim oConn : Call open_db()
och längst ner:
Call close_db()
Detta funkade kanonbra från början, men sen har det börjat strula till sig ordentligt.
IIS gör timeout hela tiden och säger "För många anslutna användare".
Det spelar ingen roll om jag startar om IIS, får samma direkt efter iaf.
Så nu tänkte jag höra vad jag gjort för fel, är det så att mina funktioner på något sätt "felar" så att anslutningen mot MySQL ligger öppen hela tiden?
Tjena
Nu är problemet "halvlöst".
Felet verkar ligga i min funktion Call close_db(), för det verkar inte som om kopplingen stängs, utan ligger kvar, trots att nya skapas hela tiden.
Nu tog jag bort HTTP Keep-Alive i IIS och bytta ut Call close_db() mot oConn.Close : Set oConn = Nothing
Nu verkar det som om kopplingen stängs, men varför?
Det är ju precis samma kod, bara att den ligger utanför funktionen.
Hmm, det blir ingen skillnad vad jag än gör verkar det som...
Liksom igår så funkar det tills jag kommer till "kontakta-sidan", då blir det toksegt, browsern gör timeout och 403 => För många samtida anslutningar....
Nu stänger jag oConn på VARJE undersida, ändå blir det såhär.
I filen contact.asp finns inget "konstigt" heller, några olika textstycken som hämtas från en och samma funktion, inget märkvärdigt.
Går det att kolla någonstans vad och hur många typ anslutningar som ligger bakom, med script eller någonstans i IIS.
Håller på och bli tokig på det här, måste lösas.
Tacksam för alla tips!
Nu _tror_ jag att jag kommit fram till vad problemet beror på.
Jag använder en class för "forumkod" som jag hittat här på wF.
Har använt den på flera sajter, men av någon anledning har den helt plötsligt strula.
Tar jag bort min <--#include ... --> för den så funkar nämligen sajten igen som den ska.
Någon som kanske vet vad det kan bero på?
Har testat sidan på dels min egen dator med WinXP SP2 med IIS 5.1 och även en Win 2003 Server Enterprise Edition som jag har tillgång till, med exakt samma resultat på bägge.
Bifogar classen här om någon har nytta av den.
Vad kan det bero på`?
Ingen som har nån aning om vad jag ska göra?
Det verkar alltså som om de objekt jag öppnar inte stängs ordentligt.
Det är sidan "Kontakta" som strular till det, sidan funkar kanon fram tills att jag går in på den sidan, då blir allt trögt som attan och sidan gör timeout ända tills jag startar om IIS.
Här är min kod:
<!--#include file="css/funcs.asp"-->
<!--#include file="css/w3_parser.asp"-->
<%
'---------------
' DBMS-INST.
'--------------------------------------------------
Set oConn = Server.CreateObject("ADODB.Connection")
oConn.Open(dbms)
'--------------------------------------------------
%>
<table cellpadding="0" cellspacing="0" style="width: 395px;">
<tr>
<td class="bTxt" style="padding-bottom: 15px; font-size: 11pt; vertical-align: top;"><b>Adress:</b></td>
<td class="bTxt" style="padding-bottom: 15px; width: 290px;">
<%
sSql = "SELECT " &_
"tText " &_
"FROM tbl_content " &_
"WHERE tSite = 'pCon_Addr' " &_
"LIMIT 1"
Set rs = oConn.Execute(sSql)
If Not rs.EOF Then
Response.Write(wfParser.Parse(rs("tText")))
End If
rs.Close : Set rs = Nothing
%>
</td>
</tr>
<tr>
<td class="bTxt" style="padding-bottom: 7px; font-size: 11pt;"><b>Besöksadress:</b></td>
<td class="bTxt" style="padding-bottom: 7px; width: 290px;">
<%
sSql = "SELECT " &_
"tText " &_
"FROM tbl_content " &_
"WHERE tSite = 'pCon_PG' " &_
"LIMIT 1"
Set rs = oConn.Execute(sSql)
If Not rs.EOF Then
Response.Write(wfParser.Parse(rs("tText")))
End If
rs.Close : Set rs = Nothing
%>
</td>
</tr>
<tr>
<td class="bTxt" style="padding-bottom: 7px; font-size: 11pt;"><b>Bankgiro:</b></td>
<td class="bTxt" style="padding-bottom: 7px; width: 290px;">
<%
sSql = "SELECT " &_
"tText " &_
"FROM tbl_content " &_
"WHERE tSite = 'pCon_BG' " &_
"LIMIT 1"
Set rs = oConn.Execute(sSql)
If Not rs.EOF Then
Response.Write(wfParser.Parse(rs("tText")))
End If
rs.Close : Set rs = Nothing
%>
</td>
</tr>
<tr>
<td class="bTxt" style="padding-bottom: 7px; font-size: 11pt;"><b>Telefon:</b></td>
<td class="bTxt" style="padding-bottom: 7px; width: 290px;">
<%
sSql = "SELECT " &_
"tText " &_
"FROM tbl_content " &_
"WHERE tSite = 'pCon_Tele' " &_
"LIMIT 1"
Set rs = oConn.Execute(sSql)
If Not rs.EOF Then
Response.Write(wfParser.Parse(rs("tText")))
End If
rs.Close : Set rs = Nothing
%>
</td>
</tr>
<tr>
<td colspan="2" class="bTxt" style="padding-bottom: 5px; font-size: 11pt; vertical-align: top;"><b>Telefontider:</b></td>
</tr>
<tr>
<td colspan="2" class="bTxt" style="padding-bottom: 25px; width: 300px;">
<%
sSql = "SELECT " &_
"tText " &_
"FROM tbl_content " &_
"WHERE tSite = 'pCon_TeleTime' " &_
"LIMIT 1"
Set rs = oConn.Execute(sSql)
If Not rs.EOF Then
Response.Write(wfParser.Parse(rs("tText")))
End If
rs.Close : Set rs = Nothing
%>
</td>
</tr>
<tr>
<td class="dLine" colspan="2" style="padding-bottom: 5px;"><img src="pics/spacer.gif" style="border: 0px;" alt="Streckad Linje"></td>
</tr>
<tr>
<td colspan="2" class="bTxt" style="text-align: left; font-size: 11pt; padding-left: 2px; padding-bottom: 2px; padding-top: 0px;">
<b>Hitta hit:</b>
</td>
</tr>
<tr>
<td colspan="2" class="bTxt" style="text-align: left; font-size: 11pt; padding-left: 2px; padding-bottom: 2px; padding-top: 0px;">
<%
sSql = "SELECT " &_
"tText " &_
"FROM tbl_content " &_
"WHERE tSite = 'Find_Us' " &_
"LIMIT 1"
Set rs = oConn.Execute(sSql)
If Not rs.EOF Then
Response.Write(wfParser.Parse(rs("tText")))
End If
rs.Close : Set rs = Nothing
%>
</td>
</tr>
<tr>
<td class="dLine" colspan="2"><img src="pics/spacer.gif" style="border: 0px;" alt="Streckad Linje"></td>
</tr>
<%
oConn.Close : Set oConn = Nothing
Set wfParser = Nothing
%>
Nu kör jag ju objekten rs och wfParser flera gånger efter varandra, men jag stänger föregående innan jag öppnar nästa, så jag fattar inte riktigt vad som ska till för att det ska funka.
Nä, det måste vara något annat fel i min fil, för det funkar till en början, men så småningom så hänger sig hela sajten, bara när man besökar "contact.asp", skitkonstigt.
Jag hittar inga fel i filen, men jag bifogar den här, så om någon har lust att kolla igenom den vore ingen gladare än jag.