OAS 3.0: maximum number of interrupt handlers exceeded ?


I am doing a stress test to OAS 3.0 (NT 4.0 Enterprise SP5), using LoadRunner 6.5. When I attempt to put 70 users to login the Web page (through a PL/SQL cartridge, DAD on a remote Database).  It failed and I found errors in "wrb.log":

'PLSQL Cartridge' 546 0 0x800ff `OWS-05104: Unable to attach to host database: [/ora/805], [xxxsid], [xxxsid.world]'
'PLSQL Cartridge` 648 1 0x400ff `ORA-00568: Maximum number of interrupt handlers exceeded'

Then I can't reach the Web page through the URL, with following error shown on the browser :
Request Failed
Error occured while accessing "/test/plsql/login" at <Date>
OWS-05100: Unable to connect due to Oracle error 568
PLSQL Cartridge: test
Please try again later

The only way I can access the URL again is to stop and start the Oracle Services in "Services" of Control Panel.

I have already set the maximum no of instance (WRB parameters for (PL/SQL) to 1000000 (min. no is 0).  And the maximum connect count (www in Oracle Web Listener) to 338. But it doesn't work.

It seems okay when I put only one or two users loop running in 10 minutes.

I doubt that I need to config some more parameters for hundreds of users. Does it exist any limitations ? Or is it a SQLnet problem from the Web Server (NT) to the remote database (Oracle 8.0.5 on AIX) ?

Any help is highly appreciated.

Who is Participating?
Zero response, thus finalized.
200 points refunded, item closed.
Moondancer - EE Moderator
Its just a Guess, probably ur database is in MTS mode and the number of dispatchers and servers is not enough to support that much of users, its just a guess, u can probably check into that!

till that time, i will see if i can come up w/ any detailed reply

siuchiAuthor Commented:
I am not sure the MTS mode of the database but the database has been stressed for large amount of users before.  So I think the problem should be on the OAS side

I am thinking if somehting wrong with LoadRunner as it return error on getting the gif file from the first page (No stored procedure or database action called, one action to call the URL only, stress for 180 users).

Or too much access on the virtual directory (/ows-img) will return error from OAS ?

Thanks your comment.  This is my first time to use the Expert advice and happy to receive your reply so fast ^_^


Ultimate Tool Kit for Technology Solution Provider

Broken down into practical pointers and step-by-step instructions, the IT Service Excellence Tool Kit delivers expert advice for technology solution providers. Get your free copy now.

OAS latest version is I removed OAS 3.0 a long time before. Now we are using IAS because we dont't need the C++ Cardrigde. All other Cardridges ar implementet to the IAS.

I know, you can configure the min-instances and max-instances of your PL/SQL-Cardridge-Servers. The meaning is, you can startup i.E. 10 Services for PL/SQL as minimun and you have immediatly response for  10 requests at the same time (exactly the same time). Are more services needed (there are more requests at the exactly same time), than the OAS first must start more services. OAS needs for basic working CORBA-Technics, which needs a lot of resources.

And: One Service can start a lot of instances. So if you configure i.E. 10 Servers and 10 Services as minimum, than there are starting 100 Processes at the first time.

If you dont need the C++, JCorba Cardridges, than you must upgrade to IAS. For PL/SQL-Cardridge its easy to do. Than you have a supported version of Apache-Listener (and not the OAS-Oracle-Listener) and a good ORACLE-Implementation of PL/SQL-Cardridge.

If you must use the OAS please verify:

$ORACLE_HOME/admin/ows/<version>/wrb/wrb.app  (where <version> is your version-name).

[SYSTEM_xx/xx]                        ( your DAD-Config)
Stateless          = FALSE
ThreadSafe         = no
Prestart                = 2                 (start up 2 Server )
MinInstances       = 0                
 MaxInstances       = 10          
MinThreads         = 1                 (and for every Server, 1 Service )
MaxThreads         = 1
DisplayName        = "yourDAD"
Application        = yourApp
Priority           = high

[SYSTEM_yourDAD]     ( sorry this is OAS 4.xx header but for 3.0 its anything like )

To change to IAS:

http://otn.oracle.com/software/products/ias/content.html   (option 3)
siuchiAuthor Commented:
Thanks your comments.

The wrb.app does not have the above parameters for me to configure ...

By the way, actually set up 2 DAD and 2 PLSQL cartridge,

Remote Database A -> DAD A -> PLSQL A
Remote Database B -> DAD B -> PLSQL B

However, when I access URL for PLSQL A, I trace the listener.log of Database B.  I found something like the connection to Database B.

)(HOST=136.136.XX.XX)(PORT=1760)) * establish * dbB_sid * 0

It seems that it create another process to Database B.

Is there a control point on OAS that allow DAD A to use DB A only ?

I think it may be the cause of the internal server of my web site.

Siu Chi

Ok, now I read a 3.0 Docu.
The architecture is:

Listener -> Web Request Broker (WRB) -> DAD -> Database

The WRB can be configured separately and has a section "Application and Objects" where you can configure each use of a DAD.

App: name of the DAD
Object Path: Phys.Path to the cardridges shared library (used for 3 part.)
Entry Point: Routine Name of the shared lib for the cardridge
Min: Mininum of execution Engines (WRBX).
Max: Maximum of concurrently running engines
Thread: select T (thread) or P (process) model.

Here you can configure in a 3.0 configuration the min/max  number of your  servers and/or threads.

I dont found anything about your 2. question.
I allways worked with more listeners and more DADs on the same host. So, I have undestood the architecture :

Listener A  can use WRBs on different hosts
WRB can use different DADs
DADs can use the  DB-connection where the PL/SQL Procedures resides.

So it must be possible to configure different DADs for different hosted databases. In DAD-configuration you can select the TNS-name for the connection (you must specify this also for local connection).

Related to your calling URL, where the DAD is included, only this DAD-connection can be used.

It participates urgently recommended for upgrading to 9 IAS.
siuchiAuthor Commented:
Thanks again.  I have difficult in the settings of "Application and Objects" as you stated.  I don't know what is the object path and entry point of a DAD. And process or thread model should be used.

I follow the settings of the PLSQL cartridge (in the same table) but the problem happens agains, OAS lose the DAD connections and I have to restart the services again.

In conclusion, I think problems might falls in
a) OAS setttings (not well defined)
b) SQLnet (found problems to connect to DB in sqlnet.log)
c) Too many calls of stored procedure causes problems on the PLSQL Cartridge. Or it causes too many DB connections and I have to tune parameters like timeout ?

The decision to upgrade 9 ias is not on my side.  My boss won't spend more money ...

Siu Chi

siuchiAuthor Commented:

Some findings :

I observed an adnormal behaviour in one of the Oracle web server processes - "wrbc.exe".  It seems that this process did not release resources out.  Memory used by it grows continuiously when only 20 Loadrunner users are running.  When memory size stops growing, we can no longer connect to the login page.

Further tests on the 2 parameter suggested by Oracle Support (min. and max. of PLSQL cartridge instance) and memory allocation pattern of wrbc.exe reveals that a proportional relationship between them.  The larger the value for min. PLSQL cartridge instance, the more memory allocated to wrbc.exe initially.  The larger the value for max. PLSQL cartridge instance, the more the memory wrbc.exe can aquire.

1. Min. 50, Max 200
Initially memory allocated to wrbc.exe : 21M
Final memory allocated (not growing anymore) : around 42M
>>> cannot connect to the web server, no response, timeout from browser finally

2. Min. 50, Max 2000
Initially memory allocated to wrbc.exe : 21M
Final memory allocated : > 90M
>>> we didn't know what the final value will be, as another error on connection to DB occurred.  We have encountered this before.

3. Min 50, Max 100
Initially memory allocated to wrbc.exe : 21M
Final memory allocated (not growing anymore) : around 33M
>>> cannot connect to the web server, no response, timeout from browser finally

It seems to us that the value for max. PLSQL cartridge set an upper bound for the memory level of wrbc.exe, once this upper bound is reached (assume other resouces still not reach the max. boundary), the server went down.  Now the problem is why there is a continuous increase in memory allocated to wrbc.exe even there is no increase in number of connected users and each users login and logout alternatively

Any comments are highly apprecialted !!

Siu Chi
Please update and finalize this old, open question.  Please:

1) Award points ... if you need Moderator assistance to split points, comment here with details please or advise us in Community Support with a zero point question and this question link.
2) Ask us to delete it if it has no value to you or others
3) Ask for a refund so that we can move it to our PAQ at zero points if it did not help you but may help others.


Moondancer - EE Moderator

P.S.  Please click your Member Profile, expand View Question History to navigate and update all your open and locked questions.
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.