|
|
Re: Pause Concurrent Request for constant time in PL/SQL? [message #286075 is a reply to message #285953] |
Thu, 06 December 2007 07:14 |
annagel
Messages: 220 Registered: April 2006
|
Senior Member |
|
|
In this case the pause had to happen after the request had started running.
Basically we are putting a block into place which prevents a certain procedure from running with certain inputs more than once at once. So we put blocking code into that procedure which checked the procedure inputs and will acquire a specific lock before proceeding if its inputs flag it as a heavy load process. Just waiting on the lock does in effect pause the request just the status is not displayed to the user and so their response will inevitably be "why is this taking so long?" In our test system we are right now experimenting with just flipping the status flag in the concurrent programs table to 'W' (paused) before trying to acquire the lock and the flipping back after....I am hesitant to do this, but like I said for now it is only in test and we are fooling around with the idea there.
|
|
|
Re: Pause Concurrent Request for constant time in PL/SQL? [message #286089 is a reply to message #286075] |
Thu, 06 December 2007 07:41 |
ggr88
Messages: 31 Registered: October 2007 Location: Wellington, New Zealand
|
Member |
|
|
Hmmm ... if you proceed, make sure u test incompatibilities (if any) are still working on that program while its in the paused state!
If it was my system, I'd probably go down a supported and non-custom solution ... I usually address "load" issues by setting up concurrent manager workshifts and limiting:
a) the number of processes
b) the requests that can run on the manager
c) the time the manager runs
anf if necessary setup multiple versions of the concurrent programs that limit the parameters so that users can't to a "blind query" type input and you can push the specific copy of a concurrent program to the correct standard manager.
I'd setup managers like:
1. Super fast gotta have output now (things like POs, Pickslips)
2. General reports
3. Slow heavy load
Concurrent programs that are heavy load go to manager 3 that can only have 1 process running at a time (so only 1 CPU taken out and all other requests queue) and even not during certain times of the day...
Just my 2c worth.
Gareth
|
|
|
Re: Pause Concurrent Request for constant time in PL/SQL? [message #286567 is a reply to message #285454] |
Sat, 08 December 2007 05:16 |
ggr88
Messages: 31 Registered: October 2007 Location: Wellington, New Zealand
|
Member |
|
|
Another thought on this ... why waste a concurrent manager process having it sitting idle in a "wait" state? That means if you have lots of requests waiting you're going to eat up the available number of processes ... so I think instead of doing the unsupported and problematic "wait" thing you should just automatically submit another request to start at some stage in the future from within the "parent" request and end the parent request.
Gareth
|
|
|
Re: Pause Concurrent Request for constant time in PL/SQL? [message #286943 is a reply to message #286567] |
Mon, 10 December 2007 10:22 |
annagel
Messages: 220 Registered: April 2006
|
Senior Member |
|
|
I like both of these ideas though they do both have issues with them first is obviously a someone complex solution to set-up.
the second is going to cause confusions for the users as their processes will finish and then be restarted-though we could simply notify them in the log/output file, but it is the simpler one to set-up.
I have actually set-up and tested my proposed solution in a test environment at this point so now I need to do some thinking and probably some more testing to decide which way I want to go here.
Thanks for your help,
Andrew
|
|
|