`
dannyhz
  • 浏览: 392804 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

在数据库连接池 编程里使用了copyonwritearrayList

 
阅读更多

@Override
	public void config(ComponentConfig config)
	{
		super.config(config);

		// use the security handler to retrieve password
		// if it is available.
		if (securityHandler == null) {
			securityHandler = ContextManager.getSecurityHandler();
		}
		if (securityHandler != null) {
			password = securityHandler.retrievePassword(keyHost, user);
		}

		try {
			dataSource = new OracleConnectionPoolDataSource();
			Properties properties = CommonUtil.retrieveStringProperties(systemProperties);;
			// process id as current pid
			properties.setProperty("oracle.jdbc.v$session.process", String.valueOf(CommonUtil.getPid()));
			properties.setProperty("oracle.jdbc.ReadTimeout", String.valueOf(readTimeout * 1000));
			properties.setProperty("oracle.net.disableOob", String.valueOf(oracleNetDisableOob));
			dataSource.setConnectionProperties(properties);
			
			//dataSource.setDriverClass("oracle.jdbc.OracleDriver");
			dataSource.setURL(brokerUrl);
			dataSource.setUser(user);
			dataSource.setPassword(password);

			// the settings below are optional -- c3p0 can work with defaults
			//dataSource.setMinPoolSize(initialPoolSize);
			//dataSource.setMaxPoolSize(maxPoolSize);
			//dataSource.setAcquireIncrement(this.aquireIncrement);

			connectionFactory = AQjmsFactory.getConnectionFactory(dataSource);
			connections = new CopyOnWriteArrayList<JmsConnection>();
			createConnections(this.initialPoolSize);
			LOGGER.debug(String.format(
					"connection pool initialized with %d connections",
					initialPoolSize));
		}
		catch (JMSException e) {
			String error = "Failed to get connectionFactory with error "
					+ e.getMessage();
			LOGGER.error(error);
			throw new InitializationException(error);
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		LOGGER.debug(String.format(
				"connection pool initialized with %d connections",
				initialPoolSize));
		// replace cxCode for OracleAQ
		if (DEFAULT_JMS_CX_CODE.equals(cxCode)) {
			cxCode = "CX610";
		}
	}


分享到:
评论

相关推荐

    Java类实现数据库连接池(源码)

    在Java编程中,数据库连接池是一种管理数据库连接的机制,它允许程序重复使用一个已经存在的数据库连接,而不是每次需要时都创建新的连接。这大大提高了应用程序的性能和效率,因为建立和关闭数据库连接是耗时的操作...

    JAVA优化编程

    - **连接池**:使用数据库连接池如C3P0、HikariCP等,减少数据库连接创建与销毁的开销。 7. **反射与注解处理**: - **慎用反射**:反射操作通常比直接调用方法慢,尽量减少反射的使用。 - **元数据缓存**:使用...

    java 2 编程21天自学通

    11. **JDBC数据库编程**:学习Java如何连接和操作数据库,包括数据库连接池、预编译SQL语句、事务处理等。 12. **Java注解与反射**:了解注解的使用和元编程概念,以及如何通过反射动态地访问和修改类的属性和方法...

    《Java并发编程高阶技术-高性能并发框架源码解析与实战》学习.zip

    在实战部分,读者会接触到如何在实际项目中应用这些并发技术,例如设计高并发的Web服务、优化数据库连接池、实现分布式锁等。通过阅读源码,可以深入理解这些并发工具的工作机制,有助于在遇到并发问题时能快速定位...

    25本java高手合集 各种底层分析各种精华

    在合集中,你可能会找到关于JDBC的最佳实践,如如何有效管理数据库连接池,避免SQL注入,以及优化数据库查询效率等话题。 首先,JDBC的连接池技术,如C3P0、HikariCP、Druid等,是提高系统性能的重要手段。学习如何...

    java优化编程ppt讲义,附代码

    - 数据库连接池:理解其工作原理,正确配置以提高性能。 以上是Java优化编程的主要内容,通过学习这些知识点,开发者能够更好地理解如何编写出高效、稳定、易于维护的Java代码。配合提供的PPT讲义和实际代码示例,...

    阿里巴巴java开发手册完整版

    2. 连接池:使用连接池如C3P0、HikariCP管理数据库连接,优化资源使用。 总结,《阿里巴巴Java开发手册》提供了全面而实用的编程规范,有助于Java开发者编写出高质量、易于维护的代码。遵循这些规范,不仅能够提高...

    jvm虚拟机,数据库,java基本知识

    JDBC是Java访问数据库的标准接口,学习如何使用Statement、PreparedStatement和CallableStatement执行SQL语句,以及事务处理和连接池的配置,能帮助开发者高效地进行数据操作。 **Java基本知识**: 这涵盖了从基础...

    Java多线程优化百万级数据

    此外,考虑使用连接池来复用数据库连接,减少连接创建和关闭的时间。 6. **数据库索引**:对数据库表进行合理的索引设计,可以显著提升数据查询速度。针对读取操作频繁的字段,建立合适的索引。 7. **读写分离**:...

    【并发编程】如何优雅使用线程池.pdf

    在并发编程中,为了避免竞态条件和死锁的发生,需要使用同步机制。常见的同步机制包括但不限于: - **锁**:例如互斥锁(mutex)、读写锁(rwlock)等,用于保护临界区,确保同一时间只有一个线程访问共享资源。 - ...

    keep公司Java笔试面试.zip_面试资料下载

    - 数据库连接池:如Druid、HikariCP的配置与使用,数据库连接池的作用和原理。 5. **并发编程**: - 线程池:ExecutorService的使用,线程池参数设置与优化。 - 并发工具类:Semaphore、CountDownLatch、...

    阿里巴巴Java开发手册v1.4.0.pdf(最新版本)

    6. **网络编程**:在TCP/IP通信中,手册强调了套接字的关闭和异常处理,以及使用连接池提高网络资源利用率。同时,推荐使用HTTP客户端库,如Apache HttpClient或OkHttp,以简化网络请求处理。 7. **数据库操作**:...

    java面试葵花宝典

    2. 数据库连接池:分析C3P0、DBCP、Druid等数据库连接池的使用和配置。 3. 设计模式:讲解常见的设计模式,如工厂模式、单例模式、观察者模式等,及其在实际开发中的应用。 这些知识点构成了Java面试葵花宝典的主要...

    Java对象池实现源码

    在Java编程中,对象池是一种优化资源管理的技术,它的核心思想是预先创建并维护一组对象,供程序在需要时重复使用,而不是每次需要时都创建新的对象。这有助于减少对象的创建和销毁带来的开销,特别是在频繁创建和...

    阿里巴巴Java开发手册 终极版

    8. **性能优化**:手册中也涉及了一些性能优化技巧,如避免过度使用反射和动态代理,减少不必要的对象创建,以及正确使用数据库连接池等。 9. **日志与监控**:日志是排查问题的重要工具,手册推荐使用统一的日志...

    性能优化文档1

    2. 数据库连接池管理,合理设置最大连接数和超时时间。 八、网络优化 1. 使用HTTP/2协议,减少网络请求次数。 2. 使用GZIP压缩,减小传输数据量。 九、设计模式与架构优化 1. 采用缓存机制,如Redis,减轻数据库...

    Java并发编程(学习笔记).xmind

    (2)实现资源池,例如数据库连接池 (3)使用信号量将任何一种容器变成有界阻塞容器 栅栏 能够阻塞一组线程直到某个事件发生 栅栏和闭锁的区别 所有线程必须同时到达栅栏位置,...

    Java中高级核心知识全面解析

    10. **数据库操作**:熟悉JDBC API,了解数据库连接池(如HikariCP、Druid)的使用,以及SQL语句优化和事务管理。 11. **并发编程**:深入理解并发容器如BlockingQueue、FutureTask,以及并发工具类CountDownLatch...

    阿里巴巴Java开发手册(详尽版),阿里巴巴java开发手册官方,Java

    2. 连接池管理:推荐使用成熟的连接池组件,如Druid,合理配置连接池参数,以提高数据库访问效率。 七、单元测试 1. JUnit与Mockito:介绍了如何编写单元测试,以及使用Mockito进行模拟对象测试,确保代码的健壮性...

    阿里巴巴Java开发手册终极版v1.3.0.zip

    - 数据库连接管理:合理设置数据库连接池大小,关闭不再使用的连接。 6. **框架规约** - Spring:掌握Spring的依赖注入、AOP、事务管理等核心功能,理解Spring Boot和Spring Cloud的应用场景。 - MyBatis:合理...

Global site tag (gtag.js) - Google Analytics