I have seemingly gotten this to work (but I said that last time, too) and endure our fullest battery of tests, under the assumption of per-thread "dataset"s, discarding them after a commit/end and creating a new one for the thread when needed.
What the documentation needs, besides clear design guidelines for and a minimal code example of multithreaded, transactional use, is a family of diagrams explaining the scope, extent, uniqueness, and ownership of all the kinds of data objects you can get (e.g., maps, datasets ...) with respect to each other, databases, and threads. Thanks again ---- Bernie On Wed, Mar 28, 2012 at 6:53 PM, Paolo Castagna < [email protected]> wrote: > Andy Seaborne wrote: > > On 28/03/12 18:39, Paolo Castagna wrote: > >> Andy, are you reluctant to have TDBFactory.create(location) in the > >> documentation and/or is there a plan (I am not aware of) to change the > >> way to create Dataset objects in TDB? If that is the case, we could > still > >> have TDBFactory.create(location) in the documentation, but add a > >> NOTE/WARNING > >> that this can change. > > > > I was spending my time fixing the code. > > > > I'll update the "Multi-threaded use" section - it currently does not > > make sense. > > I find the "Multi-threaded use" section more clear now, thanks: > > http://jena.staging.apache.org/jena/documentation/tdb/tdb_transactions.html#multi-threaded-use > > When a new user see this: > > Location location = ... ; > Dataset dataset = ... ; > > It might not clear to him/her: > > - how to create a Dataset? > - can a Dataset be reused? > > The section "Multi-threaded use" is below in the document and many would > not even read stuff down there. > > This is IMHO less ambiguous: > > Location location = ... ; > Dataset dataset = TDBFactory.create(location) ; > > Now, we also have a clear answer in the mailing list archives. > Hopefully, Google and its ranking algorithm(s) will do the rest. ;-) > > Paolo > > > > > Andy > >
