Artículo
· 19 nov, 2024 Lectura de 2 min

Cómo ver el contenido de los archivos de journal fuera del Portal de Gestión

Preguntas frecuentes de InterSystems

Si el archivo de journal es demasiado grande para buscarlo o filtrarlo mediante el Portal de administración, podemos consultarlo mediante los dos métodos siguientes.

① Usando la utilidad ^JRNDUMP
② Usandolo en código

================================================== ========== 

① Usando la utilidad ^JRNDUMP. Por ejemplo, si deseamos seleccionar todos los registros del archivo de journal que incluyen la referencia global ^ABC, hagamos lo siguiente:

*Ejecuta todos los comandos a continuación en el espacio de nombres %SYS.

DO SELECT^JRNDUMP("C:\MyCache\mgr\journal\YYYYMMDD.001","","","^ABC",1)

Si deseamos seleccionar solo registros que coincidan exactamente con la referencia global ^ABC:

 DO SELECT^JRNDUMP("C:\MyCache\mgr\journal\YYYYMMDD.001","","","^ABC",0)

Si deseamos seleccionar solo registros para operaciones Set locales en ^ABC global, hagamos lo siguiente:

 DO SELECT^JRNDUMP("C:\MyCache\mgr\journal\YYYYMMDD.001","","","^ABC","",6)

Si deseamos seleccionar solo registros para operaciones  Set locales y remotas en el ^ABC global:

  DO SELECT^JRNDUMP("C:\MyCache\mgr\journal\YYYYMMDD.001","","","^ABC","","s")

Consulta la página del documento a continuación para obtener más detalles.

Presentando registros de journal usando la utilidad ^JRNDUMP

================================================== ========== 
② How to reference it in a program. You can use the %SYS.Journal.Record class to obtain the record contents of any journal file. Cómo usarlo en código. Podemos utilizar la clase %SYS.Journal.Record para obtener el contenido de los registros de cualquier archivo de journal.

 set jrn="C:\intersystems\cache\mgr\journal\20160101.003"
  set log="C:\temp\journal.log"

  set file=##class(%File).%New(log)
  do file.Open("WSN")
  set rs=##class(%ResultSet).%New("%SYS.Journal.Record:List")
  do rs.Execute(jrn)
  while rs.Next() {
    set time=rs.Get("TimeStamp") // Time: yyyy-mm-dd hh:mm:ss
    set type=rs.Get("TypeName")  // Type: SET, KILL, xxTrans etc.
    set gref=rs.Get("GlobalReference") // global reference
    set gval=rs.Get("NewValue")  // Updated value
    /* if gref["ABC" { */
    set line=time_" ["_type_"] "_gref
    if type="SET" { set line=line_"="_gval }
    do file.WriteLine(line)
    /* } */
  }
  do file.Close()

Consulte la referencia de la clase a continuación para obtener más detalles.

Referencia de la clase (%SYS.Journal.Record:List)

Comentarios (0)1
Inicie sesión o regístrese para continuar