- 浏览: 561975 次
- 性别:
- 来自: 深圳
文章分类
最新评论
-
jiang2011jiang:
mybatis3源码核心类1--Configuration -
tuyf_hs:
同求 图片
zookeeper+dubbo+dubbo管理集群的简要配置[单机] -
安静听歌:
请问图片还能找的会吗?你的图片和原文的图片都挂了,,,如果有图 ...
zookeeper+dubbo+dubbo管理集群的简要配置[单机] -
ahua186186:
yngwiet 写道楼主,有一个地方不太明白,为什么要用“ge ...
ListView中getChildAt(index)的使用注意事项 -
yngwiet:
楼主,有一个地方不太明白,为什么要用“getChildAt(p ...
ListView中getChildAt(index)的使用注意事项
以前只排查过DHCP连接池泄露的问题,思路是通过btrace脚本收集日志排查问题,jboss用的是自带的连接池,不熟悉,经过查看官方文档终于找到jboss连接池的核心类,如下:
(1)Jboss连接池核心类:InternalManagedConnectionPool :包含2个核心方法:returnConnection (),getConnection()方法。
(2) 当应用需要进行业务处理时,首先会执行一个getConnection的操作,用于从连接池中获取连接,当业务处理完成后,需要把连接放回到连接池中,执行一个returnConnection的操作。
思路1:通过btrace脚本收集日志排查问题
btrace脚本:
监控DHCP连接池:
监控jboss连接池:
思路2:抓取oracle数据库耗费资源的sql语句和 查询Oracle每天执行慢的SQL排查问题
抓取oracle数据库耗费资源的sql语句:
1.http://wukui127.blog.51cto.com/2866802/963370/
Oracle 查询每天执行慢的SQL:
http://blog.itpub.net/28602568/viewspace-1364844/
http://kamiff.iteye.com/blog/725343
参考:
http://www.dbafree.net/?p=378
http://docs.jboss.org/jbossas/javadoc/4.0.2/org/jboss/resource/connectionmanager/InternalManagedConnectionPool.java.html
(1)Jboss连接池核心类:InternalManagedConnectionPool :包含2个核心方法:returnConnection (),getConnection()方法。
(2) 当应用需要进行业务处理时,首先会执行一个getConnection的操作,用于从连接池中获取连接,当业务处理完成后,需要把连接放回到连接池中,执行一个returnConnection的操作。
思路1:通过btrace脚本收集日志排查问题
btrace脚本:
监控DHCP连接池:
package test4tool; import static com.sun.btrace.BTraceUtils.println; import static com.sun.btrace.BTraceUtils.timeMillis; import com.sun.btrace.BTraceUtils.Threads; import com.sun.btrace.annotations.BTrace; import com.sun.btrace.annotations.Export; import com.sun.btrace.annotations.Kind; import com.sun.btrace.annotations.Location; import com.sun.btrace.annotations.OnMethod; import com.sun.btrace.annotations.OnTimer; import com.sun.btrace.annotations.Return; import com.sun.btrace.annotations.Self; import com.sun.btrace.annotations.TLS; @BTrace public class BTraceConnection{ @TLS private static long startTime = 0; @Export public static long openedCount; @Export public static long closedCount; @Export public static long i; @OnMethod( clazz="/.*PoolingDataSource/", method="getConnection", location=@Location(Kind.RETURN) ) public static void m(@Return Object obj) { startTime = timeMillis(); openedCount++; println("++++++++++++++++++++++++++++++++One connection is opened!++++++++++++++++++++++++++"); println(obj); Threads.jstack(); } @OnMethod(clazz="/.*PoolableConnection/", method="close") public static void d(@Self Object obj) { closedCount++; println("======================One connection is closed!========================"); println(obj); Threads.jstack(); } @OnTimer(10000) public static void ontime() { println("Total opened connection:"); println(openedCount); println("Total closed connection:"); println(closedCount); } }
监控jboss连接池:
package test4tool; import static com.sun.btrace.BTraceUtils.println; import static com.sun.btrace.BTraceUtils.timeMillis; import com.sun.btrace.BTraceUtils.Threads; import com.sun.btrace.annotations.BTrace; import com.sun.btrace.annotations.Export; import com.sun.btrace.annotations.Kind; import com.sun.btrace.annotations.Location; import com.sun.btrace.annotations.OnMethod; import com.sun.btrace.annotations.OnTimer; import com.sun.btrace.annotations.Return; import com.sun.btrace.annotations.Self; import com.sun.btrace.annotations.TLS; @BTrace public class BTraceConnection{ @TLS private static long startTime = 0; @Export public static long openedCount; @Export public static long closedCount; @Export public static long i; @OnMethod( clazz="/.*InternalManagedConnectionPool/", method="getConnection", location=@Location(Kind.RETURN) ) public static void m(@Return Object obj) { startTime = timeMillis(); openedCount++; println("++++++++++++++++++++++++++++++++One connection is opened!++++++++++++++++++++++++++"); println(obj); Threads.jstack(); } @OnMethod(clazz="/.*InternalManagedConnectionPool/", method="returnConnection") public static void d(@Self Object obj) { closedCount++; println("======================One connection is closed!========================"); println(obj); Threads.jstack(); } @OnTimer(10000) public static void ontime() { println("Total opened connection:"); println(openedCount); println("Total closed connection:"); println(closedCount); } }
思路2:抓取oracle数据库耗费资源的sql语句和 查询Oracle每天执行慢的SQL排查问题
抓取oracle数据库耗费资源的sql语句:
1.http://wukui127.blog.51cto.com/2866802/963370/
Oracle 查询每天执行慢的SQL:
http://blog.itpub.net/28602568/viewspace-1364844/
http://kamiff.iteye.com/blog/725343
参考:
http://www.dbafree.net/?p=378
http://docs.jboss.org/jbossas/javadoc/4.0.2/org/jboss/resource/connectionmanager/InternalManagedConnectionPool.java.html
发表评论
-
shiro落地的设计复杂度(最后总结)
2018-06-19 17:22 578经过1周的源码研究,终于对shiro的原理有了深刻的理解,基于 ... -
shiro login成功后保存了哪些数据
2018-06-19 17:05 1468shiro login成功后 保存了Principals 和 ... -
shiro 会话原理分析
2018-06-19 12:40 15911、从哪里获取sessionid每次请求都会尝试获取ses ... -
shiro内部原理分析
2018-06-15 17:07 2406一句话总结:会话域Context一路收集principal ... -
Zookeeper入门-001 源码环境搭建
2018-03-15 11:47 9031.到github下载源码:https://github.c ... -
dubbo服务治理之路由规则研究
2018-01-31 15:50 22081.今天没太多事情,挤 ... -
shiro SecurityUtils.getSubject()深度分析
2018-01-12 17:38 489301.总的来说,SecurityUtils.getSubject ... -
@Async核心实现1 --------AsyncExecutionAspectSupport
2017-12-27 10:34 1980基本原理: 通过spring的扩展接口AbstractBea ... -
从零开始玩转JMX(1):简介和 Standard MBean
2017-08-23 15:20 0http://www.importnew.com/22299. ... -
java基础回顾
2017-08-15 11:21 0http://www.cnblogs.com/skywang1 ... -
mybatis-generator-maven-plugin 插件扩展 增加自定义方法
2017-08-10 16:50 0https://my.oschina.net/alexgaoy ... -
解决了DeferredResult请求长时间占用数据库连接的问题
2017-08-04 09:55 2355最近看了看开源项目appllo配置中心的源码,发现一个很有意思 ... -
httpclient发送webservice
2017-05-03 23:25 0http://aperise.iteye.com/blog/2 ... -
与大师面对面交流:Chris Richardson 来华布道微服务架构
2016-11-28 21:28 821http://www.daocloud.io/microser ... -
eclipse反编译
2016-11-23 20:48 0http://jingyan.baidu.com/articl ... -
spring security
2016-09-12 19:28 0http://www.importnew.com/5641.h ... -
浅析JPA中EntityManager无法remove entity的问题
2016-07-18 21:50 0http://rickqin.blog.51cto.com/1 ... -
Permission Denied(publickey) 解决
2016-07-14 19:18 27761.生成公钥和私钥放到C:\Users\itservice\. ... -
权限管理系统
2016-04-18 13:29 0http://git.oschina.net/ketayao/ ... -
Java工程师成神之路--面试必须复习的基础
2015-12-28 17:20 0http://www.open-open.com/news/v ...
相关推荐
JNDI作为Java平台的标准命名和目录接口,用于查找和管理分布式环境中的对象和服务,包括数据库连接等资源。通过在JBoss中配置JNDI数据源,可以实现应用程序与数据库之间的解耦,提高系统的可维护性和扩展性。 ### ...
2. 数据源配置:在 `standalone.xml` 中配置数据库连接池,如MySQL、Oracle等。 3. 应用安全设置:配置应用的角色和认证方式,如JaAS、LDAP集成。 九、启动与停止JBoss - 启动:`$JBOSS_HOME/bin/standalone.sh` -...
在IT行业中,JNDI(Java Naming and Directory Interface)是一种标准接口,用于在Java应用程序中查找和管理资源,如数据库连接池。连接池是优化数据库性能的重要手段,它通过复用已建立的数据库连接,避免了频繁...
在性能调优方面,学习如何监控和调整内存设置、线程池大小、数据库连接池等,可以帮助提升服务器的响应速度和稳定性。JBoss提供了丰富的监控工具,如JMX(Java Management Extensions)和Web管理控制台,使管理员...
学习如何通过JNDI查找数据库连接池、邮件会话等服务是必要的。 5. **安全管理**:JBoss的安全特性包括用户角色、认证和授权。这部分会讲解如何设置用户、角色,以及如何使用JaAS(Java Authentication and ...
Proxool是一个开源的轻量级Java数据库连接池实现,其主要目标是替代常见的数据库连接池解决方案,如C3P0或DBCP,并且提供了更加灵活和易于配置的特性。在实际应用中,合理配置Proxool可以显著提高系统的性能和稳定性...
在Java企业级应用开发中,开发人员往往选择开源的应用服务器如JBoss进行初期开发,而到了生产环境,考虑到稳定性和支持服务,商业应用服务器如BEA WebLogic Server可能更为合适。然而,由于不同应用服务器之间的差异...
7. **数据源和JMS队列/主题**:配置数据库连接池和消息传递系统。 【操作手册】 JBoss AS的操作手册通常包含以下内容: 1. **安装指南**:指导如何下载、解压并启动服务器。 2. **快速入门**:介绍如何部署一个...
在JBoss中,你可以通过修改`standalone.xml`或`domain.xml`配置文件来设置JNDI绑定,例如数据库连接池。 7. **安全管理** JBoss提供了强大的安全管理机制,包括用户角色定义、权限分配等。你可以在`standalone/...
2. 数据库连接池:合理设置数据库连接池大小,避免资源浪费和连接溢出。 3. 缓存配置:调整Infinispan缓存设置,提高数据访问速度。 4. 组件调优:针对特定的Java EE组件,如EJB、JMS等,进行性能优化。 五、安全...
6. **JNDI(Java Naming and Directory Interface)**:在JBoss中,PowerBuilder组件可能会通过JNDI查找服务,例如数据库连接池或其他企业服务。 7. **数据访问**:PowerBuilder通常使用DataWindow控件进行数据库...
- **调试和解决问题**: 客户端应用配置、避免内存泄漏等。 - **命名配置**: 用户自定义配置、混合命名等。 - **通过 JMX 配置和管理**: c3p0 配置。 - **日志配置**: 日志级别和输出等。 #### 性能 c3p0 在设计上...
3. **mchange-commons-java-0.2.3.4.jar**:这是 C3P0 连接池的依赖库,提供了数据库连接池管理的基本功能。 4. **antlr-2.7.7.jar**:ANTLR 是一个强大的解析器生成器,用于读取、处理、执行或翻译结构化文本或二...
这可能涵盖了数据库连接池的配置、分布式缓存的使用、以及定制的安全策略等。 **企业命名上下文(ENC)** 企业命名上下文(Enterprise Naming Context, ENC)是JBoss中的一种特殊命名上下文,它为每个应用程序组件...
而不仅仅是直接使用`DriverManager`,在大型项目中,通常会使用`DataSource`接口,它提供了更高级的功能,如连接池管理,可以提高性能和资源利用率。Apache的Commons DBCP和C3P0,以及应用服务器如Tomcat和JBoss...
- 包括数据库连接池的配置、连接URL、用户名密码等。 **6.2.1 MySql数据源的配置** - 配置MySql数据库的数据源。 - 设置连接驱动、连接URL、用户名和密码等。 **6.2.2 MsSqlServer2000数据源的配置** - 配置...
11. **Web应用部署**:在生产环境中,开发者需要知道如何配置Oracle数据库连接池,如C3P0或HikariCP,以及如何在应用服务器(如Tomcat、JBoss)中部署Web应用。 12. **备份与恢复策略**:定期备份Oracle数据库并...
4. **配置数据源**:数据源的配置是通过修改`standalone.xml`或`domain.xml`中的相关节点完成的,这些配置包括数据库连接参数、池大小等。 5. **配置日志**:日志配置可以通过修改`logging.properties`文件来实现,...
- **5.1 数据库**:讨论了如何配置数据库连接,包括创建数据库模式、使用HSQLDB等步骤。 - **6.1 部署应用**:介绍了部署过程中的关键步骤。 #### 九、使用Seam框架 - **5.1 数据模型**:介绍如何设计数据模型以...