Guest User

Untitled

a guest
Oct 14th, 2018
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.55 KB | None | 0 0
  1. package it.sodomaco.turcom;
  2.  
  3. import java.sql.Connection;
  4. import java.sql.SQLException;
  5. import java.util.Properties;
  6.  
  7. import javax.sql.DataSource;
  8.  
  9. import org.apache.commons.dbcp.ConnectionFactory;
  10. import org.apache.commons.dbcp.DriverManagerConnectionFactory;
  11. import org.apache.commons.dbcp.PoolableConnectionFactory;
  12. import org.apache.commons.dbcp.PoolingDataSource;
  13. import org.apache.commons.pool.impl.GenericObjectPool;
  14.  
  15. import it.sodomaco.generic.ConnectionProvider;
  16. import it.sodomaco.generic.Props;
  17.  
  18. public class MyConnectionProvider implements ConnectionProvider {
  19.  
  20. DataSource myDS=null;
  21. ConnectionFactory connectionFactory =null;
  22. PoolableConnectionFactory poolableConnectionFactory = null;
  23. GenericObjectPool connectionPool=null;
  24.  
  25. public static final String validationQuery="SELECT 1";
  26. public static final int validationQueryTimeout=3; //sec
  27.  
  28. public MyConnectionProvider(AppConf appConf) {
  29. Properties prop=new Properties();
  30. prop.setProperty("username", "mab");
  31. prop.setProperty("user", "mab");
  32. prop.setProperty("password", "pass");
  33.  
  34.  
  35. // ObjectPool connectionPool = new GenericObjectPool(null);
  36. // ConnectionFactory connectionFactory = new DriverManagerConnectionFactory(connectURI,null);
  37. // PoolableConnectionFactory poolableConnectionFactory = new PoolableConnectionFactory(connectionFactory,connectionPool,null,null,false,true);
  38. // PoolingDataSource dataSource = new PoolingDataSource(connectionPool);
  39.  
  40.  
  41. connectionPool = new GenericObjectPool(null);
  42. connectionFactory = new DriverManagerConnectionFactory("jdbc:mysql://127.0.0.1:4002/mab",prop);
  43. poolableConnectionFactory = new MyPoolableConnectionFactory(appConf,connectionFactory,connectionPool);
  44. poolableConnectionFactory.setValidationQuery(validationQuery);
  45. poolableConnectionFactory.setValidationQueryTimeout(validationQueryTimeout);
  46.  
  47. connectionPool.setMaxWait(20L*1000L);
  48. connectionPool.setTimeBetweenEvictionRunsMillis(120L*1000L);
  49. connectionPool.setTestWhileIdle(true);
  50. connectionPool.setMinIdle(2);
  51.  
  52. myDS = new PoolingDataSource(connectionPool);
  53.  
  54. // connectionFactory = new DriverManagerConnectionFactory("jdbc:mysql://127.0.0.1:4002/mab",prop);
  55. // poolableConnectionFactory = new PoolableConnectionFactory(connectionFactory,new GenericObjectPool(),null,null,false,false);
  56. // poolableConnectionFactory.setValidationQuery(validationQuery);
  57. // poolableConnectionFactory.setValidationQueryTimeout(validationQueryTimeout);
  58. //
  59. // connectionPool = new GenericObjectPool(poolableConnectionFactory);
  60. //
  61. // poolableConnectionFactory.setPool(connectionPool);
  62. //
  63. // connectionPool.setMaxWait(20L*1000L);
  64. // connectionPool.setTimeBetweenEvictionRunsMillis(120L*1000L);
  65. // connectionPool.setTestWhileIdle(true);
  66. // connectionPool.setMinIdle(2);
  67. //
  68. // myDS = new PoolingDataSource(connectionPool);
  69.  
  70.  
  71.  
  72.  
  73. }
  74.  
  75. public Connection getConnection() throws SQLException {
  76. return myDS.getConnection();
  77. }
  78.  
  79. Props infoProps=new Props();
  80.  
  81. public Props getInfoProps() {
  82. infoProps.setInteger("connectionPool.maxActive", connectionPool.getMaxActive());
  83. infoProps.setInteger("connectionPool.maxIdle", connectionPool.getMaxIdle());
  84. infoProps.setInteger("connectionPool.minIdle", connectionPool.getMinIdle());
  85. infoProps.setInteger("connectionPool.numActive", connectionPool.getNumActive());
  86. infoProps.setInteger("connectionPool.numIdle", connectionPool.getNumIdle());
  87.  
  88. infoProps.setBoolean("connectionPool.testOnBorrow", connectionPool.getTestOnBorrow());
  89. infoProps.setBoolean("connectionPool.testOnReturn", connectionPool.getTestOnReturn());
  90. infoProps.setBoolean("connectionPool.testWhileIdle", connectionPool.getTestWhileIdle());
  91.  
  92. infoProps.setLong("connectionPool.maxWait", connectionPool.getMaxWait());
  93. infoProps.setLong("connectionPool.timeBetweenEvictionRunsMillis", connectionPool.getTimeBetweenEvictionRunsMillis());
  94. byte weab=connectionPool.getWhenExhaustedAction();
  95. String weas;
  96. switch (weab) {
  97. case GenericObjectPool.WHEN_EXHAUSTED_BLOCK:
  98. weas="WHEN_EXHAUSTED_BLOCK";
  99. break;
  100. case GenericObjectPool.WHEN_EXHAUSTED_FAIL:
  101. weas="WHEN_EXHAUSTED_FAIL";
  102. break;
  103. case GenericObjectPool.WHEN_EXHAUSTED_GROW:
  104. weas="WHEN_EXHAUSTED_GROW";
  105. break;
  106.  
  107. default:
  108. weas="unknown";
  109. break;
  110. }
  111. infoProps.setString("connectionPool.whenExhaustedAction", weas);
  112.  
  113. infoProps.setString("poolableConnectionFactory.validationQuery", validationQuery);
  114. infoProps.setInteger("poolableConnectionFactory.validationQueryTimeout", validationQueryTimeout);
  115.  
  116.  
  117.  
  118. return infoProps;
  119. }
  120.  
  121. }
Add Comment
Please, Sign In to add comment