PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Ibernazione lenta per acquisire la connessione Postgres

L'ho risolto =) Ho davvero dovuto fare il root per trovare la risposta per questo. Fondamentalmente, si tratta di caricare i metadati e il driver JDBC. Sta caricando TUTTI I META DATA, inclusi i commenti accanto alle colonne sql e altri vari costrutti, che non sono necessari per il funzionamento. Non so perché questa opzione sia attiva per impostazione predefinita, ma dovresti assolutamente disattivare questa funzione a meno che tu non ne abbia esplicitamente bisogno:

config.setProperty("hibernate.temp.use_jdbc_metadata_defaults","false");

Connessione immediata ora!

L'unica informazione che ho trovato su questo è nel codice:

107     // 'hibernate.temp.use_jdbc_metadata_defaults' is a temporary magic value.
108     // The need for it is intended to be alleviated with future development, thus it is
109     // not defined as an Environment constant...
110     //
111     // it is used to control whether we should consult the JDBC metadata to determine
112     // certain Settings default values; it is useful to *not* do this when the database
113     // may not be available (mainly in tools usage).
114     boolean useJdbcMetadata = ConfigurationHelper.getBoolean( "hibernate.temp.use_jdbc_metadata_defaults", configValues, true );

http://grepcode.com/file/repo1.maven.org/maven2/org.hibernate/hibernate-core/4.1.1.Final/org/hibernate/engine/jdbc/internal/JdbcServicesImpl.java#JdbcServicesImpl