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.

Namespace:  IndianHealthService.BMXNet
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 

 MemberDescription
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()()()

See Also