The situation is that we have 2 processes : a java web-application and a back-ground engine java process(database-intensive) both running against the same database server. Our traditional usage paradigm has been that we run the engine process overnight, during which the web-application is brought down. Currently, we are looking at supporting simultaneous usage of the web-application alongside the engine run.
The problem which we are facing is that we need to ensure certain database resource allocation between the web-application and the engine(e.g. 20-80) so that the users of the web-application get reasonable response times. Now, this kind of thing is easily achievable on Oracle using the Resource Manager, but our query to the IBM support seems to suggest that there is no such tool for DB2. Is that correct?
A couple of options which we have come across that might help us to achieve the needful are DB2 Governor & DB2 Query Patroller.
1) Problem with DB2 governor is that it lets you specify only absolute values (e.g. if the total CPU time of the query exceeds a *certain given value*, then lower the priority of the query) which is very uncomfortable to use in a practical scenario like this.
2) Coming to the query patroller(QP), I am not even sure from all the various documentation I have read that QP's even *supported* for queries submitted via JDBC. Is it possible?
My understanding till now is that one needs to submit the query through the QueryEnabler, which could happen if you are submitting the query via the DB2 CLI tool or using iwm_submit. Since the QueryEnabler routes the query to the QP's server, which in-turn would route it to the DB2 server, I am not sure how queries submitted via JDBC would reach QP, but perhaps some mechanism of configuring this exists. Does it? Assuming that such mechanism existed, my understanding is that if a query exceeds a threshold timeron value, QP blocks the query/puts it on hold for manual intervention: I am not sure if some support like QP lowering the priority of the query and letting it through to the server even exists. Does such a mechanism exist?