我们使用websphere作为应用程序服务器和spring-data来访问oracle数据库。 如果我们在应用程序上调用起始页面,则会从数据库中并行加载来自三个不同帧的不同数据和大量标签。 现在,如果我们在打开起始页面时监视数据库,则会打开和关闭不同的数据库会话。但是,三个会话(获取标签)会保持打开状态,但处于非活动状态。 我认为三个会话,因为我有三个框架并且它们都并行地加载了很多标签。
websphere,spring-data或oracle中是否有一项功能可识别何时经常执行sql语句并保持会话打开?
或者你知道为什么会议保持开放吗?
答案 0 :(得分:0)
WebSphere Application Server数据源支持连接池和预准备语句的缓存。默认情况下启用此选项。只要您的应用程序使用WebSphere Application Server数据源(通过资源注入@Resource或JNDI查找获得)并使用java.sql.PreparedStatement作为SQL命令,PreparedStatements将保留在缓存中并根据需要重用。从您的问题中不清楚您是否想要这种行为,或者您是否想要避免这种行为。如果要禁用所有预准备语句的缓存,可以将数据源的statementCacheSize配置为0.或者,如果只有特定的预准备语句要避免缓存,可以通过编程方式设置它们的JDBC可用性提示。 :
preparedStatement.setPoolable(false);