[prev in list] [next in list] [prev in thread] [next in thread] 

List:       ojb-user
Subject:    Re: Update problem using PersistenceBroker api
From:       Armin Waibel <arminw () apache ! org>
Date:       2004-04-29 10:24:08
Message-ID: 4090D7C8.2080605 () apache ! org
[Download RAW message or body]

Stijn de Witt wrote:

> Hi Armin,
> 
> Here are my OJB.properties (I stripped the comments for brevity):
> 

hmm, seems ok. If you don't change the default configuration (except 
your DB settings and sequence manager if needed) you should see your 
changes.

 > ObjectCacheClass=org.apache.ojb.broker.cache.ObjectCacheEmptyImpl
shouldn't cause problems (for objects without circular references)

Try to set log level for class
org.apache.ojb.broker.accesslayer.sql.SqlGeneratorDefaultImpl
to debug or better use p6spy to log the invoked sql-statements.

http://db.apache.org/ojb/faq.html#How%20can%20I%20trace%20and/or%20profile%20SQL%20statements%20executed%20by%20OJB?


regards,
Armin

> -----
> repositoryFile=repository.xml
> useSerializedRepository=false
> serializedRepositoryPath=.
> PersistenceBrokerFactoryClass=org.apache.ojb.broker.core.PersistenceBrokerFa
> ctoryDefaultImpl
> PersistenceBrokerClass=org.apache.ojb.broker.core.PersistenceBrokerImpl
> maxActive=100
> maxIdle=-1
> maxWait=2000
> timeBetweenEvictionRunsMillis=-1
> minEvictableIdleTimeMillis=1000000
> whenExhaustedAction=0
> ConnectionFactoryClass=org.apache.ojb.broker.accesslayer.ConnectionFactoryPo
> oledImpl
> ConnectionManagerClass=org.apache.ojb.broker.accesslayer.ConnectionManagerIm
> pl
> SqlGeneratorClass=org.apache.ojb.broker.accesslayer.sql.SqlGeneratorDefaultI
> mpl
> StatementManagerClass=org.apache.ojb.broker.accesslayer.StatementManager
> StatementsForClassClass=org.apache.ojb.broker.accesslayer.StatementsForClass
> Impl
> JdbcAccessClass=org.apache.ojb.broker.accesslayer.JdbcAccessImpl
> ObjectCacheClass=org.apache.ojb.broker.cache.ObjectCacheEmptyImpl
> descriptorBasedCaches=false
> LockManagerClass=org.apache.ojb.odmg.locking.LockManagerDefaultImpl
> LockMapClass=org.apache.ojb.odmg.locking.InMemoryLockMapImpl
> LockTimeout=60000
> ImplicitLocking=true
> LockServletUrl=http://127.0.0.1:8080/ojb-lockserver
> LockAssociations=WRITE
> LoggerClass=org.apache.ojb.broker.util.logging.Log4jLoggerImpl
> LoggerConfigFile=log4j.properties
> ROOT.LogLevel=DEBUG
> DEFAULT.LogLevel=INFO
> org.apache.ojb.broker.core.PersistenceBrokerImpl.LogLevel=WARN
> org.apache.ojb.broker.core.PersistenceBrokerFactoryDefaultImpl.LogLevel=DEBU
> G
> org.apache.ojb.broker.metadata.RepositoryXmlHandler.LogLevel=WARN
> org.apache.ojb.broker.metadata.ConnectionDescriptorXmlHandler.LogLevel=WARN
> org.apache.ojb.broker.accesslayer.JdbcAccessImpl.LogLevel=WARN
> org.apache.ojb.broker.accesslayer.RsIterator.LogLevel=WARN
> org.apache.ojb.broker.accesslayer.StatementsForClassImpl.LogLevel=WARN
> org.apache.ojb.broker.accesslayer.sql.SqlGeneratorDefaultImpl.LogLevel=WARN
> org.apache.ojb.broker.metadata.RepositoryPersistor.LogLevel=WARN
> org.apache.ojb.broker.accesslayer.ConnectionFactoryAbstractImpl.LogLevel=WAR
> N
> org.apache.ojb.broker.accesslayer.ConnectionManagerImpl.LogLevel=WARN
> ODMG.LogLevel=DEBUG
> JDO.LogLevel=DEBUG
> performance.LogLevel=INFO
> soda.LogLevel=WARN
> ConfigurableFactory.LogLevel=WARN
> OqlCollectionClass=org.apache.ojb.odmg.collections.DListImpl_2
> SqlInLimit=200
> DListClass=org.apache.ojb.odmg.collections.DListImpl_2
> DArrayClass=org.apache.ojb.odmg.collections.DListImpl_2
> DMapClass=org.apache.ojb.odmg.collections.DMapImpl
> DBagClass=org.apache.ojb.odmg.collections.DBagImpl
> DSetClass=org.apache.ojb.odmg.collections.DSetImpl
> PersistentFieldClass=org.apache.ojb.broker.metadata.fieldaccess.PersistentFi
> eldDirectAccessImpl
> OJBTxManagerClass=org.apache.ojb.odmg.LocalTxManager
> JTATransactionManagerClass=org.apache.ojb.odmg.transaction.JBossTransactionM
> anagerFactory
> -----
> 
> -Stijn
> 
> 
> ----- Original Message ----- 
> From: "Armin Waibel" <arminw@apache.org>
> To: "OJB Users List" <ojb-user@db.apache.org>
> Sent: Wednesday, April 28, 2004 5:14 PM
> Subject: Re: Update problem using PersistenceBroker api
> 
> 
> 
> > Hi Stijn,
> > 
> > do you use OJB default settings (OJB.properties)?
> > Your test seems ok.
> > 
> > regards,
> > Armin
> > 
> > Stijn de Witt wrote:
> > 
> > > I have created a test program that attempts to load a Candidate from the
> > > database with lastName="Tester". If none is found it creates a new one.
> 
> It
> 
> > > then sets the title field to a random string and stores the object.
> > > 
> > > On the first run, no candidate is found (as expected) and a new one is
> > > created and stored correctly. On the second run, the candidate stored
> 
> before
> 
> > > is found correctly, and the title is set to a new random string.
> > > broker.store() is called and finishes with no errors. When I look in the
> > > database however, the title field is not changed...
> > > 
> > > What am I doing wrong?
> > > 
> > > -Stijn
> > > 
> > > package nl.bergland.codamo;
> > > 
> > > import java.util.*;
> > > import org.apache.log4j.LogManager;
> > > import org.apache.log4j.Logger;
> > > import org.apache.log4j.PropertyConfigurator;
> > > import org.apache.ojb.broker.PersistenceBrokerFactory;
> > > import org.apache.ojb.broker.PersistenceBroker;
> > > import org.apache.ojb.broker.query.*;
> > > 
> > > public class OjbTester
> > > {
> > > private static final Logger logger =
> > > LogManager.getLogger(OjbTester.class.getName());
> > > /** Creates a new instance of Test */
> > > public OjbTester()
> > > {
> > > }
> > > 
> > > public static void main(String[] args)
> > > {
> > > PropertyConfigurator.configure("log4j.properties");
> > > 
> > > logger.info("main: Starting...");
> > > logger.info("main: Getting persistence broker...");
> > > PersistenceBroker broker = null;
> > > try
> > > {
> > > broker =
> 
> PersistenceBrokerFactory.defaultPersistenceBroker();
> 
> > > logger.info("main: Creating query criteria...");
> > > Criteria crit = new Criteria();
> > > logger.info("main: Set criteria lastName==\"Tester\"...");
> > > crit.addEqualTo("lastName", "Tester");
> > > logger.info("main: Create query...");
> > > Query q = QueryFactory.newQuery(Candidate.class, crit);
> > > logger.info("main: Fire query for a Candidate with lastName
> 
> ==
> 
> > > \"Tester\"...");
> > > Collection results = broker.getCollectionByQuery(q);
> > > logger.info("main: Get result (if any)...");
> > > broker.close();
> > > 
> > > broker =
> 
> PersistenceBrokerFactory.defaultPersistenceBroker();
> 
> > > logger.info("main: Starting transaction...");
> > > broker.beginTransaction();
> > > Iterator it = results.iterator();
> > > Candidate candidate;
> > > if (it.hasNext()) {
> > > logger.info("main: Found a candidate...");
> > > candidate = (Candidate) it.next();
> > > } else {
> > > logger.info("main: No candidate found, create new...");
> > > candidate = new Candidate();
> > > candidate.setFirstName("Tommy");
> > > candidate.setLastName("Tester");
> > > }
> > > 
> > > 
> > > logger.info("main: Assign availableFrom as current
> 
> Date...");
> 
> > > candidate.setAvailableFrom(new java.sql.Date(new
> > > java.util.Date().getTime()));
> > > 
> > > logger.info("main: Set random title...");
> > > Random rand = new Random();
> > > byte[] bytes = new byte[4];
> > > rand.nextBytes(bytes);
> > > String title = new String();
> > > for (int i=0; i<bytes.length; i++)
> > > {
> > > Byte bt = new Byte(bytes[i]);
> > > title += bt.toString();
> > > }
> > > 
> > > logger.info("main: Set candidate.title == " + title +
> 
> "...");
> 
> > > candidate.setTitle(title);
> > > 
> > > logger.info("main: Trying to store candidate...");
> > > broker.store(candidate);
> > > logger.info("main: Stored candidate " + candidate.getId());
> > > 
> > > logger.info("main: Commit transaction...");
> > > broker.commitTransaction();
> > > }
> > > catch(Exception e)
> > > {
> > > if (broker == null)
> > > logger.error("main: ERROR getting persistence broker: "
> 
> +
> 
> > > e.getMessage());
> > > else
> > > {
> > > logger.error("main: ERROR: " + e.getMessage());
> > > if (broker.isInTransaction())
> > > {
> > > logger.error("main: Rollback Transaction...");
> > > broker.abortTransaction();
> > > }
> > > }
> > > }
> > > finally
> > > {
> > > if (broker != null)
> > > broker.close();
> > > }
> > > 
> > > logger.info("main: Done.");
> > > }
> > > }
> > > 
> 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: ojb-user-unsubscribe@db.apache.org
> For additional commands, e-mail: ojb-user-help@db.apache.org
> 
> 
> 

---------------------------------------------------------------------
To unsubscribe, e-mail: ojb-user-unsubscribe@db.apache.org
For additional commands, e-mail: ojb-user-help@db.apache.org


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic