BMXNET 4.0 Developer API
Each BMX connection to RPMS contains a single RemoteSessionPool with at least one Session, the primary session. Applications that need additional server processes beyond what can be done with async commands can used the RemoteSessionPool.
Access to the RemoteSessionPool is accomplished by implementing the RemoteSessionPoolConsumer interface on your component/control. Secondary sessions can be opened and closed as they are needed. If the AvailableSessionCount is zero then a null RemoteSession is returned so it is recommend to first check the if a pool HasAvailableSessions before an OpenSession() request.
RemoteSessionPool high-performance can be achieved by keeping RPMS server jobs alive even after secondary sessions are closed. The pool will maintain MaxSessions - 1 number of jobs alive on the server. If the application is finished for awhile needing IdleSessionCount idle jobs, then TerminateIdleSessions() will release those resources on the server. New jobs will then be created on demand.
Assembly: BMXNET40 (in BMXNET40.dll)
Syntax
C# | Visual Basic | Visual C++ |
public interface RemoteSessionPool
Public Interface RemoteSessionPool
public interface class RemoteSessionPool
Members
All Members | Properties | Methods |
Public Protected | Instance Static | Declared Inherited | XNA Framework Only .NET Compact Framework Only |
Member | Description | |
---|---|---|
AvailableSessionCount |
The number of additional secondary RemoteSessions that can be opened.
| |
Close()()() | ||
HasAvailableSession |
True if another secondary session can be opened.
| |
IdleSessionCount | ||
MaxSessions |
The maximum number of RemoteSessions than can be opened
| |
OpenSession()()() |
Open a RemoteSession and answer it. If an idle Session exists, it will be recycled
and answered. Use Close() on the RemoteSession to release this secondary RemoteSession
back to the pool.
| |
OpenSession(Log) |
Open a new RemoteSession and answer it. If an idle Session exists, it will be recycled
and answered. Use Close() on the RemoteSession to release this secondary RemoteSession
back to the pool. An implementation of Log can be included to trace RPC execution.
| |
TerminateIdleSessions()()() |