proxool连接池配置详细说明.doc_第1页
proxool连接池配置详细说明.doc_第2页
proxool连接池配置详细说明.doc_第3页
proxool连接池配置详细说明.doc_第4页
proxool连接池配置详细说明.doc_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

proxool连接池配置详细说明 收藏 目前市面上三个主流连接池从性能上排名如下:proxoolc3p0dbcp,proxool还提供了可视化的连接池实时监控工具,所以既稳定又方便,配置也是非常容易的事情。下面我来讲讲我如何配置proxool连接池的。 1、下载相关资源。 从/站点上下载我们需要的资源,proxool-0.9.1是最新版本,解压后从lib下copy里面的2个JAR包 proxool-0.9.1.jar和 proxool-cglib.jar至项目中去。如果不加proxool-cglib.jar的话会报java.lang.ClassNotFoundException:xy.Callback异常。 2、首先在WEB-INF目录下新建一个proxool.xml文件。view plaincopy to clipboardprint?1. 2. 3. 4. datasource15. jdbc:mysql:/localhost:3306/datasource16. com.mysql.jdbc.Driver7. 8. 9. 10. 11. 9000012. 2013. 514. 100015. 1016. 17. 18. 19. datasource220. jdbc:sybase:Tds:localhost:16428/datasource221. com.sybase.jdbc3.jdbc.SybDriver22. 23. 24. 25. 26. 9000027. 2028. 529. 100030. 1031. 32. 我在里面配置了2个不同数据库的数据源,你可以根据需要配置多个,其中具体的参数属性我会在下面全部予以说明。 3、配置web.xml文件。view plaincopy to clipboardprint?1. 2. 5. 6. ServletConfigurator7. 8. xool.configuration.ServletConfigurator 9. 10. 11. xmlFile12. WEB-INF/proxool.xml13. 14. 115. 16. 17. datasource_situation18. 19. xool.admin.servlet.AdminServlet 20. 21. 22. 23. datasource_situation24. /datasource_situation25. 26. 27. 28. 29. proxool30. /datasource_situation31. 32. 33. manager34. 35. 36. 37. BASIC38. proxoolmanagerApplication39. 40. 41. 42. TherolethatisrequiredtologintotheManager 43. Application 44. 45. manager46. 47. 48. 40149. /401.jsp50. 51. 1用来设置加载属性,一定要保证在其他配置项之前加载。view plaincopy to clipboardprint?1. 2. datasource_situation3. 4. xool.admin.servlet.AdminServlet 5. 6. 7. 8. datasource_situation9. /datasource_situation10. 这个属性是用来提供察看连接池信息的工具,既在域名后跟上/datasource_situation就可以查看了,当然名字可以自己定义。如果你想限制用户和密码来访问就用view plaincopy to clipboardprint?1. 2. 3. proxool4. /datasource_situation5. 6. 7. manager8. 9. 10. 11. BASIC12. proxoolmanagerApplication13. 14. 15. 16. TherolethatisrequiredtologintotheManager 17. Application 18. 19. manager20. 21. 22. 40123. /401.jsp24. 这段配置就限定了只有输入了TOMCAT的管理员帐号密码后就能登陆连接池查看工具了,如果连续三次登陆失败,进入401.jsp页面。401.jsp要加入下段代码 response.setHeader(WWW-Authenticate, Basic realm=Tomcat Manager Application); 4、配置连接池连接类。view plaincopy to clipboardprint?1. packageselfservice; 2. 3. importjava.sql.Connection; 4. importjava.sql.DriverManager; 5. importjava.sql.ResultSet; 6. importjava.sql.SQLException; 7. importjava.sql.Statement; 8. 9. xool.ProxoolException; 10. xool.ProxoolFacade; 11. xool.admin.SnapshotIF; 12. 13. 14. publicclassPoolManager 15. 16. privatestaticintactiveCount=0; 17. 18. 19. publicPoolManager() 20. 21. 22. /* 23. *获取连接 24. *getConnection 25. *paramname 26. *return 27. */ 28. publicConnectiongetConnection() 29. try 30. Class.forName(xool.ProxoolDriver);/proxool驱动类 31. Connectionconn=DriverManager.getConnection(proxool.datasource1); 32. /此处的datasource1是在proxool.xml中配置的连接池别名,当然根据需要可以用datasource2 33. showSnapshotInfo(); 34. 35. returnconn; 36. catch(Exceptionex) 37. ex.printStackTrace(); 38. 39. returnnull; 40. 41. /* 42. *此方法可以得到连接池的信息 43. *showSnapshotInfo 44. */ 45. privatevoidshowSnapshotInfo() 46. try 47. SnapshotIFsnapshot=ProxoolFacade.getSnapshot(datasource1,true); 48. intcurActiveCount=snapshot.getActiveConnectionCount();/获得活动连接数 49. intavailableCount=snapshot.getAvailableConnectionCount();/获得可得到的连接数 50. intmaxCount=snapshot.getMaximumConnectionCount();/获得总连接数 51. if(curActiveCount!=activeCount)/当活动连接数变化时输出的信息 52. 53. System.out.println(活动连接数:+curActiveCount+(active)可得到的连接数:+availableCount+(available)总连接数:+maxCount+(max); 54. activeCount=curActiveCount; 55. 56. catch(ProxoolExceptione) 57. e.printStackTrace(); 58. 59. 60. /* 61. *获取连接 62. *getConnection 63. *paramname 64. *return 65. */ 66. publicConnectiongetConnection(Stringname) 67. returngetConnection(); 68. 69. /* 70. *释放连接 71. *freeConnection 72. *paramconn 73. */ 74. publicvoidfreeConnection(Connectionconn) 75. if(conn!=null) 76. try 77. conn.close(); 78. catch(SQLExceptione) 79. e.printStackTrace(); 80. 81. 82. 83. /* 84. *释放连接 85. *freeConnection 86. *paramname 87. *paramcon 88. */ 89. publicvoidfreeConnection(Stringname,Connectioncon) 90. freeConnection(con); 91. 92. 93. publicvoidgetQuery() 94. try 95. Connectionconn=getConnection(); 96. if(conn!=null) 97. Statementstatement=conn.createStatement(); 98. ResultSetrs=statement.executeQuery(select*fromtblgxinterface); 99. intc=rs.getMetaData().getColumnCount(); 100. while(rs.next() 101. System.out.println(); 102. for(inti=1;i=c;i+) 103. System.out.print(rs.getObject(i); 104. 105. 106. rs.close(); 107. 108. freeConnection(conn); 109. catch(SQLExceptione) 110. e.printStackTrace(); 111. 112. 113. 114. 115. 测试成功! 下面我来介绍一下proxool.xml文件中关于proxool各个属性的详细说明:fatal-sql-exception: 它是一个逗号分割的信息片段.当一个SQL异常发生时,他的异常信息将与这个信息片段进行比较.如果在片段中存在,那么这个异常将被认为是个致命错误(Fatal SQL Exception ).这种情况下,数据库连接将要被放弃.无论发生什么,这个异常将会被重掷以提供给消费者.用户最好自己配置一个不同的异常来抛出.fatal-sql-exception-wrapper-class:正如上面所说,你最好配置一个不同的异常来重掷.利用这个属性,用户可以包装SQLException,使他变成另外一个异常.这个异常或者继承SQLException或者继承字RuntimeExool自带了2个实现:xool.FatalSQLException 和xool.FatalRuntimeException .后者更合适.house-keeping-sleep-time: house keeper 保留线程处于睡眠状态的最长时间,house keeper 的职责就是检查各个连接的状态,并判断是否需要销毁或者创建.house-keeping-test-sql: 如果发现了空闲的数据库连接.house keeper 将会用这个语句来测试.这个语句最好非常快的被执行.如果没有定义,测试过程将会被忽略。injectable-connection-interface: 允许proxool实现被代理的connection对象的方法.injectable-statement-interface: 允许proxool实现被代理的Statement 对象方法.injectable-prepared-statement-interface: 允许proxool实现被代理的PreparedStatement 对象方法.injectable-callable-statement-interface: 允许proxool实现被代理的CallableStatement 对象方法.jmx: 略jmx-agent-id: 略jndi-name: 数据源的名称maximum-active-time: 如果housekeeper 检测到某个线程的活动时间大于这个数值.它将会杀掉这个线程.所以确认一下你的服务器的带宽.然后定一个合适的值.默认是5分钟.maximum-connection-count: 最大的数据库连接数.maximum-connection-lif

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论