spring访问weblogic配置jndi数据源
环境:
db2服务器:aix,db2 8.1
应用服务器:rhel3,weblogic8.1,jdk1.4,db2客户端
数据库是通过app别名方式访问
1、问题描述
前不久,我们系统出现了点毛病,客户那边突然断电,后来应用服务器和db2数据库服务器重新启动,发现客户端依然无法连接应用服务器,问题解决后,将服务器端日志拿下来分析发现,weblogic启动之后,由于一个线程一直在刷库,导致一直报db2连接错误,大约半个多小时后,数据库连接恢复正常,日志中没有再出现db2连接错误,大概又过了10分钟,weblogic出现内存不足报警,随后便大量抛出OutOfMemoryError ,end of stacktrace 异常,整个应用瘫掉。
2、模拟重现
根据日志反应的情况,我们模拟出一致情况。如果在weblogic完全启动之后,db2才启动(或者说才能够正常连接),会导致weblogic出现OutOfMemoryError,从OutOfMemoryError控制台内存监控中可以看到,内存占用成台阶式上升的,之后到了顶部就可以看到控制台weblogic输出报警。后经过bea工程师的相关诊断等,推荐我们应用程序通过JNDI获取应用weblogic提供的数据源。在此之前,我们系统确实使用spring配置的org.apache.commons.dbcp.BasicDataSource数据源。
导致此种情况的不知道是否由BasicDataSource所引起,在网上找了N久,都未曾找到一个说法,暂且记录下来。。。
分享到:
相关推荐
### Spring 数据源配置详解 #### 一、Spring与数据源简介 在Java企业级应用开发中,数据库操作是必不可少的一部分。Spring框架作为一种流行的轻量级Java应用开发框架,提供了强大的数据库访问支持,其中包括对数据...
### Spring MVC 中配置多数据源详解 在Spring框架中配置多数据源的需求比较常见,尤其在需要处理不同类型的数据库或需要实现数据隔离的应用场景中。本文将详细介绍如何在Spring MVC项目中配置并使用多数据源。 ###...
Spring提供了一个名为`BasicDataSource`的类,它实现了`javax.sql.DataSource`接口,是最基础的数据源配置。在没有特殊需求的情况下,可以使用`BasicDataSource`。配置时,需要设置数据库URL、用户名、密码等属性。...
综上所述,Spring动态切换数据源是通过配置不同数据源,结合`AbstractRoutingDataSource`子类和`ThreadLocal`管理的策略,实现在运行时选择合适的数据源执行SQL操作。这一机制极大地增强了系统的灵活性和可扩展性。
当配置了多个数据源时,我们需要为每个数据源创建一个DataSourceTransactionManager实例,并在Spring配置文件中指定对应的Data Source。 2. **AbstractRoutingDataSource**:这是一个抽象的数据源类,它可以根据...
5. **数据源的扩展**:Spring还允许通过AOP和自定义拦截器等方式对数据源进行进一步的定制和优化,如添加连接池监控、SQL日志记录等功能。 总之,Spring数据源的配置涉及到多个方面,包括选择合适的数据源实现、...
- **BasicDataSource**: Spring内置的`org.springframework.jdbc.datasource.BasicDataSource`是最常用的数据源实现,它基于Apache Commons DBCP库,提供连接池功能。 - **DataSourceTransactionManager**: 这是...
### Spring多数据源配置详解 在企业级应用中,尤其是微服务架构下,多数据源配置成为了一项常见的需求。Spring框架提供了灵活且强大的机制来处理这种场景,使得开发者能够在一个应用中集成多个数据源,从而实现数据...
1. **配置Spring**:首先,我们需要在Spring的配置文件中声明多个数据源。这些数据源可以是JDBC的DataSource实例,如Apache的DBCP或C3P0。每个数据源都有其特定的数据库连接信息,例如URL、用户名和密码。 ```xml ...
### Spring 数据源的灵活配置巧应用 #### 一、引言 在现代软件开发中,尤其是基于Java的应用程序,Spring框架已经成为不可或缺的一部分。Spring框架以其轻量级、灵活性及强大的功能,深受开发者们的喜爱。其中,...
当我们面临需要连接多个数据库的情况时,Spring的多数据源配置就显得尤为重要。本文将详细介绍如何在Spring中配置并实现多数据源,以及如何与MyBatis框架整合。 首先,我们需要理解什么是多数据源。在单数据源中,...
这些数据源可以是JNDI数据源,也可以是Spring的`BasicDataSource`或其他类型的DataSource实现。 2. **创建路由数据源**: 继承`AbstractRoutingDataSource`并实现`determineCurrentLookupKey()`方法。在这个方法中,...
本篇将详细介绍如何在Spring、SpringMVC和MyBatis集成环境中配置多数据源。 首先,我们来理解数据源(DataSource)的概念。数据源是Java中用于存储和管理数据库连接的组件,它实现了Java的javax.sql.DataSource接口...
例如,我们可以使用`org.springframework.jdbc.datasource.DriverManagerDataSource`或Apache的`BasicDataSource`来创建数据源。 ```java @Configuration public class DataSourceConfig { @Bean(name = ...
IOC容器数据源配置 <!-- 配置数据源 --> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <value>org.gjt.mm.mysql.Driver <value>jdbc:mysql:/...
在本教程中,我们将深入探讨如何在Spring框架与Mybatis集成的环境中,配置多数据源访问。这是一项关键技能,特别是在开发大型企业级应用时,可能需要连接到多个数据库进行不同的业务操作。以下是对这个主题的详细...
下面我们将深入探讨这两个框架的配置文件、数据源以及在Web工程中的应用。 首先,让我们从Spring框架开始。Spring的核心在于依赖注入(Dependency Injection,DI),它通过管理对象及其依赖关系来简化应用程序的...
在本配置中,我们将探讨如何将Spring MVC与Apache DBCP数据源和JdbcTemplate结合使用,以实现高效、安全的数据库操作。 Apache DBCP(Database Connection Pool)是一个连接池组件,它允许应用在多个用户之间共享...
### 如何在Spring框架中解决多数据源的问题 #### 问题背景及挑战 在实际的软件开发过程中,尤其是在企业级应用开发中,经常会遇到需要同时处理多个数据源的情况。例如,一个应用程序可能需要同时访问Oracle数据库...