decipher pstack with problem lwp

My company has a product that is running on JBoss on Solaris against Oracle 8.1.7. We are having an issue with the server process and high CPU utilization. During this time, and only during this time, we are experiencing database locks that will not let go. A 'ps -L' on the server process indicates several offending light-weight processes. That led me to do a pstack and capture the dump of each of those lwps. However, it's all meaningless to me, and I have been looking everywhere for some sort of help because this problem is killing us! I am going to attach a text file of one example from the pstack. Each offending lwp looks to be indentical in form, and they look very different from all other lwps in the pstack. Any help in deciphering what might be going on or how to interpret the pstack would be most welcome. Thanks in advance!

-David

If I understand correctly, this is stack trace of a thread in the Oracle database server itself. If so, that java stuff surprises me. I never heard of JBoss. So that would be less surprising. Since java seems to be involved, I would make sure that I have the latest version of java.

But you really need help from someone who has the source code to the process in question. If it's an Oracle process, you need to be talking to Oracle's support people. If it's JBoss, talk with the JBoss folks.

Even if you decipher the stack, then what? Run a binary editor on the executable?

Sorry if I wasn't very clear...I was just trying not to be too verbose. JBoss is a J2EE application server. The pstack is from the JBoss server process. The database locks are coming from java code that we have written and which is running on the JBoss application server. The number of locked rows coincides with the number of CPU hogging lwps (feels like infinite loop to me). My assumption was that the offending lwp in the pstack represents something going on in the code that we have written. So I was hoping that anyone could give me insight into the pstack that I attached that could help me try to figure out where to look for problems in our code. The problem isn't reproducible and happens (seemingly) randomly...otherwise it would probably be easy to figure out without needing to dig into this stuff.

Thanks for the reply. If you can't help, no problem...nobody else has been able to help either. :slight_smile:

well here is a thing i am sure you have thought about it but might as well state the obvious.

1) since you notice a relationship between java proccess and locked oracle procecess.

i would do the following in prouction code.

1) for every call to the db set a timeout for that session.
2) put into effect a cleanup routine so if any connections get cut or bomb out you will not have ghost processes hanging around keeping a table locked.
3) run some kinda sql query on the db via cron or other mechignisim that looks for this condition prior to it becomeing a problem.

as far as tracking down this problem.

your programmers will have to figure out which java app is makeing the offending call to the rows.

i can only assume the occurances are random but the condition is the same.

I'm not looking for help with my java code. I would have gone to an appropriate forum for that if that were my goal. I am solely interested in the contents of the pstack. I'm just looking for help interpreting the contents of the pstack.

then as Perderabo said,