2017-06-19 3 views
1

J'utilise cette propriété avec la version Informix 4.10.6.20151104pool de connexion Hikari donnant IFXHOST n'existe pas sur la classe cible com.informix.jdbcx.IfxDataSource pour Informix

spring.informix.datasource.type=com.zaxxer.hikari.HikariDataSource 
spring.informix.datasource.dataSourceClassName=com.informix.jdbcx.IfxDataSource 
     spring.informix.datasource.dataSourceProperties.serverName=CISCO-UCCE-EXP 
     spring.informix.datasource.dataSourceProperties.portNumber=1504 
    spring.informix.datasource.dbcp2.pool-prepared-statements=true 
    spring.informix.datasource.dataSourceProperties.IFXHOST = cisco_ucce_exp_uccx 

d'erreur Obtenir ce

java.lang.RuntimeException: Property IFXHOST does not exist on target class com.informix.jdbcx.IfxDataSource 
    at com.zaxxer.hikari.util.PropertyElf.setProperty(PropertyElf.java:155) ~[HikariCP-2.4.7.jar:na] 
    at com.zaxxer.hikari.util.PropertyElf.setTargetFromProperties(PropertyElf.java:67) ~[HikariCP-2.4.7.jar:na] 
    at com.zaxxer.hikari.pool.PoolBase.initializeDataSource(PoolBase.java:295) ~[HikariCP-2.4.7.jar:na] 
    at com.zaxxer.hikari.pool.PoolBase.<init>(PoolBase.java:91) ~[HikariCP-2.4.7.jar:na] 
    at com.zaxxer.hikari.pool.HikariPool.<init>(HikariPool.java:101) ~[HikariCP-2.4.7.jar:na] 
    at com.zaxxer.hikari.HikariDataSource.getConnection(HikariDataSource.java:94) ~[HikariCP-2.4.7.jar:na] 
    at org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(DataSourceUtils.java:111) ~[spring-jdbc-4.3.3.RELEASE.jar:4.3.3.RELEASE] 
    at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:77) ~[spring-jdbc-4.3.3.RELEASE.jar:4.3.3.RELEASE] 

J'ai également essayé la même configuration en se référant à la https://docs.oracle.com/cd/E19575-01/821-0185/beanj/index.html pour IfxIFXHost aussi j'ai eu le même problème aide aimable. PS Je suis nouveau à Hikari

+0

Y at-il une importance aux espaces autour de la dans la ligne '' = qui ne fonctionne pas? Y a-t-il une signification à l'indentation inégale sur la configuration (liste de propriétés) montrée? –

Répondre

3

Jamais utilisé Hikari avant, mais un test rapide montre les propriétés que vous devez ajouter à la source de données pour obtenir une connexion:

Avec « IFXHOST » Je reçois l'exception:

D:\JJTMP>grep IFXHOST p.java 
               config.addDataSourceProperty("IFXHOST", "420ito"); 
               config.addDataSourceProperty("IfxIFXHOST", "420ito"); 

D:\JJTMP>java p 
[main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting... 
[main] ERROR com.zaxxer.hikari.util.PropertyElf - Property IFXHOST does not exist on target class com.informix.jdbcx.IfxDataSource 
Exception in thread "main" java.lang.NullPointerException 
     at p.main(p.java:64) 

en utilisant "IfxIFXHOST" fonctionne:

D:\JJTMP>grep IFXHOST p.java 
               //config.addDataSourceProperty("IFXHOST", "420ito"); 
               config.addDataSourceProperty("IfxIFXHOST", "420ito"); 

D:\JJTMP>javac p.java 

D:\JJTMP>java p 
[main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting... 
[main] INFO com.zaxxer.hikari.pool.PoolBase - HikariPool-1 - Driver does not support get/set network timeout for connections. (M 
ethod not supported : IfxSqliConnect.getNetworkTimeout()) 
[main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed. 
The Connection Object is of Class: class com.zaxxer.hikari.pool.HikariProxyConnection 
systables,informix      ,1048580 
syscolumns,informix      ,1048581 
sysindices,informix      ,1048582 
systabauth,informix      ,1048583 
syscolauth,informix      ,1048584 

D:\JJTMP> 

Et juste au cas où, le code que j'utilisais:

// ----- p.java ----- 
import java.sql.Connection; 
import java.sql.PreparedStatement; 
import java.sql.ResultSet; 
import java.sql.SQLException; 

import javax.sql.DataSource; 

import com.zaxxer.hikari.HikariConfig; 
import com.zaxxer.hikari.HikariDataSource; 

public class p 
{ 

     private static DataSource datasource; 

     public static DataSource getDataSource() 
     { 
       if(datasource == null) 
       { 
         HikariConfig config = new HikariConfig(); 

         config.setDataSourceClassName("com.informix.jdbcx.IfxDataSource"); 
         config.addDataSourceProperty("serverName", "ids1210"); 
         //config.addDataSourceProperty("IFXHOST", "420ito"); 
         config.addDataSourceProperty("IfxIFXHOST", "420ito"); 
         config.addDataSourceProperty("PortNumber", "9088"); 
         config.addDataSourceProperty("databaseName", "sysmaster"); 
         config.addDataSourceProperty("user", "informix"); 
         config.addDataSourceProperty("password", "ximrofni"); 
         config.setMaximumPoolSize(10); 
         config.setAutoCommit(false); 

         datasource = new HikariDataSource(config); 
       } 
       return datasource; 
     } 

     public static void main(String[] args) 
     { 

       Connection connection = null; 
       PreparedStatement pstmt = null; 
       ResultSet resultSet = null; 
       try 
       { 
         DataSource dataSource = p.getDataSource(); 
         connection = dataSource.getConnection(); 
         pstmt = connection.prepareStatement("SELECT FIRST 5 * FROM systables"); 

         System.out.println("The Connection Object is of Class: " + connection.getClass()); 

         resultSet = pstmt.executeQuery(); 
         while (resultSet.next()) 
         { 
           System.out.println(resultSet.getString(1) + "," + resultSet.getString(2) + "," + resultSet.getString(3)); 
         } 

       } 
       catch (Exception e) 
       { 
         try 
         { 
           connection.rollback(); 
         } 
         catch (SQLException e1) 
         { 
           e1.printStackTrace(); 
         } 
         e.printStackTrace(); 
       } 

     } 

} 

// ----- p.java ----- 
+0

merci après avoir vérifié avec les propriétés que j'ai trouvé l'espace a été ajouté – UchihaObito

0

Alors cela a fonctionné pour moi

spring.informix.datasource.type=com.zaxxer.hikari.HikariDataSource 
spring.informix.datasource.minimumIdle=10 
spring.informix.datasource.maximumPoolSize=30 
spring.informix.datasource.idleTimeout=500 
spring.informix.datasource.dataSourceClassName=com.informix.jdbcx.IfxDataSource 
spring.informix.datasource.dataSourceProperties.databaseName=db_ 
spring.informix.datasource.dataSourceProperties.serverName=CISCO-UCCE-EXP 
#spring.informix.datasource.dataSourceProperties.url = jdbc:informix-sqli://CISCO-UCCE-EXP:1504/db_cra:INFORMIXSERVER=cisco_ucce_exp_uccx; Protocol=onsoctcp; client_locale=en_US.57372; db_locale=en_US.57372 
spring.informix.datasource.dataSourceProperties.portNumber=1504 
spring.informix.datasource.dbcp2.pool-prepared-statements=true 
spring.informix.datasource.dataSourceProperties.LoginTimeout=0 
spring.informix.datasource.connectionTimeout=0 
spring.informix.datasource.dataSourceProperties.IfxIFXHOST=cisco_ucce_exp_uccx