2012-03-21 10 views
6

Da quando ho aggiornato i miei due progetti Grails con Grails 2.0 Grails-Melody ha interrotto la registrazione delle chiamate sql. Ho provato diverse versioni del plugin grails-melody, ma ottengo lo stesso errore in tutte le versioni (anche nella versione che funzionava prima di migrare a Grails 2.0).Il plugin Grails Melody non registra più le chiamate SQL a partire dal grails 2.0

Non riesco a trovare nulla di utile su google. Se posso aggiungere una traccia di debug sul plugin Grails melodia

log4j = { 
    trace 'net.bull.javamelody' 
} 

vedo questo nei log:

DEBUG bull.javamelody - datasources found in JNDI: [] 

Questo problema mi sta davvero facendo impazzire .. Qualcuno qui sperimentato questo problema? E se così hai trovato una soluzione?

AGGIORNAMENTO: La melodia di Grails non funziona nemmeno nei progetti appena creati. Ho appena creato un nuovo progetto Grails (grails 2.0.0) con una classe di dominio e controller e viste corrispondenti. Quindi installato il plugin Grails-Melody. Inseriti alcuni dati. Quando ho guardato nella console di monitoraggio, i dati non SQL viene registrato ..

Graph Tables

risposta

4

Una soluzione parziale è impostare jdbc.factory_class nella sezione di ibernazione di DataSource.groovy. Ad esempio:

hibernate { 
    cache.use_second_level_cache = true 
    cache.use_query_cache = false 
    cache.region.factory_class = 'net.sf.ehcache.hibernate.EhCacheRegionFactory' 
    jdbc.factory_class = 'net.bull.javamelody.HibernateBatcherFactory' 
} 

Questo registrerà tutte le query SQL che passano attraverso la modalità di sospensione. Le query che utilizzano direttamente l'origine dati non vengono ancora registrate.

+0

Nizza! Proveremo. Grazie!! –

+0

Può confermare che ha funzionato per GORM. Grazie!! –

+0

1 down, one to go :) È necessario trovare una soluzione per le chiamate SQL pure (avere un buon numero di quelle per il sake delle prestazioni) –

0

Ho alzato la risposta di ataylor quando ho iniziato a risolvere il problema. Ma non posso ancora commentare, quindi lo posterò qui.

Nella sezione JDBC sui documenti JavaMelody: JDBC, viene descritto come eseguire questa operazione con la sospensione diretta utilizzando la propria facciata del driver. Immagino che anche questo funzioni, ma non posso per la vita di me capire i parametri da inserire in DataSource.groovy per farlo funzionare.

Riferimento:

<property name="hibernate.connection.driver_class">net.bull.javamelody.JdbcDriver</property> 
    <property name="hibernate.connection.driver">com.mysql.jdbc.Driver</property> 
    <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/myschema</property> 
    <property name="hibernate.connection.username">myuser</property> 
    <property name="hibernate.connection.password">mypassword</property>