Re: Memory Management using Tomcat

2009-09-16 Thread Joe Baldwin
Michael, Thank you for your patience on this. This is the worst problem I have encountered and I believe that it is probably something I have misunderstood (and failed to implement). FWIW, I just did a little monitoring with JConsole with my current development setup: Eclipse, Jetty, Caye

Re: Memory Management using Tomcat

2009-09-16 Thread Michael Gentry
FWIW, I just did a little monitoring with JConsole with my current development setup: Eclipse, Jetty, Cayenne 3.0M6, Tapesty 5.1, MySQL. This new application I'm working on sounds similar to yours. Fairly lightweight. After everything loaded in, I was using 20-21 MB of memory and it stayed steady

Re: Memory Management using Tomcat

2009-09-16 Thread Michael Gentry
Joe, keep in mind that a 64-bit Linux doesn't mean you'll be running a 64-bit JVM. Can you add a -Dcom.sun.management.jmxremote to your VM startup arguments for Tomcat and then use JConsole to connect to it? On Wed, Sep 16, 2009 at 3:15 PM, Joe Baldwin wrote: > Michael, > > Thanks for respondin

Re: Memory Management using Tomcat

2009-09-16 Thread Mike Kienenberger
That filter is for an old cayenne project (1.2?) Mine primarily differs in that it doesn't just insure that the session Context is bound but it also verifies that the context is in a clean state after each request and dumps the dirty objects if not. If you wanted a simple request-based DataContex

Re: Memory Management using Tomcat

2009-09-16 Thread Joe Baldwin
Mike, I looked through your code for the filter and have a few questions. 1. How does this filter differ from the default Cayenne filter? 2. It appears that your filter is doing a similar task to Cayenne filter. The docs say: A Servlet Filter that binds session DataContext to the current r

Re: Memory Management using Tomcat

2009-09-16 Thread Mike Kienenberger
I think there's a default filter provided by Cayenne you can specify in your config file, but it really comes down to something as simple as this to make it per request: public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain chain) throws IOE

Re: Memory Management using Tomcat

2009-09-16 Thread Joe Baldwin
Mike, RE BaseContext.getThreadObjectContext() Of course, this could be my problem. I was using DataContext until 3.0 then converted over to BaseContext. 2.) BaseContext.getThreadObjectContext() just tells how you're getting a context. It doesn't tell how it's managed. Do you have a ser

Re: Memory Management using Tomcat

2009-09-16 Thread Joe Baldwin
Michael, Thanks for responding so fast (I appreciate it). 1. The box is shared but the Tomcat server is dedicated to my project only. 2. The box is 64 bits (Linux 2.6.25-14.fc9.x86_64 (amd64)) 3. They have three plans available: 64MB, 128MB, and 256MB Since we only have one - two users right

Re: Memory Management using Tomcat

2009-09-16 Thread Mike Kienenberger
1.) 128 still seems small to me. I don't think I run anything at less than 256. On the other hand, We have an app with 1000s of customers that uses 512Mb, I think. So 1500 seems excessive. 2.) BaseContext.getThreadObjectContext() just tells how you're getting a context. It doesn't tell how

Re: Memory Management using Tomcat

2009-09-16 Thread Michael Gentry
Is your hosting company giving you a private dedicated box (or VM) or is your application shared with other applications running in Tomcat? If the latter, that would skew things, I think. Also, if you are running a 64-bit JVM, then it'll use more memory. It won't be 2x more, but it'll be more. I

Re: Memory Management using Tomcat

2009-09-16 Thread Joe Baldwin
Caveat: Apparently I am not as well. :) 1.) I looked at the 65M issue. On my development box (OSX) I set it to -Xms128m -Xmx128m (basically arbitrary). So when I went to the remote hosting company, I purchase a similar amount. a. However, we are doing *very* little work (lots of product fe

Re: Memory Management using Tomcat

2009-09-16 Thread Michael Gentry
I'm not sure if this will help, but ... http://wiki.apache.org/tomcat/FAQ/Memory

Re: Memory Management using Tomcat

2009-09-16 Thread Michael Gentry
My biggest Cayenne-based application (to-date) was using Cayenne 2.x. I started on Tomcat, but then switched to Jetty for development. I didn't have any problems with either, nor when I deployed into WebLogic. I was reading 10,000+ active/cached records from the database, too, which sounds like m

Re: Memory Management using Tomcat

2009-09-16 Thread Mike Kienenberger
Caveat: I'm not really an expert on Cayenne memory management. 1) Are you allocating enough heap memory to the app server to start with? I don't know what the default is these days, but in the old days, an application by default only gets 64Mb of memory -- that's pretty small. 2) Are you using

Memory Management using Tomcat

2009-09-16 Thread Joe Baldwin
Hi, I have asked this question a number of ways but I still have a very serious problem with Cayenne-specific memory management configuration associated with Tomcat. The problem with debugging is that given that I have very little visibility into the Cayenne memory management it is extrem

Re: undelete

2009-09-16 Thread Andrus Adamchik
I think context.invalidateObjects(..) should do the trick. Andrus On Sep 16, 2009, at 3:20 AM, Lachlan Deck wrote: Hi there, say an object has been marked for deletion [getObjectContext.deleteObject(foo)] but prior to commit you want to reverse that - but without discarding other changes

Re: Sorting and Pagination in Many-to-Many relationship

2009-09-16 Thread Nishant Neeraj
Thanks for imformative link. I have just started Cayenne and trying to get used to it. In the same set of exercise, I was trying to pull a list of Subscriptions (paginated) sorted by magzine name. I did this, wondering if this is the most correct way to do it. (refer data model here  http://

undelete

2009-09-16 Thread Lachlan Deck
Hi there, say an object has been marked for deletion [getObjectContext.deleteObject(foo)] but prior to commit you want to reverse that - but without discarding other changes in the context... what's the trick? Thanks. with regards, -- Lachlan Deck