Quoting Jody Garnett <[EMAIL PROTECTED]>: > Saul Farber wrote: > > Hey all, > > > > I've identified a nasty concurrency issue in the arcsde DataStore. > I'm > > attaching a patch, but it's basically a one-liner. > > > > A brief explanation: > > > > Every SDE "stream" object (query, update, etc.) is based on an SDE > > connection, and if more than one "stream" object (SeStreamOp > derived > > class) is constructed with the same underlying connection object, > and > > then they're both pushed to do anything with the underlying > connection > > (for an SeQuery, that'd be "execute()", for an SeUpdate that'd be > > "update()", etc.) bad things will happen. Generally the underlying > > connection object just locks up, causing the map being rendered to > > simply hang. > > > > I think there's a logical error in the ArcSDEQuery class, in the > > getSeQuery() method. The finally block at the end releases the > > connection that was just used to create the SeQuery object, and > then > > returns the SeQuery object to the calling method. Presumably the > > calling method then uses the SeQuery.execute() method, and the > > underlying connection will likely then be re-handed out and > > re-used...causing a deadlock. > > > > I've commented out the releaseConnection() call. > > > > What should I do to file this as an official bug and patch? > > > Well we should contact the module maintainer for the arcsde module > - that is in the project.xml file. Looking it up now - seems to be > Andrea! > And make a jira bug report (with your one liner mentioned). > > If they don't respond in three days, a random PMC ccan make the > change > for you, > but lets ask Andrea first. ArcSDE? That's Gabriel. And I'm not sure about commenting out that code, the point of the release connections is to allow geotools to try to use less connections - you can set the max sde connections in the factory. The logic behind this is that esri limits some licenses to only have one or two concurrent connections. GeoTools tends to want to open up a lot of connections, so sharing is a good thing. Of course, if it's causing problems, that's a bad thing, but I'm worried that just commenting out that section will cause us to just use a ton of connections, never attempting to share them. It's been too long since I've looked at specifics, but perhaps a better solution would be to make sure that the update stuff is not released? Or perhaps a config option that does no attempted sharing, lets geotools use as many different connections as it wants? Gabriel, thoughts?
Chris > > BTW the section of the guide that covers this stuff is here: > -<http://docs.codehaus.org/display/GEOTOOLS/Hacking> > > Jody > > > ------------------------------------------------------- > SF.Net email is sponsored by: > Tame your development challenges with Apache's Geronimo App Server. > Download > it for free - -and be entered to win a 42" plasma tv or your very own > Sony(tm)PSP. Click here to play: http://sourceforge.net/geronimo.php > _______________________________________________ > Geotools-devel mailing list > [email protected] > https://lists.sourceforge.net/lists/listinfo/geotools-devel > ---------------------------------------------------------- This mail sent through IMP: https://webmail.limegroup.com/ ------------------------------------------------------- SF.Net email is sponsored by: Tame your development challenges with Apache's Geronimo App Server. Download it for free - -and be entered to win a 42" plasma tv or your very own Sony(tm)PSP. Click here to play: http://sourceforge.net/geronimo.php _______________________________________________ Geotools-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/geotools-devel
