Joe Pluta skrev den 09-06-2008 19:30:
Thorbjørn Ravn Andersen wrote:
This turned out to be both an interesting exercise and a learning experience regarding different . It is not a problem to store a scrollable resultset as a session attribute in JSP and navigate back and forth with a PostgreSQL database on OpenSolaris so that was working nicely.
Hold on though - this means you need a stateful HTTP session, right? That is, you keep the database connection from one request to the next. If you have that and 1000 users, and you all use a connection pool with only 100 entries, then the pool will run out of connections. It's basically a stateful design.
I did not advocate against stateful designs. I advocated against having statefulness more than one place, and you said that I could not create an application which could page the result of an arbitrary SQL command without recreating the query every time. Hence this is what I am looking at creating a proof-of-concept for.

Connection pools should grow and shrink as needed.
It then turned out that the PostgreSQL JDBC driver loads the complete resultset in memory when needing to be able to page back and forth, which was the whole idea to avoid so that was an unpleasant surprise having 11 million rows in my testset. So now I've learned that not all JDBC-drivers are created equal :)
I expected this. If the result set is truly disconnected, then you would have to either hold all the data in memory, or else you have to create a new index each time.
Or the database would be smart enough to keep the query active and allow the resultset to navigate. This is currently what I expect the i to be able to.

--
Thorbjørn

As an Amazon Associate we earn from qualifying purchases.

This thread ...

Follow-Ups:
Replies:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.