SQL Server 2005

giovedì 22 febbraio 2007 - 10.56

dilauroc Profilo | Newbie

Ciao a tutti ho un problema con Sql-server 2005

mi spiego meglio ho un'applicazione scritta in C# ed il DB è Sql-Server2005 ogni volta che vado a colloquiare con il server mi rimane appeso il processo su SQL anche se chiudo la connessione.

come posso risolvere questo problema?

alx_81 Profilo | Guru

>Ciao a tutti
Ciao!

> ho un problema con Sql-server 2005
>
>mi spiego meglio ho un'applicazione scritta in C# ed il DB è
>Sql-Server2005 ogni volta che vado a colloquiare con il server
>mi rimane appeso il processo su SQL anche se chiudo la connessione.
Che processo intendi?

Alx81 =)

http://blogs.dotnethell.it/suxstellino

dilauroc Profilo | Newbie

anche una semplice select o una stored procedure se vado sull'activity monitor di Sql-Server li trovo la anche se sono stati già eseguiti.

questo comporta che dopo un pò che ci lavoro mi va in time-out

alx_81 Profilo | Guru

>anche una semplice select o una stored procedure se vado sull'activity
>monitor di Sql-Server li trovo la anche se sono stati già eseguiti.
>
>questo comporta che dopo un pò che ci lavoro mi va in time-out
L'errore che ricevi è di timeout oppure di connection pool?
prova a mandare la stored procedure e il codice che la richiama e magari anche il messaggio di errore..

Alx81 =)

http://blogs.dotnethell.it/suxstellino

dilauroc Profilo | Newbie

l'errore è di timed out ti scrivo un pezzo di codice che mi fa rimanere appeso il processo

/**********************
string ConnectionString = ConfigurationManager.AppSettings["ConnectionString"].ToString();
SqlConnection conn = new SqlConnection(ConnectionString);
conn.Open();
SqlCommand cmd = new SqlCommand();
cmd.CommandText = "Select * from Profiles";
cmd.Connection = conn;
SqlDataReader rdr = cmd.ExecuteReader();
while (rdr.Read())
{
<istruzioni>
}
cmd.Dispose();
conn.Close();
conn.Dispose();
cmd = null;
conn = null;
***************/

ecco questo pezzo di codice quando viene eseguito se vado a vedere nell'activity monitor rimane appeso il processo in stato di "Sleeping"

ovviamente questo codice viene eseguito N volte e dopo un pò la mia applicazione va in time out

alx_81 Profilo | Guru

>l'errore è di timed out ti scrivo un pezzo di codice che mi fa
>rimanere appeso il processo
>
>/**********************
>string ConnectionString = ConfigurationManager.AppSettings["ConnectionString"].ToString();
>SqlConnection conn = new SqlConnection(ConnectionString);
> conn.Open();
> SqlCommand cmd = new SqlCommand();
> cmd.CommandText = "Select * from Profiles";
> cmd.Connection = conn;
> SqlDataReader rdr = cmd.ExecuteReader();
> while (rdr.Read())
> {
> <istruzioni>
> }
> cmd.Dispose();
> conn.Close();
> conn.Dispose();
> cmd = null;
> conn = null;
>***************/
>
>ecco questo pezzo di codice quando viene eseguito se vado a vedere
>nell'activity monitor rimane appeso il processo in stato di
>"Sleeping"
Ok.. questo significa che sta attendendo la fine di qualche altro comando..

>
>ovviamente questo codice viene eseguito N volte e dopo un pò
>la mia applicazione va in time out
Viene eseguito in un ciclo?
viene eseguito almeno una volta?
hai dei blocking o dei blocked by nell'activity monitor?

Alx81 =)

http://blogs.dotnethell.it/suxstellino

dilauroc Profilo | Newbie

viene eseguito N volte non in un ciclo ma ad ogni refresh della pagina

che vuol dire se ho dei blocking nell'activty monitor?

alx_81 Profilo | Guru

>che vuol dire se ho dei blocking nell'activty monitor?
a destra ci sono 2 colonne blocking e blocked by..
ti servono per controllare se ci sono blocchi..

Alx81 =)

http://blogs.dotnethell.it/suxstellino

dilauroc Profilo | Newbie

si ci sono dei blocchi questo cosa significa che ci sono delle istruzioni interne che non riesce a eseguire?

alx_81 Profilo | Guru

>si ci sono dei blocchi questo cosa significa che ci sono delle
>istruzioni interne che non riesce a eseguire?
Significa che altri comandi stanno bloccando le risorse che servono al tuo..

Alx81 =)

http://blogs.dotnethell.it/suxstellino

dilauroc Profilo | Newbie

e non posso fare nulla via codice per sbloccare le risorse

dove sbaglio?

dilauroc Profilo | Newbie

scusa una cosa
ma se ci sono altri processi che stanno bloccando il mio significa che il mio non è stato ancora eseguito.

ed invece non è così il comando viene eseguito tranquillamente però rimane nell'activity monitor

alx_81 Profilo | Guru

>scusa una cosa
>ma se ci sono altri processi che stanno bloccando il mio significa
>che il mio non è stato ancora eseguito.
>
>ed invece non è così il comando viene eseguito tranquillamente
>però rimane nell'activity monitor
Purtroppo così non posso aiutarti..
bisognerebbe vedere bene tutto il flusso di lavoro, i casi, il db, il monitor..ecc.. non ho informazioni sufficienti per aiutarti..
se riesci a parlarmi bene del problema, a fondo, possiamo provare a capire di cosa si tratta..

Alx81 =)

http://blogs.dotnethell.it/suxstellino
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5