You may want to check your VM version. See
http://castor.exolab.org/list-archive/msg23521.html
-Steve
On Monday 24 February 2003 11:41 am, Bruce Snyder wrote:
> This one time, at band camp, tek1 said:
>
> t>i have read through numerous past posts about the "Timestamp mismatch!"
> t>problem with long transactions, but can't understand what is happening.
> t>
> t>basically, i have 2 servlets, ServletA and ServletB.
> t>
> t>ServletA retrieves an existing User from the database as follows:
> t>
> t> db.begin();
> t> OQLQuery query = db.getOQLQuery(OQL_FIND_BY_LOGINID);
> t> query.bind(data.getLoginId());
> t> QueryResults results = query.execute();
> t> if( results.size() > 1 ) {
> t> throw new PMException("More than 1 object was returned.");
> t> }
> t> User user = null;
> t> while( results.hasMore() ) {
> t> user= (User)results.next();
> t> }
> t> db.commit();
> t>
> t>then this User object is stored in the session.
> t>
> t> req.getSession().setAttribute("user", user);
> t>
> t>
> t>later, ServletB retrieves the user from the session and attempts to
> t>Castor-update() it as follows:
> t>
> t>
> t> db.begin();
> t> User user =
> (User)req.getSession(false).getAttribute(SessionAttributes.USER);
> t>-> db.update(user); // getting "Timestamp mismatch!" here
> t> ...
> t> // also, another persistable object tries to user the User object
> t> Order order = new Order();
> t> order.setUser(user);
> t> db.create(order);
> t> db.commit();
> t>
> t>
> t>the User class implements the org.exolab.castor.jdo.TimeStampable
> interface t>and the pertinent part of the mapping.xml definition for the
> User object is t>as follows:
> t>
> t> <class name="User"
> t> identity="id"
> t> access="shared"
> t> key-generator="UUID"
> t> auto-complete="false">
> t> <map-to
> t> table="usr"
> t> />
> t> <cache-type
> t> type="count-limited"
> t> />
> t> ...
> t> </class>
> t>
> t>
> t>i have read in the posts that the default count-limited is 100, and i
> have t>not performed many database transactions to be even close to the
> limit of 100. t>
> t>the workaround that i'm using to temporarily solve the problem is:
> t>
> t> User user = (User)req.getSession(false).getAttribute("user");
> t> user = (User)db.load(User.class,user.getId());
> t>
> t>but i would like to understand why db.update(user) is not working?
>
> This seems to be bug #1107 rearing its head. On Friday, I checked in
> a test case (TC60) for this bug against Oracle and MySQL. The problem
> I'm having is that in one of my environments the test passes and in
> another one it fails. I need to determine the differences between these
> two environments.
>
> Bruce
-----------------------------------------------------------
If you wish to unsubscribe from this mailing, send mail to
[EMAIL PROTECTED] with a subject of:
unsubscribe castor-dev