问题描述:
我使用spring 将geotools数据库对象注入到Bean管理器中开始使用挺好,直到测试进行压力测试的时候问题出来了,每次访问25个连接的时候数据查询服务就挂掉了,无法进行后续查询操作。
原因:
//原因:直接将SimpleFeatureCollection对象进行使用未进行内存化处理,此时数据还只是在数据库中而
//SimpleFeatureCollection只是保留了数据的访问索引
SimpleFeatureSource featureSource = dataStore.getFeatureSource(tableName);
SimpleFeatureCollection features = featureSource.getFeatures(query)
解决:
//解决:使用DataUtilities.collection 将对象进行内存化处理,此时数据就存在内存中了
SimpleFeatureSource featureSource = dataStore.getFeatureSource(tableName);
SimpleFeatureCollection features = DataUtilities.collection(featureSource.getFeatures(query));
其他问题另外使用SimpleFeatureIterator迭代器必须关闭迭代器features.close();
SimpleFeatureIterator features = filterQueryCollection.features();
try {
while (features.hasNext()){
。。。
}
}finally {
features.close();
}