Trazas de servidor

30/05/2006 - 13:11 por Luis Martín | Informe spam
Hola,

Estoy intentando crear un fichero de trazas en el servidor. Para ello he
utilizado el siguiente código sacado del profiler:

declare @rc int
declare @TraceID int
declare @maxfilesize bigint
set @maxfilesize = 5

exec @rc = sp_trace_create @TraceID output, 2, N'C:\Trazas\Traza',
@maxfilesize, NULL
if (@rc != 0) goto error

declare @on bit
set @on = 1
exec sp_trace_setevent @TraceID, 12, 11, @on -- LoginName
exec sp_trace_setevent @TraceID, 12, 8, @on -- HostName
exec sp_trace_setevent @TraceID, 12, 3, @on -- DatabaseID
exec sp_trace_setevent @TraceID, 12, 1, @on -- TextData
exec sp_trace_setevent @TraceID, 12, 10, @on -- ApplicationName
exec sp_trace_setevent @TraceID, 12, 14, @on -- StartTime
exec sp_trace_setevent @TraceID, 12, 15, @on -- EndTime
exec sp_trace_setevent @TraceID, 12, 60, @on -- IsSystem

exec sp_trace_setstatus @TraceID, 1

select TraceID=@TraceID
goto finish

error:
select ErrorCode=@rc

finish:
go

Parece que todo va bien, no me da ningún error, pero sin embargo, a pesar de
crear el fichero no escribe nada en él. He probado con otros eventos y nada,
nunca me escribe. ¿Alguien puede decirme si me falta hacer algo o donde puede
estar el problema.

Muchísimas gracias.
Luis.

Preguntas similare

Leer las respuestas

#1 Alejandro Mesa
30/05/2006 - 15:30 | Informe spam
Luis,

Una vez creado el trace y puesto en marcha, has chequeado su estado usando
la funcion fn_trace_getinfo?

Coje el valor devuelto por la sentencia:

select TraceID=@TraceID



y usalo con la funcion.

SELECT *
FROM ::fn_trace_getinfo(trace_id)


AMB

"Luis Martín" wrote:

Hola,

Estoy intentando crear un fichero de trazas en el servidor. Para ello he
utilizado el siguiente código sacado del profiler:

declare @rc int
declare @TraceID int
declare @maxfilesize bigint
set @maxfilesize = 5

exec @rc = sp_trace_create @TraceID output, 2, N'C:\Trazas\Traza',
@maxfilesize, NULL
if (@rc != 0) goto error

declare @on bit
set @on = 1
exec sp_trace_setevent @TraceID, 12, 11, @on -- LoginName
exec sp_trace_setevent @TraceID, 12, 8, @on -- HostName
exec sp_trace_setevent @TraceID, 12, 3, @on -- DatabaseID
exec sp_trace_setevent @TraceID, 12, 1, @on -- TextData
exec sp_trace_setevent @TraceID, 12, 10, @on -- ApplicationName
exec sp_trace_setevent @TraceID, 12, 14, @on -- StartTime
exec sp_trace_setevent @TraceID, 12, 15, @on -- EndTime
exec sp_trace_setevent @TraceID, 12, 60, @on -- IsSystem

exec sp_trace_setstatus @TraceID, 1

select TraceID=@TraceID
goto finish

error:
select ErrorCode=@rc

finish:
go

Parece que todo va bien, no me da ningún error, pero sin embargo, a pesar de
crear el fichero no escribe nada en él. He probado con otros eventos y nada,
nunca me escribe. ¿Alguien puede decirme si me falta hacer algo o donde puede
estar el problema.

Muchísimas gracias.
Luis.
Respuesta Responder a este mensaje
#2 Luis Martín
30/05/2006 - 18:03 | Informe spam
Hola Alejandro,

En primer lugar darte las gracias por tu ayuda.

He ejecutado la función y lo que obtengo es lo siguiente:
TraceID Property Value
1 1 2
1 2 C:\Trazas\Traza
1 3 5
1 4 NULL
1 5 1

Osea, según esto la traza está en ejecución. No se muy bien lo que puede
estar pasando.

Muchas gracias y un saludo.

"Alejandro Mesa" escribió:

Luis,

Una vez creado el trace y puesto en marcha, has chequeado su estado usando
la funcion fn_trace_getinfo?

Coje el valor devuelto por la sentencia:

> select TraceID=@TraceID

y usalo con la funcion.

SELECT *
FROM ::fn_trace_getinfo(trace_id)


AMB

"Luis Martín" wrote:

> Hola,
>
> Estoy intentando crear un fichero de trazas en el servidor. Para ello he
> utilizado el siguiente código sacado del profiler:
>
> declare @rc int
> declare @TraceID int
> declare @maxfilesize bigint
> set @maxfilesize = 5
>
> exec @rc = sp_trace_create @TraceID output, 2, N'C:\Trazas\Traza',
> @maxfilesize, NULL
> if (@rc != 0) goto error
>
> declare @on bit
> set @on = 1
> exec sp_trace_setevent @TraceID, 12, 11, @on -- LoginName
> exec sp_trace_setevent @TraceID, 12, 8, @on -- HostName
> exec sp_trace_setevent @TraceID, 12, 3, @on -- DatabaseID
> exec sp_trace_setevent @TraceID, 12, 1, @on -- TextData
> exec sp_trace_setevent @TraceID, 12, 10, @on -- ApplicationName
> exec sp_trace_setevent @TraceID, 12, 14, @on -- StartTime
> exec sp_trace_setevent @TraceID, 12, 15, @on -- EndTime
> exec sp_trace_setevent @TraceID, 12, 60, @on -- IsSystem
>
> exec sp_trace_setstatus @TraceID, 1
>
> select TraceID=@TraceID
> goto finish
>
> error:
> select ErrorCode=@rc
>
> finish:
> go
>
> Parece que todo va bien, no me da ningún error, pero sin embargo, a pesar de
> crear el fichero no escribe nada en él. He probado con otros eventos y nada,
> nunca me escribe. ¿Alguien puede decirme si me falta hacer algo o donde puede
> estar el problema.
>
> Muchísimas gracias.
> Luis.
Respuesta Responder a este mensaje
#3 Alejandro Mesa
31/05/2006 - 14:51 | Informe spam
Luis,

Que pasa cuando arrancas ese trace pero desde Profiler?


AMB

"Luis Martín" wrote:

Hola Alejandro,

En primer lugar darte las gracias por tu ayuda.

He ejecutado la función y lo que obtengo es lo siguiente:
TraceID Property Value
1 1 2
1 2 C:\Trazas\Traza
1 3 5
1 4 NULL
1 5 1

Osea, según esto la traza está en ejecución. No se muy bien lo que puede
estar pasando.

Muchas gracias y un saludo.

"Alejandro Mesa" escribió:

> Luis,
>
> Una vez creado el trace y puesto en marcha, has chequeado su estado usando
> la funcion fn_trace_getinfo?
>
> Coje el valor devuelto por la sentencia:
>
> > select TraceID=@TraceID
>
> y usalo con la funcion.
>
> SELECT *
> FROM ::fn_trace_getinfo(trace_id)
>
>
> AMB
>
> "Luis Martín" wrote:
>
> > Hola,
> >
> > Estoy intentando crear un fichero de trazas en el servidor. Para ello he
> > utilizado el siguiente código sacado del profiler:
> >
> > declare @rc int
> > declare @TraceID int
> > declare @maxfilesize bigint
> > set @maxfilesize = 5
> >
> > exec @rc = sp_trace_create @TraceID output, 2, N'C:\Trazas\Traza',
> > @maxfilesize, NULL
> > if (@rc != 0) goto error
> >
> > declare @on bit
> > set @on = 1
> > exec sp_trace_setevent @TraceID, 12, 11, @on -- LoginName
> > exec sp_trace_setevent @TraceID, 12, 8, @on -- HostName
> > exec sp_trace_setevent @TraceID, 12, 3, @on -- DatabaseID
> > exec sp_trace_setevent @TraceID, 12, 1, @on -- TextData
> > exec sp_trace_setevent @TraceID, 12, 10, @on -- ApplicationName
> > exec sp_trace_setevent @TraceID, 12, 14, @on -- StartTime
> > exec sp_trace_setevent @TraceID, 12, 15, @on -- EndTime
> > exec sp_trace_setevent @TraceID, 12, 60, @on -- IsSystem
> >
> > exec sp_trace_setstatus @TraceID, 1
> >
> > select TraceID=@TraceID
> > goto finish
> >
> > error:
> > select ErrorCode=@rc
> >
> > finish:
> > go
> >
> > Parece que todo va bien, no me da ningún error, pero sin embargo, a pesar de
> > crear el fichero no escribe nada en él. He probado con otros eventos y nada,
> > nunca me escribe. ¿Alguien puede decirme si me falta hacer algo o donde puede
> > estar el problema.
> >
> > Muchísimas gracias.
> > Luis.
Respuesta Responder a este mensaje
#4 Luis Martín
31/05/2006 - 15:20 | Informe spam
Hola Alejandro,

Cuando lo arranco desde el profiler funciona correctamente y me genera el
fichero con las trazas. De hecho, he probado ha tener las dos activas (la
generada por código y la generada en el Profiler) cambiando los nombres del
fichero, y el resultado de la función fn_trace_getinfo(default) me informaba
de que había dos trazas y los valores de las propiedades eran iguales (salvo
el del fichero, claro está). Sin embargo, el fichero de la traza creada por
código estaba vacío y mientras que el otro se iba llenado con las
correspondientes trazas.

Muchas gracias por tu ayuda.

Luis.

"Alejandro Mesa" escribió:

Luis,

Que pasa cuando arrancas ese trace pero desde Profiler?


AMB

"Luis Martín" wrote:

> Hola Alejandro,
>
> En primer lugar darte las gracias por tu ayuda.
>
> He ejecutado la función y lo que obtengo es lo siguiente:
> TraceID Property Value
> 1 1 2
> 1 2 C:\Trazas\Traza
> 1 3 5
> 1 4 NULL
> 1 5 1
>
> Osea, según esto la traza está en ejecución. No se muy bien lo que puede
> estar pasando.
>
> Muchas gracias y un saludo.
>
> "Alejandro Mesa" escribió:
>
> > Luis,
> >
> > Una vez creado el trace y puesto en marcha, has chequeado su estado usando
> > la funcion fn_trace_getinfo?
> >
> > Coje el valor devuelto por la sentencia:
> >
> > > select TraceID=@TraceID
> >
> > y usalo con la funcion.
> >
> > SELECT *
> > FROM ::fn_trace_getinfo(trace_id)
> >
> >
> > AMB
> >
> > "Luis Martín" wrote:
> >
> > > Hola,
> > >
> > > Estoy intentando crear un fichero de trazas en el servidor. Para ello he
> > > utilizado el siguiente código sacado del profiler:
> > >
> > > declare @rc int
> > > declare @TraceID int
> > > declare @maxfilesize bigint
> > > set @maxfilesize = 5
> > >
> > > exec @rc = sp_trace_create @TraceID output, 2, N'C:\Trazas\Traza',
> > > @maxfilesize, NULL
> > > if (@rc != 0) goto error
> > >
> > > declare @on bit
> > > set @on = 1
> > > exec sp_trace_setevent @TraceID, 12, 11, @on -- LoginName
> > > exec sp_trace_setevent @TraceID, 12, 8, @on -- HostName
> > > exec sp_trace_setevent @TraceID, 12, 3, @on -- DatabaseID
> > > exec sp_trace_setevent @TraceID, 12, 1, @on -- TextData
> > > exec sp_trace_setevent @TraceID, 12, 10, @on -- ApplicationName
> > > exec sp_trace_setevent @TraceID, 12, 14, @on -- StartTime
> > > exec sp_trace_setevent @TraceID, 12, 15, @on -- EndTime
> > > exec sp_trace_setevent @TraceID, 12, 60, @on -- IsSystem
> > >
> > > exec sp_trace_setstatus @TraceID, 1
> > >
> > > select TraceID=@TraceID
> > > goto finish
> > >
> > > error:
> > > select ErrorCode=@rc
> > >
> > > finish:
> > > go
> > >
> > > Parece que todo va bien, no me da ningún error, pero sin embargo, a pesar de
> > > crear el fichero no escribe nada en él. He probado con otros eventos y nada,
> > > nunca me escribe. ¿Alguien puede decirme si me falta hacer algo o donde puede
> > > estar el problema.
> > >
> > > Muchísimas gracias.
> > > Luis.
Respuesta Responder a este mensaje
#5 Alejandro Mesa
31/05/2006 - 15:51 | Informe spam
Luis,

Tengo que investigar un poquito mas. Dejame decirte que pude recrear el
problema en mi pc. Cree el script de una traza y la ejecute en QA. Revise el
status con la funcion y todo ok, pero note que no estava escribiendo al
disco. Pare la traza la volvi a arracar y nada. Luego la pare y la elimine.

exec sp_trace_setstatus 1, 0
exec sp_trace_setstatus 1, 2

y es despues de esta ultima que sql server escribio hacia el disco. Debe
haber algun setting que indique que haga la escritura en tiempo real y que no
guarde la traza en memoria. Tratare de buscar mas sobre este asunto y luego
les comento.


AMB

"Luis Martín" wrote:

Hola Alejandro,

Cuando lo arranco desde el profiler funciona correctamente y me genera el
fichero con las trazas. De hecho, he probado ha tener las dos activas (la
generada por código y la generada en el Profiler) cambiando los nombres del
fichero, y el resultado de la función fn_trace_getinfo(default) me informaba
de que había dos trazas y los valores de las propiedades eran iguales (salvo
el del fichero, claro está). Sin embargo, el fichero de la traza creada por
código estaba vacío y mientras que el otro se iba llenado con las
correspondientes trazas.

Muchas gracias por tu ayuda.

Luis.

"Alejandro Mesa" escribió:

> Luis,
>
> Que pasa cuando arrancas ese trace pero desde Profiler?
>
>
> AMB
>
> "Luis Martín" wrote:
>
> > Hola Alejandro,
> >
> > En primer lugar darte las gracias por tu ayuda.
> >
> > He ejecutado la función y lo que obtengo es lo siguiente:
> > TraceID Property Value
> > 1 1 2
> > 1 2 C:\Trazas\Traza
> > 1 3 5
> > 1 4 NULL
> > 1 5 1
> >
> > Osea, según esto la traza está en ejecución. No se muy bien lo que puede
> > estar pasando.
> >
> > Muchas gracias y un saludo.
> >
> > "Alejandro Mesa" escribió:
> >
> > > Luis,
> > >
> > > Una vez creado el trace y puesto en marcha, has chequeado su estado usando
> > > la funcion fn_trace_getinfo?
> > >
> > > Coje el valor devuelto por la sentencia:
> > >
> > > > select TraceID=@TraceID
> > >
> > > y usalo con la funcion.
> > >
> > > SELECT *
> > > FROM ::fn_trace_getinfo(trace_id)
> > >
> > >
> > > AMB
> > >
> > > "Luis Martín" wrote:
> > >
> > > > Hola,
> > > >
> > > > Estoy intentando crear un fichero de trazas en el servidor. Para ello he
> > > > utilizado el siguiente código sacado del profiler:
> > > >
> > > > declare @rc int
> > > > declare @TraceID int
> > > > declare @maxfilesize bigint
> > > > set @maxfilesize = 5
> > > >
> > > > exec @rc = sp_trace_create @TraceID output, 2, N'C:\Trazas\Traza',
> > > > @maxfilesize, NULL
> > > > if (@rc != 0) goto error
> > > >
> > > > declare @on bit
> > > > set @on = 1
> > > > exec sp_trace_setevent @TraceID, 12, 11, @on -- LoginName
> > > > exec sp_trace_setevent @TraceID, 12, 8, @on -- HostName
> > > > exec sp_trace_setevent @TraceID, 12, 3, @on -- DatabaseID
> > > > exec sp_trace_setevent @TraceID, 12, 1, @on -- TextData
> > > > exec sp_trace_setevent @TraceID, 12, 10, @on -- ApplicationName
> > > > exec sp_trace_setevent @TraceID, 12, 14, @on -- StartTime
> > > > exec sp_trace_setevent @TraceID, 12, 15, @on -- EndTime
> > > > exec sp_trace_setevent @TraceID, 12, 60, @on -- IsSystem
> > > >
> > > > exec sp_trace_setstatus @TraceID, 1
> > > >
> > > > select TraceID=@TraceID
> > > > goto finish
> > > >
> > > > error:
> > > > select ErrorCode=@rc
> > > >
> > > > finish:
> > > > go
> > > >
> > > > Parece que todo va bien, no me da ningún error, pero sin embargo, a pesar de
> > > > crear el fichero no escribe nada en él. He probado con otros eventos y nada,
> > > > nunca me escribe. ¿Alguien puede decirme si me falta hacer algo o donde puede
> > > > estar el problema.
> > > >
> > > > Muchísimas gracias.
> > > > Luis.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida