Overview[]
Creates a pool of client-side database sessions to improve performance and scaleability of applications connecting to NexusDB databases, in particular multi-threaded applications.
Usage[]
Adapted from newgroup postings to nexusdb.public.support by Thorsten Engler of NexusDB support.
Multi-threaded code[]
If you need a session for a limited time you can:
- setup a TnxSessionPool
- inside your threads
- Create your databases / tables / queries.
- Call TnxSessionPool.AcquireSession
- Assign the returned session to your TnxDatabase
- Use your table and query components as normal.
- When done free everything except the session
- call TnxSession.Release to put it back into the pool.
Remote Plugins[]
TnxSessionPool, just like TnxSession, implements InxSessionRequests. That interface is required for "remote plugins". Normally you would connect a remote plugin of some kind to a session, and then only call that plugin from the thread that owns the session.
If you connect a remote plugin to a session pool it will automatically use a session from the pool for each request, meaning you can now call your plugin from any number of threads at the same time. (Assuming the plugin itself is written in a way that it can handle multi-threaded usage.)