I'm not sure what group to post to, so here's my Pb 11.2 &
COM+ issue..

Issue:
A search for a large database result and slows down all
other users.
The creation of a new remote object from the client machine
to the application server is delayed until the long running
com+ call completes.

Tested many environments and the numerous setting on the
packages and components, but the issue still persists.

Production Environment:
PowerBuilder 9.02 application build 7509, Windows 2000 &
windows 2003 application servers, Oracle 9i ODBC native
drivers w/ - connection pooling, Oracle 10g database
using PB 9.02 COM+ components. The application has been in
production since 2001 and using 9.02 since 2005.

New Environment (migration):
PowerBuilder 11.2 build 8123, Windows 2008 64 bit, Oracle
10g ODBC native drivers w/ - connection pooling (Oracle 10g
database - no change)
using New PB 11.2 COM+ components.
** retested in pb11.2 with production Env, and the same
issue exists.

Ex:
One user runs a query that returns 1 row and normally
processes in 1-3 seconds.
Second user runs a query that returns 1000+ row and normally
processes in ~20 seconds

The first user can run the 1 row session for several times,
but then once the bigger sql starts to return results (or
consumes resources) the Connect to New remote object waits
until the other process completes.
Result: The search that takes 1-3 seconds takes 10-20
seconds longer.

1st User
User machine time (hr/mn/sec) Total sec diff
Begin 11 46 17 42377
Before Create OLE Object 11 46 17 42377 0
After Connect 11 46 17 42377 0 *ok
Before Call 11 46 17 42377 0
After Call 11 46 19 42379 2
End 11 46 19 42379 0
Begin(2nd) 11 46 21 42381
Before Create OLE Object 11 46 21 42381 0
After Connect 11 46 31 42391 10 **Delay
Before Call 11 46 31 42391 0
After Call 11 46 34 42394 3
End 11 46 34 42394 0

2nd user: user machine time (hr/mn/sec) Total sec diff
Begin 11 46 10 42370
Before Create OLE Object 11 46 10 4237 0
After Connect 11 46 10 42370 0
Before Call 11 46 10 42370 0
After Call 11 46 30 42390 20**sql time ok
End 11 46 30 42390 0


Final analysis: The ConnectToNewRemoteObject is delayed
based on the operation of another instance of the same
object.
This seems to be a PB 11.2 issue, but it could be a
setting within COM+ and/or Oracle.

Tested PowerBuilder 11.2 COM+ components on the following
environments and the issue still persists:
PowerBuilder 11.2 COM+ components On Window 2008 server 64
bit with Oracle 10g odbc native drivers (VM) w/ - connection
pooling
PowerBuilder 11.2 COM+ components On Window 2008 server 64
bit with Oracle 10g odbc native drivers (non-vm)w/ -
connection pooling
PowerBuilder 11.2 COM+ components On Window 2003 server 32
bit with Oracle 10g odbc native dirvers(non-vm)w/ -
connection pooling
PowerBuilder 11.2 COM+ components On Window 2003 server 32
bit with Oracle 9i odbc native dirvers(non-vm)w/ -
connection pooling
PowerBuilder 11.2 COM+ components On Window 2003 server 32
bit with Oracle 10g odbc native dirvers(non-vm)w/ -
connection pooling
PowerBuilder 11.2 COM+ components On Window 2003 server 32
bit with Oracle 9i odbc native dirvers(non-vm)w/ -
connection pooling
** Fails in all environments

Re-tested PowerBuilder 9.02 COM+ components on the
following environments:
PowerBuilder 9.02 COM+ components On Window 2003 server 32
bit with Oracle 10g odbc native dirvers(non-vm)w/ -
connection pooling
PowerBuilder 9.02 COM+ components On Window 2003 server 32
bit with Oracle 9i odbc native dirvers(non-vm)w/ -
connection pooling
** Works

COM+ Packages and Components:
The packages settings are:
Security Tab: No authorization checks fot the applications
Perform access checks are the process and component level
is selected
Authentication level for calls: Packet
Impersonate level: Impersonate
Identity Tab: set Administrative user account
Perform access checks are the process and component level
is selected
Activation Tab: Server Application is selected

- Current production setting are:
Pooling tab: Application pool size = 1
- New setting are:
Pooling tab: Application pool size = 4
Queuing tab: max Concurrent players = 4


The components are:
Transaction tab: Required is selected
Transaction Times vary by component
Transaction Isolation Level is serialize Activation:
Don’t force activation context is selected
Components supports events and stats is selected

ODBC connection:
Encrypted=False
UseEncryptKey=Test
DBMS=ODBC
Database=
ServerName=
UserID=
DBPass=
LogID=
LogPass=
DBParm=ConnectString='DSN=C***;UID=***;PWD=***',PBCatalogOwner='system'
,UseContextObject='Yes',ConnectOption='SQL_DRIVER_CONNECT
,SQL_DRIVER_NOPROMPT',DisableBind=0,StaticBind=1,FWC=T
AutoCommit=FALSE


Client Powerbuilder code:
lw_parent.of_log_time(this.ClassName() + ":
of_call_component: Before Create OLE Object")

lole_comapp = Create n_oletxn_mgr
ll_return =
lole_comapp.ConnectToNewRemoteObject(ls_computer, ls_clsid)
lw_parent.of_log_time(this.ClassName() + ":
of_call_component: After Connect")
IF ll_return <> 0 THEN
Destroy lole_comapp
of_set_message(this.ClassName(), "of_call_component",
"Cannot Create STUB Component Instance", "Cannot Create STUB
Component Instance - Error: " + String(ll_return))
Return -1
END IF