Exposing Metaspace Connection Attributes
When creating ActiveSpaces applications, developers should make sure that they expose the metaspace connection attributes so that they can be adjusted by administrator at deployment time. The Metaspace connection attributes are contained in the MemberDef object that is passed to Metaspace.connect(). At a minimum, the following MemberDef attributes should be exposed:
- Member name:
- If specified, this should be unique in the Metaspace.
- If not specified, a unique name is generated automatically
- If you intend to use the process as a seeder on a shared-nothing persisted space you MUST specify a name for the process.
- Metaspace name:
- If not specified, defaults to “ms.”
- Discovery URL:
- If not specified, defaults to “tibpgm.”
- Listen URL
In some cases (typically “server” applications) it is recommended to expose these attributes:
- The directory to use to store shared-nothing persistence files. Only useful if the application will be seeding on shared-nothing persistent spaces.
- Only needed if you intend the process to be a remote client proxy and be able to accept and service connections from remote clients.
- Adjusts the size of the worker thread pool used by remote invocation. Only useful if the application will service some remote invocation requests.
Optionally, the following attributes could be exposed as well (if one wants to give the administrator the ability to adjust more “low level” settings):
- Internal ACTIVESPACES protocol timeout for operations (default is 60s)
- Adjusts the amount of memory allocated as a receive buffer per TCP connection. If the metaspace will contain a large number of directly connected members you may want to adjust this value down from the default 2 MB in order to reduce memory requirements.
- Adjusting this parameter down may help reduce memory consumption when there are a lot of (direct) members in the metaspace.
- For example, if the application is only going to be a leech and read/write small records, it will probably not need to use a full 2 MB of buffer space.
- The downside of making this parameter too small is increased CPU resource usage.
- Adjusts the size of the thread pool used to distribute incoming TCP data from other members. Only useful for applications that seed data.
The final attribute of the MemberDef is the Context tuple. The context tuple is provided to the application programmer to help identify classes of applications connecting to the metaspace or to spaces when they are monitored by another application using a MetaspaceMemberListener or a SpaceMemberListener, because this context tuple will be passed to the listeners inside the membership event.