pro*_*401 7 java oracle connection-pooling
在我正在处理的Java Web应用程序中,我们使用OracleConnectionPoolDataSource来实现数据库连接池功能.每个getConnection调用都包含用户的Oracle ID和密码.因此,每个用户在某种意义上都会得到自己的数据库连接池.
目前,我们使用大多数属性的默认值.这包括
有关这些属性的更多信息,请参阅Connection Cache Properties.
我们目前没有任何明显的数据库连接问题,但认为性能可能会更好.我的问题是,在调整这些值时,我们应该考虑什么,有人有好的建议或很好的资源.
适用于10g第3版(10.1.3.1)的Oracle应用服务器性能指南提供了有关如何优化连接池参数的确切信息.
该信息对于涉及使用连接池来管理与Oracle数据库的连接的应用程序的几乎所有方案都很有用,而不是使用正在使用的应用程序服务器.
例如,为最小池大小设置值始终是一个好习惯.就最大池大小而言,该值不应该过高,因为这可能会加载监听器,特别是如果应用程序倾向于不关闭连接导致泄漏.
最好为语句高速缓存设置合理的值,因为这允许高速缓存预准备语句,从而提高性能.
还应该考虑环境来选择超时.例如,在大多数情况下,连接等待超时不应为零,因为当在足够的时间间隔内无法在池中初始化物理连接时,这可能会导致SQLExceptions.不活动超时应该足够大,以便只有在足够的不活动时间后才能关闭连接; 值太低会导致物理连接过于频繁地创建和丢弃.
编辑:性能指南中给出的指导适用于oracle.jdbc.pool.OracleDataSource类,这是Oracle 10g Application Server用于托管数据源到Oracle数据库的内容.其中大部分肯定会转移到OracleConnectionPoolDataSource.