Recupero numero connessioni aperte PostgreSQL tramite JPA

La tabella da interrogare per recuperare il numero di connessioni aperte su PostgreSQL è la pg_stat_activity.

Nel mio caso, l’obiettivo è visualizzare in una pagina JSF il numero di connessioni aperte. Il recupero dati è gestito tramite JPA.

Nel componente EJB si può creare una query JPA nativa per eseguire la select count:

Query query = entityManager
 .createNativeQuery("SELECT count(*) as open_connection FROM pg_stat_activity where datname = :parNomeDb and usename = :parUsername");
query.setParameter("parNomeDb", nomeDb);
query.setParameter("parUsername", username);
BigInteger connessioniAperte = (BigInteger) query.getSingleResult();
return connessioniAperte;