OVH Cloud OVH Cloud

IIS 6.0 arrête de servir des pages utilisant ADO Stream

2 réponses
Avatar
Bonjour,

Je rencontre un problème sérieux avec IIS 6.0. En effet Il bloque sur
certaines pages utilisant l'instruction Execute de l'objet ADODB.Command
avec l'otion AdExecuteStream ( voir extrait du code en bas). Ces memes pages
continuent de fonctionner lorsque je mets en commentaires l'instruction
Execute,,adExecuteStream ou lorsque je recycle le Pool.
Je précise aussi que ses pages marchent bien pendant une ceratine periode
( parfois 1 jours, parfois moins d'1 journee) et puis le plantage de IIS sur
ces pages se produit. Les autres pages du site n'utilisant pas l'option
adExecuteStream contniuent de fonctionner correctement.
Au moment ou il ya plantage je vérifie bien que ce n'est pas un probleme
SQL server et j'execute bien ma procedure stocké appelé par la commande
execute dans l'analyseur de requete.
Notre config est IIS 6.0 et windows 2003 server .

Je vous remercie d'avance pour votre aide.

voici un extrait du code qui produit le plantage : ( c'est l'instrcution
cmd.Execute , ,adExecuteStream qui produit le plantage)

Dim ADOStream , AdoConn , strConn
strConn = "PROVIDER=SQLOLEDB;Server=" & NR_CONFIG_SERVER & ";UID=" &
NR_CONFIG_SQL_USER & ";PWD=" & NR_CONFIG_SQL_PASSWORD & ";Database=" &
NR_CONFIG_DATABASE & ";"
set AdoConn = Server.CreateObject("ADODB.Connection")
AdoConn.Open strConn
Set cmd = Server.CreateObject("ADODB.Command")
set ADOStream = Server.CreateObject("ADODB.Stream")
Set cmd.ActiveConnection = AdoConn
cmd.CommandType = adCmdStoredProc
cmd.CommandText = "dbo.nr_getOrderedPagination"
cmd.Parameters.Refresh cmd("@s_tableName") = nameTable
cmd("@s_fieldName") = strNameOfSortField
cmd("@s_orderBy") = ourOrderBy
cmd("@i_nbChar") = cint(nbChars)
cmd("@i_nPageSize") = cLng(maxRecord_To_DSP)
ADOStream.Open
cmd.Properties("Output Stream").Value = ADOStream

'------------- Ici se produit le plantage ----------------
cmd.Execute , ,adExecuteStream
'-------------------------------------- ----------------

if err.number <> 0 then DSP_Page_NavigationByWord = "ERROR:" & err.
description exit function err.clear end if

dim strRet , strOptions
strOptions = "" strOptions = ADOStream.ReadText

ADOStream.Close
AdoConn.Close
set ADOStream = nothing
Set cmd = nothing
set AdoConn = nothing

2 réponses

Avatar
jbongran
Taher Sehli wrote:
Bonjour,

Je rencontre un problème sérieux avec IIS 6.0. En effet Il bloque sur
certaines pages utilisant l'instruction Execute de l'objet
ADODB.Command avec l'otion AdExecuteStream ( voir extrait du code en
bas). Ces memes pages continuent de fonctionner lorsque je mets en
commentaires l'instruction Execute,,adExecuteStream ou lorsque je
recycle le Pool. Je précise aussi que ses pages marchent bien pendant une
ceratine
periode ( parfois 1 jours, parfois moins d'1 journee) et puis le
plantage de IIS sur ces pages se produit. Les autres pages du site
n'utilisant pas l'option adExecuteStream contniuent de fonctionner
correctement. Au moment ou il ya plantage je vérifie bien que ce n'est
pas un
probleme SQL server et j'execute bien ma procedure stocké appelé par
la commande execute dans l'analyseur de requete.
Notre config est IIS 6.0 et windows 2003 server .

Je vous remercie d'avance pour votre aide.

voici un extrait du code qui produit le plantage : ( c'est
l'instrcution cmd.Execute , ,adExecuteStream qui produit le plantage)

Dim ADOStream , AdoConn , strConn
strConn = "PROVIDER=SQLOLEDB;Server=" & NR_CONFIG_SERVER & ";UID=" &
NR_CONFIG_SQL_USER & ";PWD=" & NR_CONFIG_SQL_PASSWORD & ";Database=" &
NR_CONFIG_DATABASE & ";"
set AdoConn = Server.CreateObject("ADODB.Connection")
AdoConn.Open strConn
Set cmd = Server.CreateObject("ADODB.Command")
set ADOStream = Server.CreateObject("ADODB.Stream")
Set cmd.ActiveConnection = AdoConn
cmd.CommandType = adCmdStoredProc
cmd.CommandText = "dbo.nr_getOrderedPagination"
cmd.Parameters.Refresh cmd("@s_tableName") = nameTable
cmd("@s_fieldName") = strNameOfSortField
cmd("@s_orderBy") = ourOrderBy
cmd("@i_nbChar") = cint(nbChars)
cmd("@i_nPageSize") = cLng(maxRecord_To_DSP)
ADOStream.Open
cmd.Properties("Output Stream").Value = ADOStream

'------------- Ici se produit le plantage ----------------
cmd.Execute , ,adExecuteStream
'-------------------------------------- ----------------

if err.number <> 0 then DSP_Page_NavigationByWord = "ERROR:" & err.
description exit function err.clear end if

dim strRet , strOptions
strOptions = "" strOptions = ADOStream.ReadText

ADOStream.Close
AdoConn.Close
set ADOStream = nothing
Set cmd = nothing
set AdoConn = nothing



Essayes d'enlever pour debug le trap d'erreur, peut être aura tu la chance
de voir enfin la cause de ce blocage.
Tu peux également afin de réduire l'attente, indiquer un timeout
relativement court (supérieur quand même au temps maxi normal de la requête)
sur l'objet cmd (genre cmd.TimeOut = 30)
Rien dans les logs d'évènements ?
Avatar
"jbongran" a écrit dans le message de news:
4279410b$0$7934$
Taher Sehli wrote:
Bonjour,

Je rencontre un problème sérieux avec IIS 6.0. En effet Il bloque sur
certaines pages utilisant l'instruction Execute de l'objet
ADODB.Command avec l'otion AdExecuteStream ( voir extrait du code en
bas). Ces memes pages continuent de fonctionner lorsque je mets en
commentaires l'instruction Execute,,adExecuteStream ou lorsque je
recycle le Pool. Je précise aussi que ses pages marchent bien pendant une
ceratine
periode ( parfois 1 jours, parfois moins d'1 journee) et puis le
plantage de IIS sur ces pages se produit. Les autres pages du site
n'utilisant pas l'option adExecuteStream contniuent de fonctionner
correctement. Au moment ou il ya plantage je vérifie bien que ce n'est
pas un
probleme SQL server et j'execute bien ma procedure stocké appelé par
la commande execute dans l'analyseur de requete.
Notre config est IIS 6.0 et windows 2003 server .

Je vous remercie d'avance pour votre aide.

voici un extrait du code qui produit le plantage : ( c'est
l'instrcution cmd.Execute , ,adExecuteStream qui produit le plantage)

Dim ADOStream , AdoConn , strConn
strConn = "PROVIDER=SQLOLEDB;Server=" & NR_CONFIG_SERVER & ";UID=" &
NR_CONFIG_SQL_USER & ";PWD=" & NR_CONFIG_SQL_PASSWORD & ";Database=" &
NR_CONFIG_DATABASE & ";"
set AdoConn = Server.CreateObject("ADODB.Connection")
AdoConn.Open strConn
Set cmd = Server.CreateObject("ADODB.Command")
set ADOStream = Server.CreateObject("ADODB.Stream")
Set cmd.ActiveConnection = AdoConn
cmd.CommandType = adCmdStoredProc
cmd.CommandText = "dbo.nr_getOrderedPagination"
cmd.Parameters.Refresh cmd("@s_tableName") = nameTable
cmd("@s_fieldName") = strNameOfSortField
cmd("@s_orderBy") = ourOrderBy
cmd("@i_nbChar") = cint(nbChars)
cmd("@i_nPageSize") = cLng(maxRecord_To_DSP)
ADOStream.Open
cmd.Properties("Output Stream").Value = ADOStream

'------------- Ici se produit le plantage ----------------
cmd.Execute , ,adExecuteStream
'-------------------------------------- ----------------

if err.number <> 0 then DSP_Page_NavigationByWord = "ERROR:" & err.
description exit function err.clear end if

dim strRet , strOptions
strOptions = "" strOptions = ADOStream.ReadText

ADOStream.Close
AdoConn.Close
set ADOStream = nothing
Set cmd = nothing
set AdoConn = nothing



Essayes d'enlever pour debug le trap d'erreur, peut être aura tu la chance
de voir enfin la cause de ce blocage.
Tu peux également afin de réduire l'attente, indiquer un timeout
relativement court (supérieur quand même au temps maxi normal de la
requête) sur l'objet cmd (genre cmd.TimeOut = 30)
Rien dans les logs d'évènements ?



Bonjour et merci pour ta réponse.
il s'agit en fait d'un bug dans le MDAC. Microsoft nous a fourni un hotfix
et ca resoud le probleme.