[php/mssql]SQL verbinding sluiten

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Jochemmol
  • Registratie: Augustus 2004
  • Laatst online: 07-05-2014
Ik heb een applicatie die gebruikt maakt van MSSQL.

Ik gebruikte eerst in PHP
code:
1
mssql_pconnect

op deze manier liep iis steeds vast. Ik dacht dat dat komt omdat pconnect een verbinding maakt en die niet meer sluit. Omdat ik steeds opnieuw die functie pconnect gebruikte nam ik aan dat iis vastliep omdat er gewoon te veel verbindingen waren met MSSQL (als ik iisreset deed dan werkte het weer namelijk)
code:
1
mssql_connect

Ik zie in de MSSQL profiler dat php netjes inlogd en weer uitlogd. Ik dacht dus dat de verbinding netjes gesloten werd. Maar weer werkt het opeens niet meer. Teveel connecties 8)7

Wat doe ik fout. :? klopt mijn beredeniering. of moet ik echt iedere keer. free result() doen?

Jochemmol


Acties:
  • 0 Henk 'm!

  • Gonadan
  • Registratie: Februari 2004
  • Laatst online: 10:56

Gonadan

Admin Beeld & Geluid, Harde Waren
Bij de 'gewone' connect worden in principe alle resources vrijgegeven als het script eindigt.
Ik denk dus dat je de fout ergens anders moet zoeken :)

Look for the signal in your life, not the noise.

Canon R6 | 50 f/1.8 STM | 430EX II
Sigma 85 f/1.4 Art | 100-400 Contemporary
Zeiss Distagon 21 f/2.8


Acties:
  • 0 Henk 'm!

  • Kayshin
  • Registratie: Juni 2004
  • Laatst online: 09-03-2018

Kayshin

Bl@@T @@P!!!

Het free-en van een result hoeft niet (per sé), maar is wel veiliger. Aangeraden om dit dus te doen.

Waarom eigenlijk steeds een connect? Ik neem aan dat je maar 1x hoeft te connecten naar je db, je zooi uitlezen (ook van verschillende tabellen) en dan de connectie weer sluiten of zie ik het verkeerd?

My personal videoteek: -Clique-; -NMe- is een snol!


Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 12-06 12:44

Janoz

Moderator Devschuur®

!litemod

Heb je binnen 1 script meerdere connects? In principe heb je er namelijk maar 1 per pagina nodig.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Acties:
  • 0 Henk 'm!

  • Jochemmol
  • Registratie: Augustus 2004
  • Laatst online: 07-05-2014
ik heb een pagina met een iframe. in de 'hoofdpagina' doe ik een connect en in de iframe's.
dus ik heb dan meerdere connecties per pagina. misschien is dat de oorzaak.

de 'gewone connect', connect 1x en sluit ook weer daarna. Maar omdat ik in de inframe's ook een connectie maakt kan de boel vastlopen?

Jochemmol


Acties:
  • 0 Henk 'm!

  • Gonadan
  • Registratie: Februari 2004
  • Laatst online: 10:56

Gonadan

Admin Beeld & Geluid, Harde Waren
Jochemmol schreef op maandag 15 mei 2006 @ 11:21:
ik heb een pagina met een iframe. in de 'hoofdpagina' doe ik een connect en in de iframe's.
dus ik heb dan meerdere connecties per pagina. misschien is dat de oorzaak.

de 'gewone connect', connect 1x en sluit ook weer daarna. Maar omdat ik in de inframe's ook een connectie maakt kan de boel vastlopen?
Zou kunnen ja.

Misschien is het slimmer om alleen je hoofdpagina een connectie te laten openen en ook weer te sluiten.
Als je dat niet wilt moet je de connecties die je opent na gebruik wel weer sluiten.
Dan is het script namelijk nog niet geeindigd en blijven de connecties dus nog bestaan.
Als je dan je maximum bereikt crasht hij :)

Look for the signal in your life, not the noise.

Canon R6 | 50 f/1.8 STM | 430EX II
Sigma 85 f/1.4 Art | 100-400 Contemporary
Zeiss Distagon 21 f/2.8


Acties:
  • 0 Henk 'm!

  • Jochemmol
  • Registratie: Augustus 2004
  • Laatst online: 07-05-2014
Ik heb het maximum op 0 (=unlimited). Maar dat zou het kunnen zijn. dat ik teveel connecties maak per pagina. en dat daarom IIS crasht want die heeft teveel verbindingen tegelijk (soms dus). Ik ga het eens testen.

[ Voor 25% gewijzigd door Jochemmol op 15-05-2006 11:31 . Reden: IIS verhaal toegevoegd ]

Jochemmol


Acties:
  • 0 Henk 'm!

  • Gonadan
  • Registratie: Februari 2004
  • Laatst online: 10:56

Gonadan

Admin Beeld & Geluid, Harde Waren
Jochemmol schreef op maandag 15 mei 2006 @ 11:28:
Ik heb het maximum op 0 (=unlimited). Maar dat zou het kunnen zijn. dat ik teveel connecties maak per pagina. en dat daarom IIS crasht want die heeft teveel verbindingen tegelijk (soms dus). Ik ga het eens testen.
Tsja het instellen van het maximum betekend nog niet dat je server het ook trekt ;)

Look for the signal in your life, not the noise.

Canon R6 | 50 f/1.8 STM | 430EX II
Sigma 85 f/1.4 Art | 100-400 Contemporary
Zeiss Distagon 21 f/2.8


Acties:
  • 0 Henk 'm!

  • Jochemmol
  • Registratie: Augustus 2004
  • Laatst online: 07-05-2014
das waar maar SQL trekt het wel maar helaas IIS niet. Maar is opzich logisch. Misschien niet voldoende geheugen op mijn server.

Jochemmol


Acties:
  • 0 Henk 'm!

  • Gonadan
  • Registratie: Februari 2004
  • Laatst online: 10:56

Gonadan

Admin Beeld & Geluid, Harde Waren
Jochemmol schreef op maandag 15 mei 2006 @ 11:37:
das waar maar SQL trekt het wel maar helaas IIS niet. Maar is opzich logisch. Misschien niet voldoende geheugen op mijn server.
Mij ervaring met IIS is dat hij wel erg snel op z'n plaat gaat.
Ik werk zelf dan ook alleen met Apache. :)

Misschien dat anderen nog advies kunnen geven over alternatieven daarvoor. :)

Look for the signal in your life, not the noise.

Canon R6 | 50 f/1.8 STM | 430EX II
Sigma 85 f/1.4 Art | 100-400 Contemporary
Zeiss Distagon 21 f/2.8


Acties:
  • 0 Henk 'm!

  • Kayshin
  • Registratie: Juni 2004
  • Laatst online: 09-03-2018

Kayshin

Bl@@T @@P!!!

Mijn ervaringen met IIS zijn ook niet geweldig. Vaak crashes gehad hiermee toen ik voor school in ASP moest programmeren. Hou et bij apache of een ander goed alternatief ;)

Probeer anders eens uit te zoeken om met mysql te gaan werken, deze werkt ook een stuk fijner en beter.

My personal videoteek: -Clique-; -NMe- is een snol!


Acties:
  • 0 Henk 'm!

  • maartenba
  • Registratie: November 2001
  • Laatst online: 29-07-2024
Ik weet niet hoe het zit met PHP + IIS + MSSQL, maar ik vermoed dat je connection pool steeds blijft groeien.

Kan je met SQL profiler zien of de pool steeds blijft groeien? Dat zijn namelijk ook open connecties. Je kan in je connection string eens opnemen "Min Pool Size=0; Max Pool Size=2;"

[ Voor 30% gewijzigd door maartenba op 15-05-2006 15:34 ]


Acties:
  • 0 Henk 'm!

  • Jochemmol
  • Registratie: Augustus 2004
  • Laatst online: 07-05-2014
Oke alleen hoe moet ik dat toevoegen in mijn connection string?

ik geeft nu host ww enzo mee maar waar kan ik dan nog meer eigenschappen meegegeven?

En onder welk type valt het in de profile (ik kan kiezen uit users,enz (de events))

_/-\o_

Jochemmol


Acties:
  • 0 Henk 'm!

  • maartenba
  • Registratie: November 2001
  • Laatst online: 29-07-2024
Als je connection strings wil gebruiken moet je blijkbaar een rondje maken langs COM objecten of andere libraries... Je kan dit eens proberen, ik kan niet testen of het gaat werken:
PHP:
1
mssql_connect("Driver={SQL Server};Server=servernaam;Database=dbaam;Min Pool Size=0; Max Pool Size=2;", $user, $pass);


Eventueel kan je in php.ini nog eens kijken naar mssql.max_procs en eventueel ook mssql.max_links. Die staan standaard op -1 ("oneindig"). Zet max_procs eens op een lager getal en eventueel max_links ook een stukje lager.

Eventueel eens kijken naar odbc_connect als je er niet uitkomt.

[ Voor 33% gewijzigd door maartenba op 16-05-2006 09:31 ]

Pagina: 1