On Apr 17, 2009, at 7:38 AM, Jarosław Barcewicz wrote:

Hi,
I have application that allows user to make searches over database that can last for few minutes. Using WOLongResponsePage user can see some time counting :D when his query is executed. Query is custom created and fired by EOUtilities.rawRowsForSQL. Problem is, that new user (new session just created) cannot log in even see start page.

If you are dispatching requests concurrently, they should at least be able to get to the start page. But that won't be of any benefit.


I've tried some solutions passed here. One that works is to create ERXObjectStoreCoordinator per session. This works, but when I was testing it simulating many users (about 100) database connection pool ends and application still wanted to create new ones. In session constructor I use:


ERXObjectStoreCoordinator objectStoreCoordinator = new ERXObjectStoreCoordinator();
EOEditingContext editingContext = ERXEC.newEditingContext();
setDefaultEditingContext(editingContext)

Yes, that can have bad results with memory usage and database connection usage.


If I don't create ERXObjectStoreCoordinator, new user with new session cannot use db during database channel is occupied by searching thread and new db channel is not created. I thought that database connections are created when all from pool are busy, when some are free - session uses them. How to manage such situation, maybe I misunderstand something?

The above code automatically creates new ones. You will probably be better off creating a pool for the long running searches and leave the normal session processing untouched.


I tried to follow the instruction of Miguel Arroz from http://terminalapp.net/dr-optimistic-locking/ but setting er.extensions.ERXObjectStoreCoordinatorPool.maxCoordinators to some value changes nothing.

Does you Application extend ERXApplication and Session extend ERXSession?



Could you explain me how to use, in simplest case, ERXObjectStoreCoordinatorPool, ERXObjectStoreCoordinator and ERXObjectStoreCoordinatorSynchronizer? I can't figure out how to use them together.

I don't use those, but managing a simple pool yourself for the long running searches might be easier. Even if you use ERXObjectStoreCoordinatorPool, you are still going to want a new EOF stack for the long searches. You should probably concentrate on that problem first.


Chuck



Thanks in advance, :D
Jarek

--
Jaroslaw Barcewicz
Software Developer
Power Media S.A.
http://www.power.com.pl

District Court for Wroclaw-Fabryczna
KRS: 0000281947
NIP: PL-898-16-47-572
Capital stock: 640 000 PLN


_______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list      ([email protected])
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/webobjects-dev/chill%40global-village.net

This email sent to [email protected]


--
Chuck Hill             Senior Consultant / VP Development

Practical WebObjects - for developers who want to increase their overall knowledge of WebObjects or who are trying to solve specific problems.
http://www.global-village.net/products/practical_webobjects






_______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list      ([email protected])
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com

This email sent to [email protected]

Reply via email to