Vai al contenuto

Runbooks Operativi

Procedure passo-passo per operazioni comuni di gestione del sistema SGV GE.CO.

Restart Servizi

Restart Singolo Container (Docker)

cd ~/vscode-projects/sgv2-docker

# Restart specifico servizio
docker-compose restart be-geco

# Verifica stato
docker-compose ps be-geco

# Controlla logs
docker-compose logs -f be-geco

Restart Completo Ambiente

cd ~/vscode-projects/sgv2-docker
make stop
make start

# Verifica tutti i servizi
docker-compose ps

Restart WildFly (dentro il container)

docker-compose exec be-geco /opt/wildfly/bin/jboss-cli.sh --connect --command=":shutdown(restart=true)"

Redeploy Applicazione

Redeploy Singolo WAR

# 1. Build nuovo WAR
cd ~/vscode-projects/sgv-ge.co
cd GeCo.Alfa && mvn clean package && cd ..

# 2. Copia nel container
cp GeCo.Alfa/target/GeCo.Alfa.war \
   ~/vscode-projects/sgv2-docker/be-geco/deployments/

# 3. Verifica deploy riuscito
cd ~/vscode-projects/sgv2-docker
docker-compose exec be-geco ls -la /opt/wildfly/standalone/deployments/*.deployed

Force Redeploy (se il deploy automatico non funziona)

cd ~/vscode-projects/sgv2-docker

# Rimuovi marker di deploy precedente
docker-compose exec be-geco rm -f /opt/wildfly/standalone/deployments/GeCo.Alfa.war.deployed
docker-compose exec be-geco rm -f /opt/wildfly/standalone/deployments/GeCo.Alfa.war.failed

# Forza nuovo deploy
docker-compose exec be-geco touch /opt/wildfly/standalone/deployments/GeCo.Alfa.war.dodeploy

# Attendi e verifica
sleep 10
docker-compose exec be-geco ls -la /opt/wildfly/standalone/deployments/

Accesso Database

Connessione PostgreSQL

cd ~/vscode-projects/sgv2-docker

# Shell interattiva psql
docker-compose exec liquidb psql -U own_c_a662 -d c_a662

# Query rapida
docker-compose exec liquidb psql -U own_c_a662 -d c_a662 \
  -c "SELECT count(*) FROM vv_verbale;"

Backup Database

cd ~/vscode-projects/sgv2-docker

# Dump completo
docker-compose exec liquidb pg_dump -U sgv_dev sgv_dev > backup_$(date +%Y%m%d).sql

# Dump solo schema
docker-compose exec liquidb pg_dump -U sgv_dev -s sgv_dev > schema_$(date +%Y%m%d).sql

# Dump singola tabella
docker-compose exec liquidb pg_dump -U sgv_dev -t vv_verbale sgv_dev > vv_verbale_$(date +%Y%m%d).sql

Restore Database

cd ~/vscode-projects/sgv2-docker

# Restore da dump
cat backup.sql | docker-compose exec -T liquidb psql -U sgv_dev sgv_dev

Verifica Logs

Logs WildFly

cd ~/vscode-projects/sgv2-docker

# Logs container Docker
docker-compose logs -f be-geco

# Logs WildFly server
docker-compose exec be-geco tail -f /opt/wildfly/standalone/log/server.log

# Cerca errori
docker-compose exec be-geco grep -i "error\|exception" /opt/wildfly/standalone/log/server.log | tail -20

Logs Quarkus

# In dev mode, i log sono nello stdout
cd ~/vscode-projects/sgv-ge.co/REST
./mvnw compile quarkus:dev
# I log appaiono direttamente nel terminale

Troubleshooting Comune

Applicazione non risponde (HTTP 503)

  1. Verifica container attivo: docker-compose ps
  2. Verifica deploy WAR: docker-compose exec be-geco ls /opt/wildfly/standalone/deployments/*.deployed
  3. Controlla logs: docker-compose logs --tail=50 be-geco
  4. Verifica memoria: docker stats be-geco
  5. Se necessario, restart: docker-compose restart be-geco

Errore "No tenant identifier specified" (REST Quarkus)

  • Header X-Realm mancante nella richiesta HTTP
  • Aggiungere: X-Realm: c_a662 (o altro tenant)

OutOfMemoryError

  1. Controlla: docker stats
  2. Aumenta memoria in .env o docker-compose.yml
  3. Restart container: docker-compose restart <service>

Connessione database rifiutata

  1. Verifica container DB: docker-compose ps liquidb
  2. Verifica porta: docker-compose port liquidb 5432
  3. Test connessione: docker-compose exec liquidb pg_isready
  4. Restart DB: docker-compose restart liquidb