That is a pretty open question. Still there are some possibilities you can check.
I presume the application chagnes data (insert/update/delete).
1) Check LOG_BUFFER_WAITS (or whatever the relavant parameter for an 8i database is). If you see it increasing over time then you can try increaing available log buffer space. Someone on your DBA or DATABASE SUPPORT team can help you with checking this.
2) If you are doing a large amount of inserts, then INDEXES may be part of the issue. There was a paper I read about it last year but damned if I can find it. Do some googling. It had suggestions on what to do.
3) It may be your problem has nothing to do with Oracle per say. I have seen memory leaks in driver software cause this as well. This is in fact not uncommon in the Java realm. The fix is usually to reboot the connection pool manager rather than the database. Try that to see if it isolates your issue.
4) could be an imporperly sized OS that is causing thrashing of your SGA after some time. This is a well understood phenomenon so you can read up about it again with some simple googling.
5) might also be a shared pool issue where your applications are badly written and do not use bind variables. The result is that you will peak out at a certain number of users and adding more will cause peformance degradation as oracle is forced to coninuously parse new sql and manager a growing set of queues. For that you have to rewrite your apps or use a database prameter to force oracle to “rewrite” each query it gets into a bind variable version. Not a great solution but better than not doing anything.
Lastly I would suggest you check our oracle logs and trace files for errors. There may be some hint in them as to a problem you do not see.
Unfortunately I state the obvious when I point out that 8i is no longer supported by oracle and should you need a patch or better drivers, you won’t get either.
Good luck, … Hail Flavius.