Center Properties¶
This document contains a list of configurable properties for the Center component and their uses.
For other components, please see these pages:
- Common (properties applicable across all AMI applications)
- Web (properties specific to the Web component)
- Relay (properties specific to the Relay component)
- WebBalancer and WebManager (properties for managing connections to 3forge Web)
General Center Properties¶
Note
Property default values that are prefixed with a # are optional or must be configured by the user before use.
To run the Center, you must include center in the list of components found in the the ami.components property in local.properties:
By default, all three components are running. To run just the Center component:
Center Connection¶
Properties on configuring how connections can be made to the Center.
- Default:
- Description:
-
- Sets the port of the primary instance of the Center
- Default:
- Description:
-
- Specifies the network interface that the
ami.center.portserver port will be bound to
- Specifies the network interface that the
- Default:
- Description:
-
- Provides either a list of permitted hostname patterns, or a plugin for blocking/granting access based on foreign network address
-
Options syntax:
- file:
file:<file_containing_a_hostname_patterns_per_line\> - text:
text:<newline_delimited_list_of_hostname_patterns> - plugin:
plugin:<class_name_implementing_com.f1.ami.amicommon.AmiServerSocketEntitlementsPlugin\>
- file:
- Default:
- Description:
-
- Sets the secure port that the Center listens on
- Default:
- Description:
-
- Path to the keystore file (using Oracle keytool)
- Use with the
ami.center.ssl.keystore.passwordproperty
ami.center.ssl.keystore.password
- Default:
- Description:
-
- Password associated to the keystore file in
ami.center.ssl.keystore.file
- Password associated to the keystore file in
Developer and Session Options¶
Properties for Center session behavior and other developer options.
- Default:
- Description:
-
- Path to directory where resources such as images and audio files are stored
- Accessed via the Web in Dashboard -> Resource Manager
ami.resources.monitor.period.millis
- Default:
- Description:
-
- How often the resources directory is scanned for new/updated files
- Default:
- Description:
-
- The path used by 3forge's persist engine for managing auto-incrementing IDs (amiid)
- Default:
- Description:
-
- The number of IDs 3forge should generate per visit to the physical store
- Larger numbers mean less frequent visits to the file system, but result in larger potential id-gaps on restart
- Default:
- Description:
-
- The default timezone of the Center
- When users access the Center directly, this is the timezone that will be used
Note
This is different to the Web property ami.default.user.timeZone which affects the Web session. Please see this configuration guide for default user sessions in the Web.
ami.unknown.realtime.table.behavior
- Default:
- Description:
-
- Defines the behavior when real-time data is streamed into AMI but the target table doesn't exist
-
Allowed values:
IGNORE: drop records and don't log anythingLOG_ERROR: drop records and log a warningCREATE_TABLE: automatically create a new PUBLIC table with the correct columns corresponding to the record's fields and values
amiscript.db.variable.<VARNAME>
- Default:
- Description:
-
- Declare a readonly variable available in the Center database
- Variables can be viewed using the
SHOW VARScommand - The value must be properly formatted to indicate the type, e.g:
- declare a string named hello:
amiscript.db.variable.hello="world" - declare a long named num:
amiscript.db.variable.num=123L
- declare a string named hello:
Authentication¶
Properties to configure authentication and access to Center.
- Default:
- Description:
-
- Class name of custom authentication plugin if using
- Default behavior uses the
access.txtfile - Custom entitlement authenticators must implement the
com.f1.ami.web.auth.AmiAuthenticatorinterface. See how here
Default:
- Description:
-
- Class name of custom authentication plugin if using
- Default behavior uses the same method as
ami.db.auth.plugin.class - Custom entitlement authenticators must implement the
com.f1.ami.web.auth.AmiAuthenticatorinterface. See how here - Sets target database's JDBC endpoints
Datasources¶
Properties for configuring which datasources are loaded in AMI and accessing them.
ami.datasource.concurrent.queries.per.user
- Default:
- Description:
-
- Maximum number of queries to a specific datasource that can be invoked simultaneously
- Default:
-
See the full list here:
Datasource adapter list
- Description:
-
- Default datasource adapters are provided by 3forge and implement the
AmiDatasourcePlugininterface - For custom adapters that we do not provide, see this documentation to write your own
- Default datasource adapters are provided by 3forge and implement the
ami.datasource.concurrent.queries.per.user
- Default:
- Description:
-
- Maximum number of queries to a specific datasource that can be invoked simultaneously
ami.datasource.concurrent.timeout.millis
- Default:
- Description:
-
- Time in milliseconds 3forge will wait for a datasource to respond to a query before timing out
Database General¶
Properties for configuring table and data storage in the AMI Center including file location and query performance.
- Default:
- Description:
-
- (Optional) Comma delimited list of
.amisqlfiles to execute on startup, before the managed schema - E.g: custom methods that require compilation before the managed schema is executed (the preschema)
- Recommended file path:
data/custom_methods.amisql
- (Optional) Comma delimited list of
- Default:
- Description:
-
- (Optional) Comma delimited list of
.amisqlfiles to execute on startup, read after the managed schema
- (Optional) Comma delimited list of
- Default:
- Description:
-
- File that contains the user-defined schema to execute on startup (public tables)
- This file is updated when the user creates new public tables within 3forge via the shell tool
- This is not the same as persisting the data
ami.db.table.default.refresh.period.millis
- Default:
- Description:
-
- Max delay for refreshing changes to the front end
- Corresponds to the
RefreshPeriodMssetting when creating tables using persist engine
- Default:
- Description:
-
- Max stack size for nesting triggers/procedure calls
ami.db.persist.dir.system.tables
- Default:
- Description:
-
- Directory that the persisted system files are stored in
ami.db.persist.dir.system.tables.<__SYSTEM.TABLE.NAME>
- Default:
- Description:
-
- Manually set the directory of where to store the persisted data of a given system table file
- E.g:
ami.db.persist.dir.system.table.__DATASOURCE=path/to/datasources
ami.db.persist.encrypter.system.tables
- Default:
- Description:
-
- For encrypting system tables using the 3forge provided encrypter
- Must be set to
defaultto use - The decrypter package must be included in your
start.shscript - See the encryption documentation for more information
ami.db.persist.dir.system.tables.<__SYSTEM.TABLE.NAME>
- Default:
- Description:
-
- Manually set which system table file to encrypt
- Include the decrypter package in your
start.shscript - See the encryption documentation for more information
- Default:
- Description:
-
- How long to wait for write-lock before timing out
ami.db.anonymous.datasources.enabled
- Default:
- Description:
-
- Whether to allow users to access undefined datasources
- Default:
- Description:
-
- How many rows get sent per batch from the Center when a Web (or other component) requests a snapshot
Historical Database Options¶
Properties for configuring AMI HDB, AMI's historical database. More information on HDB can be found on this page.
- Default:
- Description:
-
- The directory where HDB tables are stored
- Created when a historical data table is first created
- For more information on historical tables and partitions, see here
- Default:
- Description:
-
- Size in bytes of data block for reading/writing to
hdbdirectory
- Size in bytes of data block for reading/writing to
- Default:
- Description:
-
- Maximum number of open file handles for the historical table
- For more information on historical tables and partitions, see here
Database Console (For Telnet)¶
Users can connect to the Center's AMIDB directly via the console port to directly query the Center. These properties configure access to it.
- Default:
- Description:
-
- Port for connecting to AMIDB via telnet command line interface
- Default:
- Description:
-
- Specifies network interface that the AMIDB console server port will be bound to
- Default:
- Description:
-
- Provide either a list of permitted hostname patterns, or a plugin for blocking/granting access based on foreign network address
- Syntax:
- file:
file:<file_containing_a_hostname_patterns_per_line\> - text:
text:<newline_delimited_list_of_hostname_patterns> - plugin:
plugin:<class_name_implementing_com.f1.ami.amicommon.AmiServerSocketEntitlementsPlugin\>
- file:
- Default:
- Description:
-
- Custom string that is appended to customize the AMIDB console prompt
- Default:
- Description:
-
- Directory storing the command line history
- Default:
- Description:
-
- Port for connecting to 3forge via JDBC
- -1 to disable
- Default:
- Description:
-
- Specifies network interface that the JDBC server port will be bound to
- Default:
- Description:
-
- Port for connecting to 3forge via JDBC using a SSL connection (disabled by default)
- Default:
- Description:
-
- Specifies network interface that the JDBC SSL server port will be bound to
- Default:
- Description:
-
- Path to the JDBC keystore file (using Oracle keytool)
- Use with
ami.db.jdbc.ssl.keystore.passwordproperty
ami.db.jdbc.ssl.keystore.password
- Default:
- Description:
-
- Password associated to the JDBC keystore file
- Default:
- Description:
-
- Provide either a list of permitted hostname patterns, or a plugin for blocking/granting access based on foreign network address
- Syntax:
- file:
file:<file_containing_a_hostname_patterns_per_line\> - text:
text:<newline_delimited_list_of_hostname_patterns> - plugin:
plugin:<class_name_implementing_com.f1.ami.amicommon.AmiServerSocketEntitlementsPlugin\>
- file:
- Default:
- Description:
-
- JDBC protocol version
Legacy¶
ami.center.relay.batch.messages.max
- Default:
- Description:
-
- Maximum number of messages processed in a single batch
- Default:
- Description:
-
- Comma delimited list of functions to disable
- Default:
- Description:
-
- Comma delimited list of permissions for user with no AMIDB permissions configured for their account
ami.db.onstartup.ondisk.defrag
- Default:
- Description:
-
- Runs defragmentation on persisted table data if true, which will clear empty blocks
Center Object Plugins¶
There are a number of non-default Center objects that can be imported into AMI as external plugins. Users can write custom Center objects by implementing 3forge provided interfaces in Java.
There are 5 custom AMIDB objects, each with a dedicated Java interface:
Implementation instructions can be found by clicking on each respective object.
Center Object Properties¶
- Default:
- Description:
-
- A comma-delimited list of fully qualified class names of any Trigger plugins
- Default:
- Description:
-
- A comma-delimited list of fully qualified class names of any Procedure plugins
- Default:
- Description:
-
- A comma-delimited list of fully qualified class names of any Timer plugins
- Default:
- Description:
-
- A comma-delimited list of fully qualified class names of any custom Persistence Factory plugins
- Default:
- Description:
-
- A comma-delimited list of fully qualified class names of any custom Center DBO plugins
Custom Classes¶
Any custom classes that should be available in AMIDB must be specified. Information on implementation can be found here.