Ir al contenido principal

Destacado

Introducción a Axon Framework - Parte 1

Investigando sobre arquitecturas CQRS encontre el Axon Framework.  Te comparto mis apuntes en mi camino a aprender este framework.


¿Que es CQRS?
CQRS es una forma de crear sistemas de software que hace hincapié en separar la parte  que cambia el estado de la aplicación y la parte que consulta el estado de la aplicación. 

¿Que es el Framework Axon? Es un framework para implementar CQRS en Java. Se describe asi mismo como un framework que te permite construir aplicaciones escalables, extensibles y mantenibles; permitiendo a los desarrolladores aplicar el patrón arquitectónico Command Query Responsibility Segregation (CQRS). El cual nos da ciertos bloques importantes con sus implementaciones respectivas para crear estos sistemas como: agregados, repositorios y bus de eventos (el mecanismo de envío para eventos).  Estos últimos términos provienen del Domain Driven Design (DDD). 
En palabras simples: CQRS es escribir y leer en forma separada. 
En búsqueda de tener bajo acoplamiento, el tr…

Jugando con p6spy

P6spy es una herramienta super
sencilla para hacer seguimiento de la interacción entre
tu aplicación y la BD.

Te permite loguear tus sentencias PL/SQL y tambien que queries son
los mas lentos (previa configuracion que comento mas adelante).

Pasos para instalación:

1) Bajar la herramienta

Dowload P6spy

2) Extraer y colocar jar y properties en tu proyecto.

Luego al extraerlo, encontraras un p6spy.jar y un spy.properties.

El p6spy.jar lo pones en tu WEB-INF/lib del proyecto a monitorear.

Y tu spy.properties en tu carpeta src o classpath en general.

3) Donde estas conectandote a tu bd, cambia el driver que estas usando, por el de p6spy, por ejemplo:

driverClassName --> com.p6spy.engine.spy.P6SpyDriver (en tu applicationContext.xml por ejemplo.)
4) En el archivo spy.properties, pones el verdadero driver:

# oracle driver
realdriver=oracle.jdbc.driver.OracleDriver

5) Si deseas le das la ruta donde quieres que se genere tu archivo spy.log (también se configura esto en el spy.properties)

# name of logfile to use
logfile = c:/temporal/spy.log

Listo , correr la aplicación web y disfrutar del log para hacer seguimiento a todo los queries que se ejecutan.

EPILOGO:

outagedetection=false
outagedetectioninterval=

Estas dos te permiten , poner a true y luego decirle cuanto tiempo no debe pasar para considerarlo un query normal, sino pasa a categoria lento.

Disfrutenlo!

Jose

Comentarios

  1. Estimado, estoy ocupando la configuración que dices sin embargo no me pinta ninguna instrucción SQL.
    Lo único que tiene el spy.log es:

    1271261094139|-1||debug||com.p6spy.engine.common.P6SpyOptions reloading properties
    1271261094139|-1||info||Using properties file: D:\p6spy\spy.properties
    1271261094139|-1||info||No value in environment for: getStackTrace, using: false
    1271261094139|-1||info||No value in environment for: getFilter, using: true
    1271261094139|-1||info||No value in environment for: getDeregisterDrivers, using: false
    1271261094139|-1||info||No value in environment for: getUsePrefix, using: false
    1271261094139|-1||info||No value in environment for: getExecutionThreshold, using: 0
    1271261094139|-1||info||No value in environment for: getAutoflush, using: true
    1271261094139|-1||info||No value in environment for: getExclude, using:
    1271261094139|-1||info||No value in environment for: getExcludecategories, using: info,debug,result,batch
    1271261094139|-1||info||No value in environment for: getInclude, using: select, insert, update
    1271261094139|-1||info||No value in environment for: getIncludecategories, using:
    1271261094139|-1||info||No value in environment for: getLogfile, using: spy.log
    1271261094139|-1||info||No value in environment for: getAppender, using: com.p6spy.engine.logging.appender.FileLogger
    1271261094139|-1||info||No value in environment for: getRealdriver, using: oracle.jdbc.driver.OracleDriver
    1271261094139|-1||info||No value in environment for: getRealdriver2, using:
    1271261094139|-1||info||No value in environment for: getRealdriver3, using:
    1271261094139|-1||info||No value in environment for: getAppend, using: true
    1271261094139|-1||info||No value in environment for: getSpydriver, using: com.p6spy.engine.spy.P6SpyDriver
    1271261094139|-1||info||No value in environment for: getDateformat, using:
    1271261094139|-1||info||No value in environment for: getDateformatter, using: null
    1271261094139|-1||info||No value in environment for: getStringmatcher, using: com.p6spy.engine.common.SubstringMatcher
    1271261094139|-1||info||No value in environment for: getStringMatcherEngine, using: com.p6spy.engine.common.SubstringMatcher@1d0feea
    1271261094139|-1||info||No value in environment for: getStackTraceClass, using:
    1271261094139|-1||info||No value in environment for: getSQLExpression, using: null
    1271261094139|-1||info||No value in environment for: getReloadProperties, using: false
    1271261094139|-1||info||No value in environment for: getReloadPropertiesInterval, using: 60
    1271261094139|-1||info||No value in environment for: getJNDIContextFactory, using: null
    1271261094139|-1||info||No value in environment for: getJNDIContextProviderURL, using: null
    1271261094139|-1||info||No value in environment for: getJNDIContextCustom, using: null
    1271261094139|-1||info||No value in environment for: getRealDataSource, using: null
    1271261094139|-1||info||No value in environment for: getRealDataSourceClass, using: null
    1271261094139|-1||info||No value in environment for: getRealDataSourceProperties, using: null


    Podrías ayudarme para saber que puede estar pasando que no pinta ninguna instrucción sql.

    Gracias.
    Saludos

    ResponderEliminar
  2. Felipe, yo hice un nuevo post donde cambie la configuración y ahi me aparecia el log.

    Este es: http://josediazdiaz.blogspot.com/2010/03/p6spy.html o tambien probaste con este y no te muestra nada?

    ResponderEliminar
  3. Usa la propiedad del hibernate.show_sql = true y anda bien.

    Julio M. Oliveira - Buenos Aires

    ResponderEliminar

Publicar un comentario