JDBC connection thru AS/400

35 pts.
Tags:
AS/400 jobs
CPU Utilization
JDBC
WRKACTJOB
Hi All we are getting issue in as400 cpu utilisation. qzdasoinit jobs is getting killed after closing connection but after when we initiate a fresh connection it utlises cpu from where previous connection was closed. Suppose if previous connection was closed at cpu usage 10%, job would disappear from wrkactjob but when fresh connection is made thru jdbc utilisation of job would start from 10%. Please advise

Answer Wiki

Thanks. We'll let you know when a new response is added.
Send me notifications when members answer or reply to this question.

REGISTER or login:

Forgot Password?
By submitting you agree to receive email from TechTarget and its partners. If you reside outside of the United States, you consent to having your personal data transferred to and processed in the United States. Privacy

Discuss This Question: 6  Replies

 
There was an error processing your information. Please try again later.
Thanks. We'll let you know when a new response is added.
Send me notifications when members answer or reply to this question.

REGISTER or login:

Forgot Password?
By submitting you agree to receive email from TechTarget and its partners. If you reside outside of the United States, you consent to having your personal data transferred to and processed in the United States. Privacy
  • TomLiotta
    When you say "job would disappear from wrkactjob", do you mean that it simply isn't listed when there is no active connection? If so, then that's how it is supposed to work. You can press F14='Include' to include inactive jobs in the WRKACTJOB display. You can reset statistics back to zero by pressing F13='Reset statistics' or F10'Reset statistics', depending on what you want to accomplish. The QZDASOINIT jobs are "pre-start" jobs that start up and wait for connections. When a connection ends, the job goes back into a waiting state until a new connection is passed to it. You can change that behavior by modifying the pre-start job entry with the CHGPJE (Change Prestart Job Entry) command if you want those jobs only to handle single connections. However, by doing that you will lose many of the performance benefits of pre-start jobs. Connections will be established slower. The jobs will take longer to return results. Your system CPU utilization will rise, possibly a lot. Why do you need to track CPU utilization for individual connections with WRKACTJOB? What business problem are you trying to solve? Tom
    125,585 pointsBadges:
    report
  • PranavSharma
    Hi Tom Thanks for the response. We are using jdbc jt400 drive to connect a transaction as400 database. We have developed a huge reporting system in java and thru jdbc we are getting results throu qzdasoinit jobs. I understand that QZDASOINIT are prestart jobs and they wait for connections.As these jobs are configured many years back in client's AS400 system and we can't really touch those configurations. Few things I want to understand regarding wrkactjob command w.r.t QZDASOINIT jobs. Scenario is like this. 1. user is pressing view report button in java. 2. A query is fired in AS400 and a new row mentioning a new QZDASOINIT job appears in wrkactjob. Suppose utilisation shwon in wrkactjob window for this job is 30%. 3. After query execution we are closing connection from Java end therefore this QZDASOINIT job row disappears from wrkactjob window but point to remember here is that before connection closure cpu utilisation was 30%. And we were continuously pressing F5. Here we were pressing F5 continuously and cpu utilisation was increasing like from 5 to 10 then to 20 and then 30% and connection closed. 3. Now user pressed again view report button in java and again a query is fired in as400. 4. Now we are continuously pressing f5 in wrkactjob and cpu utilisation is increasing from 30% to 40% to 60%. 5. If we press F10(to restart statistics ) then it shows very less value like 5% utilisation. We have two concerns here. First is : why there is so much difference in F5 and F10. I understand that F5 gives utilisation based on elapsed time I suppose. But still even it is not crystal clear in IBM's documentation. Could you please advise what is the best way to check cpu utilisation and knowing whether this job is creating any performance bottleneck or not. Second is : If a job is disappearing from wrkactjob ( In our case it is happening when we are closing connection from java side) whther it releases all resources taken by it and release cpu and memore resopurces also. As if it is releasing then pressing F5 won't give correct result. Mainly we need help of you to confirm that our qzasoinit job is getting kille properly and wrkactjob's F5 is not the right way to check utilisation. Thank you so much Pranav Sharma
    35 pointsBadges:
    report
  • TomLiotta
    whther it releases all resources taken by it and release cpu and memore resopurces also. It should only release all resources if your application directs it to release them. Generally, the database server will hold some resources because they are expected to be used again later. It can be more expensive to release some things and acquire them again later than simply to hold on to them. Opening and closing files is expensive. The database server will do what's called pseudo-opens and pseudo-closes rather than full opens and full closes for example. That's generally a good thing. ...to confirm that our qzasoinit job is getting kille properly and wrkactjob’s F5 is not the right way to check utilisation. No, WRKACTJOB is not a good way to check utilization. At any given time, any job might correctly report that it's using 100% of a CPU. In fact, in a single-processor system, the job that is running at a given time is always using 100% of the CPU. With WRKACTJOB, elapsed times of at least five minutes should allowed between checking any utilization. It's a useful tool for finding serious problems, but not for general performance analysis. Remote database transactions shouldn't run long enough for WRKACTJOB to be worth using Do you have reason to think a problem exists with your reporting system? Or are you only looking for possible problems? Tom
    125,585 pointsBadges:
    report
  • PranavSharma
    while monitoring jobs if utilisation is 14% and pressing F10 resets it. However if I view report again through my reporting system and presss F5 then again cpu utilisation starts from 14%. Means if I use F10 and then F5 then result is same. this seems a potential performance issue. However every query is getting executed with in 70 second maximum. Not getting insight that if I login again as new session to monitor wrkact job or press F10+F5 I am getting continuously increases cpu utilisation. Pressing F10 only restart statistics for that instant only. If I press F5 after F10 story is same.
    35 pointsBadges:
    report
  • PranavSharma
    Hi Tom Could you please answer this ? is it possible to create a profile (I mean user ) on AS400 having some cpu utilization limit. i.e. for that user cpu utilization cann't be more then say 50%. Reason why I am saying is because we want qzdasoinit jobs to run for some other profiles which are configured for some other mission critical systems apart from this reporting syatem where we are getting this performance issue in development environment. Apreciate your response Thanks Pranav Sharma
    35 pointsBadges:
    report
  • TomLiotta
    while monitoring jobs if utilisation is 14%... Exactly which "utilization" figure are you looking at? Please copy/paste enough of a display to show what you are seeing. Show one screen before and one after any reset or restart (not 'refresh'). i.e. for that user cpu utilization cann’t be more then say 50%. That will require specifying an interval in addition to a percentage. During the time that any job is actually executing CPU instructions, its CPU utilization is going to be 100%. It will stay at 100% until the system switches to a different task or until some wait state causes the task to wait, e.g., for I/O. If there is no wait state encountered or if there are no other tasks eligible to run, then the CPU will be given back to this job, and CPU will be at 100% again. It's only over some interval that a figure less than 100% becomes meaningful. The interval should be at least five minutes, and it often should be as long as 15 minutes depending on the generation of the hardware and other factors. So, 50% over what interval of time? Now, if there are no other tasks waiting for the CPU, what do you want the system to do for the other 50% of the CPU time? Should it just run empty CPU cycles? Or should it cancel your request? It would seem a little odd to cancel just because no other job wants to use the CPU at that time. The system is going to try to give all available CPU capacity to tasks that are running. Your job is not going to get the CPU if other tasks (of equal or higher priority) are waiting. So why impose a limit like "50%"? It will only use what isn't being used by something else. Before attempting something like setting a CPU limit for a task, the first step that should be done is to configure the system for performance management. If the system is running with IBM initial defaults for subsystems, memory pools, etc., then it hasn't been set up for useful measurement of performance data yet. One trivial check that might be made is to see if processes such as the TCP/IP and host servers are still being routed into the *BASE memory pool. If they are, then not even the system performance adjuster is likely to help much. If performance can't be reliably measured, there's no way to tell which changes will be good and which will be bad. Tom
    125,585 pointsBadges:
    report

Forgot Password

No problem! Submit your e-mail address below. We'll send you an e-mail containing your password.

Your password has been sent to:

To follow this tag...

There was an error processing your information. Please try again later.

REGISTER or login:

Forgot Password?
By submitting you agree to receive email from TechTarget and its partners. If you reside outside of the United States, you consent to having your personal data transferred to and processed in the United States. Privacy

Thanks! We'll email you when relevant content is added and updated.

Following