cancel
Showing results for 
Search instead for 
Did you mean: 

COM component build by PowerBuilder 11.2.

Former Member
0 Kudos

I have a COM component build by PowerBuilder 11.2. This was used by Web application. The COM component has core business logic used to interface between web UI and database. We have an issue when the WEB application is used by more than 30 users concurrently the application is slows down. The network bandwidths are looks good.


Is there any limitation on the PBVM? or the COM component cause this slowness?

Accepted Solutions (0)

Answers (2)

Answers (2)

Former Member
0 Kudos

We found the same issue with our COM objects when the server was loaded up with about  15/25 connections using Windows Server 2003 and 2008.  The problem was memory.  Each connection will instantiate the COM and the PBVM along with any supporting DLLs.  We increased the memory in the 2008 Server to 16GB and this seems to support about 40 users max.

If your COM uses ODBC to connect to the DB, you can turn on Connection Pooling (run ODBCAD32) and that does help a little.

Randy

Former Member
0 Kudos

I've had almost the exact same experience as Randy.  Adding memory to the server and using connection pooling fixed the problem for us.  Our server now seems to work fine with up to 100 user connections.

Former Member
0 Kudos

You mean the server RAM memory?  Will it spike to maximum available in the server?

The network team never found any issues on the memory. I am wondering how to prove them it is an memory issue to ask them to increase.

Former Member
0 Kudos

Yes RAM was the issue.

Not sure how you can prove it to them other than using Performance monitor and logging the data then reviewing the log for the time period where the number of concurrent users exceeds your threshold.

The server may not exceed the amount of memory available.  It all depends on how it is setup and memory is allocated to the server processes.  When a process exceeds its allocation it starts swapping out to disk thus slowing down.

RAM is cheap and any Windows Server can always use more.

Randy

Former Member
0 Kudos

Hi Senthil;

  It could be one of many reasons ...

1) Memory issues due to the PBVM loaded for each instance of the OLE.

2) DBMS client connection limitation.

3) DBMS locking issue.

4) No DBMS connection pooling

5) Multi-threading issue (or lack there of) in the PBVM / OLE implementation

etc

I think that this could be a hard one to pinpoint.

Regards ... Chris

Former Member
0 Kudos

Hi Chris,

Thanks for your reply. Is there a way I can find the DBMS Client connection limitations and No DBMS connection pooling information?

Thanks and appreciate your help

thanks,

Senthil

Former Member
0 Kudos

Q1:  DBMS Client connection limitations

A1:   Check with your DBA. Monitor the situation from the DBMS console; check your DBMS configurations; Check the DB logs for anomalies; etc.

Q2: No DBMS connection pooling information?

A2: If your OLE object runs inside of IIs - it may need to use the ADO.Net or ODBC database client driver for this. These access methods have4 connection polling options.  

Suggestion: You might want to put some code into the OLE object to capture the time it is taking for each work flow (process), DBMS interaction; O/S calls (if any), etc. At least you could start to narrow down where the trouble area(s) are.

Former Member
0 Kudos

It is not an OLE object. I am access the COM component through vb.net code (interop.COMcompnoent.dll). We open the connection, call the COM component method then close the connection and release the COM object as well. We use oracle native driver to connect to the database inside the COM object.

The DBA's see only one connection from w3wp.exe.

Former Member
0 Kudos

FYI: The COM component you built in PowerBuilder would be know as an OLE Server internally.

Former Member
0 Kudos

"PBVM loaded for each instance of the OLE" - PBVM memory is part of the worker process or I can see it separately on the task manager? When I release the COM object it should release memory as well right?