Closed enrico-mc closed 2 years ago
Ciao @enrico-mc puoi condividermi la configurazione delle proprietà dell'applicativo?
Certo, eccole:
config.base_url=https://get.dgc.gov.it/v1/dgc/
config.server_host=get.dgc.gov.it
config.certificate_sha=sha256/7cZJIDPacG8FS3pq6Mvxg+7yBDM/VYc2alOcbVe/e74=
spring.datasource.url=jdbc:mysql://localhost:3306/verifica-c19
spring.datasource.driverClassName=com.mysql.cj.jdbc.Driver
spring.datasource.username=root
spring.datasource.password=password
spring.jpa.database=mysql
spring.jpa.show-sql=true
spring.jpa.hibernate.ddl-auto=none
spring.jpa.hibernate.naming.physical-strategy=org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
spring.data.jpa.repositories.enabled=true
spring.jpa.database-platform=rg.hibernate.dialect.MySQL8Dialect
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL8Dialect
spring.jpa.properties.hibernate.dialect.storage_engine=innodb
spring.jpa.properties.hibernate.format_sql=true
spring.h2.console.enabled=true
logging.level.it.dgc.verificac19.data.remote=DEBUG
Purtroppo l'SDK è stato testato solo su H2 & SQLServer & Oracle
Su MySQL come puoi vedere dalla documentazione ufficiale la keyword "keys" è riservata.
La query generate da Hibernate dunque utilzza una keyword riservata mandando in errore l'esecuzione:
select count(*) as col_0_0_ from keys key0_
Puoi risolvere utilizzando una proprietà di Hibernate che permette automaticamente di effettuare un backquote di tutte le tabelle / colonne.
Aggiungi questo nel tuo file di configurazione:
spring.jpa.properties.hibernate.globally_quoted_identifiers=true
Grazie mille, questo problema è risolto. Ora sto litigando con i timeout di avvio, se riuscirò a risolvere aggiornerò la issue con quanto fatto per configurare l'app su wildfly. Nel frattempo chiedo, è normale che il tempo di avvio dell'applicazione sia così elevato?
I test applicativi sono stati fatti utilizzando appunto Spring Boot e quindi l'applicazione viene deployata in un Tomcat embeddato nell'applicazione stessa. Non è stato provato il deploy su un Application Server come Wildfly.
I tempi di start sono immediati non c'è tanta logica applicativa (se non l'inizializzazione dei beans di Spring)
Forse il tempo a cui ti riferisci è il task di sincronizzazione dei dati definito nella classe it.dgc.verificac19.worker.LoadKeysWorker
Ad SDK avviato, il processo è schedulato ogni 24H (a mezzanotte) come da specifiche di verificac19.
Per rendere subito utilizzabile l'applicazione ho aggiunto un primo task di sincronizzazione anche in fase di startup.
Chiudo comunque questa issue relativa a MySQL e la tabella keys, visto che il problema è stato risolto. Se riesci a risolvere i problemi su Wildfly, fai pure una pull request aggiungendo un paragrafo nel file di README per il deploy su Wildfly, o se non riesci a risolvere i problemi di timeout, apri pure una nuova issue.
Perfetto, grazie mille.
Buongiorno, ho un errore sulla tabella keys:
il mio DB è mysql, la tabella blacklist viene usata correttamente, ma sulla keys mi da questo errore. Lo script di creazione è:
ho già provato anche con:
Chiedo anche se, per velocizzare test e startup, sia possibile evitare le operazioni iniziali di delete e insert nella blacklist.
Grazie mille in anticipo