I'm using 2.1.7, but I doubt things are much different in 2.1.8.
What I noticed is that each view action keeps a db connection open even when it's not needed.
The context opens a db connection when first db request is made (to get/set some data) and remains open (not released) until the context is finished.
It's not a big deal with pageviews or post writes/edits.
But with large attachments, it consumers all available db connections and takes the whole application context down.
downloadAttach might take a long time to complete. Now imagine 50 users on dial-up connections downloading 10MB attachment.
That's 50 database connections used all at once.
Is there a way (some quick hack) to make it release the db connections right after the "am.isPhysicalDownloadMode" call within downloadAttach()?
I don't care that the download counter would be off when people abort downloads. I would rather just commit the transaction and after that pipe the data to the client.
Is it possible to do that without writing almost redundant methods for dao,context classes to be used with downloadAttach?
My box was down 3 times during the last month, all because of 50 or so people trying to download the same large attachment at the same time.
[originally posted on jforum.net by bcc]
Migrated From Jforum.net
posted 9 years ago
Here is a hack for anyone in a similar situation.
I tried to change as little as I can.
The line numbers might not match with 2.1.7 vanilla because I made some other changes.
So if a patch run fails, then try editing manually or match the line numbers in the diff below to your real line numbers.