public List<Object> executeInConcurrency(SqlMapClientCallback action,
SortedMap<String, DataSource> dsMap) {
List<ConcurrentRequest> requests = new ArrayList<ConcurrentRequest>();
for (Map.Entry<String, DataSource> entry : dsMap.entrySet()) {
ConcurrentRequest request = new ConcurrentRequest();
request.setAction(action);
request.setDataSource(entry.getValue());
request.setExecutor(getDataSourceSpecificExecutors().get(entry.getKey()));
requests.add(request);
}
List<Object> results = getConcurrentRequestProcessor().process(requests);
return results;