Voici mon code pour la configuration c3p0 ... lorsque le serveur d'applications est en cours de démarrage, je suis les sources de données qui Initialisation sont venus de dbDef (définitions db table)méthode C3P0 ComboPooledDataSource.getConnection apporter null après le déploiement
SessionFactory sessionFactoryByServer;
Connection jdbcConnectionC3P0;
List<Map<String, Object>> connectionSourceList; // object combopooleddatasource
@PostConstruct
public void init() {
List <DBDef> dbDefs = new ArrayList<DBDef>();
try {
dbDefs = getAllServerIpAddresses();
} catch (SQLException e) {
e.printStackTrace();
}
connectionSourceList = new ArrayList<Map<String, Object>>();
for (int i = 0; i < dbDefs.size(); i++) {
try {
Map<String, Object> cpdsMap = new HashMap<String, Object>();
ComboPooledDataSource cpds = new ComboPooledDataSource();
cpds.setDebugUnreturnedConnectionStackTraces(false);
cpds.setDriverClass(dbDefs.get(i).getDriver());
cpds.setJdbcUrl(dbDefs.get(i).getConnectionURL());
cpds.setUser(dbDefs.get(i).getUserName());
cpds.setPassword(dbDefs.get(i).getPassword());
cpds.setDataSourceName(dbDefs.get(i).getIpAddress());
cpds.setAcquireIncrement(5);
cpds.setIdleConnectionTestPeriod(1800);
cpds.setMinPoolSize(10);
cpds.setAcquireRetryAttempts(1);
cpds.setPreferredTestQuery("SELECT 1");
cpds.setMaxPoolSize(50);
Configuration cfg = new Configuration();
cfg.configure(dbDefs.get(i).getHbmCfgXmlPath());
cfg.setProperty("connection.provider_class", dbDefs.get(i).getConnectionProvideClass())
.setProperty("hibernate.c3p0.acquire_increment", dbDefs.get(i).getAcquireIncrement())
.setProperty("hibernate.c3p0.max_size", dbDefs.get(i).getMaxSize())
.setProperty("hibernate.c3p0.min_size", dbDefs.get(i).getMinSize())
.setProperty("hibernate.c3p0.timeout", dbDefs.get(i).getTimeout())
.setProperty("hibernate.c3p0.max_statements", dbDefs.get(i).getMaxStatements())
.setProperty("hibernate.c3p0.idle_test_period", dbDefs.get(i).getIdleTestPeriod())
.setProperty("hibernate.show_sql", "true");
ServiceRegistryBuilder ssrb = new ServiceRegistryBuilder().applySettings(cfg.getProperties());
SessionFactory sessionFactory = cfg.buildSessionFactory(ssrb.buildServiceRegistry());
cpdsMap.put("serverIp", dbDefs.get(i).getIpAddress());
cpdsMap.put("dataSource", cpds);
cpdsMap.put("sessionFactory", sessionFactory);
} catch (PropertyVetoException e) {
e.printStackTrace();
}
}
}
après avoir initialisé les sources de données c3p0 à List<Map<String, Object>> connectionSourceList;
, quand je veux séquencer séquentiellement quelques données de 3 bases de données, dans cette liste le troisième oublie certains de ses attributs je pense. Voici le problème où est survenu. La méthode getConnection apporte null lorsque le programme appelle cette méthode lorsqu'il est exécuté sur le serveur d'applications. Tomcat est identique au développement envirement. (Copier-collé) la connexion Internet entre ma place et le serveur de l'application parfois coupé pour milisecondes et avant que je trouve cette getConnection est nulle je reçois cette pile ci-dessous ...
2016- 03-28 19:00:21 INFO AbstractPoolBackedDataSource: 2016-03-28 19:00:22 WARN BasicResourcePool: org.postgresql.util.PSQLException: FATAL: aucune entrée pg_hba.conf pour l'hôte "xx.xxx.xx.x" , l'utilisateur "nom d'utilisateur ", base de données "xxxx", SSL off
ET
java.sql.SQLException: les connexions ne peuvent pas être acquises à partir de la base de données sous-jacente!
EDIT: Le contenu de la configuration hba est ajouté.
local all all trust
host all all 127.0.0.1/32 trust
host all all ::1/128 trust
host raritan +odbc 0.0.0.0/0 md5
http://stackoverflow.com/search?q=[postgresql]+no+pg_hba.conf+entry+for+host –
merci pour la réponse. mais j'ai déjà regardé ces réponses que vous avez pointées. Comme mon client l'a mentionné à propos des serveurs postgre sont en cours d'installation par un fichier image. alors pourquoi je n'ai aucun problème lors de la récupération des données d'autres connexions. leur configuration est la même. – comitatenses
Le message d'erreur "* no pg_hba.conf entrée *" est assez clair. Votre configuration Postgres (** not ** "* postgre *" btw) n'autorise pas une connexion depuis votre serveur d'applications. [edit] votre question et montrez-nous le contenu ** complet ** du 'pg_hga.conf' sinon vous ne pourrez pas répondre à cette question. –