我在部署在Websphere应用服务器上的Portlet应用程序中使用hibernate 4.0.1,我指的是从hibernate配置在应用服务器上配置的数据源,我的问题是我应该使用" connection.pool_size&# 34;财产或" c3p0"设置连接池大小还是没有? ,因为服务器上的数据源已经具有10的连接池大小。
换句话说,哪个优先,Hibernate配置或数据源配置用于连接池,哪个更好?
提前致谢。
答案 0 :(得分:1)
Datasource限制传入连接。 如果您使用CP与例如20个连接 - 最多它将从20获得10个连接。 因此,您的dsource池大小应为20或更多。
答案 1 :(得分:1)
当使用通过JNDI名称访问的WebSphere Application Server中配置的数据源时,无论是直接访问还是通过向Hibernate配置提供JNDI名称,最终都会默认情况下由应用程序服务器共享连接。除了连接池之外,您还可以获得事务登记,连接共享,语句缓存和其他增值。应用程序服务器不检测是否存在备用连接池并禁用其自身。关于优先权的问题,既不优先考虑。如果数据源或其他实现提供了自己的连接池,则最终会在两个层上完成池化,这可能是不可取的。如果您需要或更喜欢,可以手动禁用应用程序服务器的连接池和语句缓存,同时通过将连接池的老化超时设置为立即来保留应用程序服务器提供的其他功能(事务登记等)数据源的statementCacheSize为0.这将允许您尝试使用任一实现并自行判断哪些在您的特定场景中表现更好。