On 05/02/2012 10:18 AM, John Huss wrote:
The number of ObjectContexts (or DataContexts) has no relation to the
number of database connections. ObjectContexts are cheap to create and
use, so go wild. Cayenne will do connection pooling out of the box by
using the minimum and maximum connection limits that you define in Modeler.
John
That was what I was hoping for. Continue to let the "magic" take care
of the nitty-gritty details so I can focus on my app.
But just to confirm my understanding. I can create one
DataContext(ObjectContext) and perform as many "simultaneous i.e. from
multiple threads" object creations, object updates, stored procedure
executions without concern as long as these creations/updates/stored
procedure executions are non-related and independent meaning one thread
that's doing a creation/update/stored procedure execution is not
dependent on a creation/update/execution going on in another thread.
Something like this
public class Main{
public static synchronized DataContext getDataContext() {
if (dc == null) {
String fileName = "etc/cayenne.xml";
org.apache.cayenne.conf.FileConfiguration conf = new
org.apache.cayenne.conf.FileConfiguration(fileName);
org.apache.cayenne.conf.Configuration.initializeSharedConfiguration(conf);
dc = DataContext.createDataContext();
}
return dc;
}
}
public class myThread(){
public void run(){
DataContext dc = Main.getDataContext();
// etc on object creation/update/stored procedure executions
dc.commitChanges();
}
}
Andrew