From: Jody G. <jga...@re...> - 2003-07-25 23:04:51
|
Attached are java docs for extending the DataSource API to handle locking. Please have a look at the attached files, as I would love some feedback before coding next week. To recap: - the goal is to provide strong transaction support for geoserver (use the database rather than just geoserver) - using per row locking, while easy to implement for geotools2, does not meet the locking requirements for geoserver The API proposed: - and can be implement in Postgis. - can be implemented in geotools2 by porting geoservers locking code over to an AbstractTransactionalDatasource After getting this up and going for Postgis I will be working on providing support for OracleSpatial and ArcSDE. Thanks, Jody Garnett Example Use: TypeRepository.addToLock List fids = getFidFeatures(typeName, filter); DataSource ds = dataSourceByName(typeName); Lock lock = Lock.create(1800); if ( lockAll && ds instanceof TransactionalDataSource ){ TransactionalDataSource tds = (TransactionalDataSource) ds; try { tds.setCurrentLock(locky); tds.lock(filter); tds.commit(); } catch (DataSourceException e) { throw new WfsException(e); } } InternalLock internallock = (InternalLock)locks.get( lock.getID() ); internallock.addFeatures(lockAll, getFidFeatures(typeName, filter)); |