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

Reply via email to