17. Appendix: Metacat Properties

The most dynamic Metacat Properties are managed using Metacat’s Configuration Interface (see Configuring Metacat). These properties, as well as other, rarely modified ones can be found in the metacat.properties file. For more information about the properties, click one of the following:

  • Server Properties
  • Application Properties
  • Database Properties
  • Authorization and Authentication Properties
  • XML/EML Properties

17.1. Server Properties

All of Metacat’s server properties are managed with the form-based configuration utility, though they can also be accessed More information on each is included below.

Metacat Server Properties

Property Description Example

server.name

The network host name used to access Metacat. Note that this is not necessarily the physical name of the server running Metacat. The host name should not include the protocol prefix (http://).

Default Value: localhost

knb.ecoinformatics.org

server.httpPort

The network port used to access Metacat for non-secure (standard) connections. This is usually 80 if Apache Web server is running, and 8080 if Tomcat is running alone.

Default Value: 80

80

server.httpSSLPort

The network port used to access Metacat for secure connections. This is usually 443 if Apache Web server is running, and 8443 if Tomcat is running alone.

Default Value: 443

443

17.2. Application Properties

Metacat’s application properties are described below. Properties that can only be edited manually in the metacat.properties file are marked. All others are managed with the properties configuration utility.

Property Description Example
application.metacatVersion*

The Metacat version number. It is set by the build engineer at build time. Usually, the value should never be changed.

Default Value: X.X.X (where X.X.X is the current version of Metacat)

1.9.0
application.metacatReleaseInfo* Release information for display purposes. Typically the property is set during the release candidate cycle to let users know which candidate they are downloading. Release Candidate 1

application.deployDir

The directory where Web applications are deployed. Usually, the value is a directory named “webapps” in the Tomcat installation directory. /usr/local/tomcat/webapps

application.context

The name of the Metacat application directory in the deployment directory. This corresponds to the first part of the WAR file name (the part before .war). Most commonly, this is “knb”, but it can be changed to other things. knb

index.context

The name of the Metacat index webapp in the deployment directory. Most commonly, this is “metacat-index”, but it can be changed if needed. metacat-index

ui.context

The name of the Metacat UI directory in the deployment directory. Often the UI is deployed as the ROOT webapp, in which case the property should be blank (“”). metacatui

application.default-style

A custom Metacat Web skin usually associated with an organizational theme. If your organization has no custom skin, leave the value as “default”. default

application.knbSiteURL

The main KNB website.

Default Value: http://knb.ecoinformatics.org

http://knb.ecoinformatics.org

application.datafilepath

The directory in which to store data files. The directory should be outside the Metacat installation directories so data files will not be lost when Metacat is upgraded. The data file directory must be writable by the user that starts Tomcat (and thus Metacat).

Default Value: /var/metacat/data

/var/metacat/data

application.inlinedatafilepath

The directory where inline data files will be stored. Inline data files are created from data that is embedded in EML metadata. The directory should be outside the Metacat installation directories so data files will not be lost when Metacat is upgraded. For clarity of data, this should probably not be the same as application.datafilepath. The data file directory must be writable by the user that starts Tomcat (and thus Metacat).

Default Value: /var/metacat/inline-data

/var/metacat/inline-data

application.documentfilepath

The directory where metadata files will be stored. The directory should be outside the Metacat installation directories so document files will not be lost when Metacat is upgraded. For clarity of organization, this should probably not be the same as application.datafilepath or application.inlinedatafilepath. The data file directory must be writable by the user that starts Tomcat (and thus Metacat).

Default Value: /var/metacat/documents

/var/metacat/documents

application.tempDir

The directory where the Metacat data registry stores temporary files. The directory should not be the same as application.datafilepath or application.inlinedatafilepath (or any other persistent file path) because all files in this may be purged programmatically. The temporary file directory must be writable by the user that starts Apache.

Default Value: /var/metacat/temporary

/var/metacat/temporary

solr.homeDir

The directory where the Metacat index component stores the SOLR index. The directory must be writable by the user that starts Tomcat.

Default Value: /var/metacat/solr-home

/var/metacat/solr-home

17.3. Database Properties

Metacat’s database properties are described next. Properties that can only be edited manually in the metacat.properties file are marked. All others are managed with the properties configuration utility.

Metacat Database Properties

Property Description Example

database.connectionURI

The JDBC connection URI for the main database instance of Metacat. The URI is formatted like: jdbc:<database_type>:thin@<your_server_name>:1521:<metacat_database_name> NOTE: You must create an empty database prior to initial Metacat configuration.

Default Value: jdbc:postgresql://localhost/metacat

jdbc:postgresql://yourserver.yourdomain.edu/metacat

database.user

The user for the main database instance of Metacat. The user must have already been created on the database. metacat-user

database.password

The password of the user for the main database instance of Metacat. The password must have already been created for the user. securepassword4843

database.type

The type of database you are running. Currently, there are two supported types, Oracle and Postgres. postgres

database.driver

The JDBC driver to be used to access the main database instance of Metacat. There is one driver associated with each type of database. org.postgresql.Driver

database.adapter

The adapter class that allows Metacat to access your database type. There is one adapter associated with each type of database. edu.ucsb.nceas.dbadapter.PostgresqlAdapter

database.scriptsuffix.<database_type>

The script suffix tells the system which database scripts to run (postgres or oracle) when installing or updating database schema.

Default Values: database.scriptsuffix.postgres=postgres.sql database.scriptsuffix.oracle=oracle.sql

postgres.sql

database.upgradeVersion.<database_version>

Which database scripts to run when updating database schema. There is a database.upgradeVersion entry for every Metacat database schema version. Each schema version corresponds to an application version.

Default Values: database.upgradeVersion.0.0.0=xmltables,loaddtdschema database.upgradeVersion.1.2.0=upgrade-db-to-1.2 database.upgradeVersion.1.3.0=upgrade-db-to-1.3 database.upgradeVersion.1.4.0=upgrade-db-to-1.4 database.upgradeVersion.1.5.0=upgrade-db-to-1.5 database.upgradeVersion.1.6.0=upgrade-db-to-1.6 database.upgradeVersion.1.7.0=upgrade-db-to-1.7 database.upgradeVersion.1.8.0=upgrade-db-to-1.8 database.upgradeVersion.1.9.0=upgrade-db-to-1.9 database.upgradeVersion.2.0.0=upgrade-db-to-2.0

upgrade-db-to-1.2
database.initialConnections*

The number of initial connection that Metacat creates to the database.

Default Value: 5

5
database.incrementConnections*

The number of connections Metacat creates when it requires more connections.

Default Value: 5

5
database.maximumConnections*

The maximum number of database connections Metacat can make.

Default Value: 200

25
database.maximumConnectionAge*

The maximum time in milliseconds that a database connection can live.

Default Value: 120000

120000
database.maximumConnectionTime*

The maximum time in milliseconds that a database connection can accumulate in actual connection time.

Default Value: 60000

60000
database.maximumUsageNumber*

The maximum number of times a single connection can be used.

Default Value: 100

100
database.numberOfIndexingThreads*

The number of threads available for indexing.

Default Value: 5

5
database.indexingTimerTaskTime*

The time in milliseconds between indexing.

Default Value: 604800000

604800000
database.indexingInitialDelay*

The delay in milliseconds before first indexing is executed.

Default Value: 3600000

3600000
database.maximumIndexDelay*

The time in milliseconds that an indexing thread will wait when it can’t get a doc id before retrying the indexing.

Default Value: 5000

5000
database.runDBConnectionRecycleThread*

Determines whether the database connection pool should run a thread to recycle connections. Possible values are “on” and “off”

Default Value: off

off
database.cycleTimeOfDBConnection*

The time in milliseconds between connection recycling runs.

Default Value: 30000

30000
database.queryignoredparams*

Parameters to ignore in a structured XML query.

Default Value: enableediting,foo

enableediting
database.usexmlindex*

Determines whether to use XML indexes when finding documents. Possible values are true and false.

Default Value: true

true
database.appResultsetSize*

Determines the number of results that can be returned to an application from a query.

Default Value: 7000

7000
database.webResultsetSize*

Determines the number of results that can be returned to a Web browser from a query.

Default Value: 7000

7000
database.xmlReturnfieldCount*

If the query results of a query are returned more times than this value, then those results will be inserted into the xml_queryresult table in the database. For example, if you want results for a query to be stored in xml_queryresult only when it has been requested 50 times, set this value to 50.

Default Value: 0

0
database.queryresultStringLength*

The max size of the query result string in the queryresult table. This should be set to some number less than 4000 if an Oracle database is being used.

Default Value: 500000

500000
database.queryresultCacheSize*

The number of query results that will be cached.

Default Value: 500

500
database.queryCacheOn*

Determines whether query caching is turned on. Possible values are “on” and “off”

Default Value: on

on

17.4. Authorization and Authentication Properties

Metacat’s authorization and authentication properties are described in the table below. Properties that can only be edited manually in the metacat.properties file are marked. All others are managed with the properties configuration utility.

Authorization and Authentication Properties

Property Description Example

auth.class

The class used for user authentication. Currently, both the AuthFile and AuthLdap classes are included in the Metacat distribution. Note: If you implement another authentication strategy by implementing a Java class that extends the AuthInterface interface and rebuilding Metacat, change this property to the fully qualified class name of your custom authentication mechanism.

Default Value: edu.ucsb.nceas.metacat.authentication.AuthFile

edu.ucsb.nceas.metacat.AuthLdap
auth.timeoutMinutes*

The number of minutes that a user will stay logged in to Metacat without any activity.

Default Value: 180

180

auth.administrators

A colon separated list of LDAP users or groups that have administrative Metacat privileges. At least one user or group must be entered when Metacat is first installed and configured. All accounts must exist in LDAP in order to continue with the configuration. uid=youruser,o=NCEAS,dc=ecoinformatics,dc=org cn=yourgroup,o=NCEAS,dc=ecoinformatics,dc=org

auth.userManagementUrl

A web page provides the user management such as creating a new user and changing password. https://identity.nceas.ucsb.edu

auth.file.path

The absolute path of the password file which stores the username/password and users’ information. This file is used for the file-based authentication mechanism.

Please see the Authentication details page for more information.

Default Value: /var/metacat/certs/password

/var/metacat/certs/password

auth.url

The URL of the server that Metacat should use for authentication.

Default Value: ldap://ldap.ecoinformatics.org:389/

ldap://ldap.ecoinformatics.org:389/

auth.surl

The URL of the server that Metacat should use for secure authentication.

Default Value: ldap://ldap.ecoinformatics.org:389/

ldap://ldap.ecoinformatics.org:389/

auth.base

The base part of the distinguished name that Metacat uses for authentication.

Default Value: dc=ecoinformatics,dc=org

dc=ecoinformatics,dc=org

auth.allowedSubmitters

A colon delimited list of users who should be allowed to submit documents to Metacat. If no value is specified, all users will be allowed to submit documents.

Default Value: (none)

uid=youruser,o=NCEAS,dc=ecoinformatics,dc=org

auth.deniedSubmitters

A colon delimited list of users who should NOT be allowed to submit documents. If no value is specified, all users will be allowed to submit documents.

Default Value: (none)

uid=youruser,o=NCEAS,dc=ecoinformatics,dc=org
ldap.connectTimeLimit*

The time in milliseconds allowed for LDAP server connections.

Default Value: 5000

5000
ldap.searchTimeLimit*

The time in milliseconds allowed for LDAP server searches.

Default Value: 30000

3000
ldap.searchCountLimit*

The number of return entries allowed for LDAP server searches.

Default Value: 30000

30000
ldap.referral*

The type of LDAP referrals to use. Possible values are “follow”, “throw” or “none”. Refer to LDAP documentation for further information.

Default Value: follow

follow
ldap.onlySecureConnection*

Determines whether to use only a secure LDAP server. Acceptable values are “true” and “false”.

Default Value: false

false
ldap.onlySecureReferalsConnection*

Determines whether to only use a secure referral server. Acceptable values are “true” and “false”.

Default Value: false

false

17.5. XML/EML Properties

Metacat’s XML/EML properties are described below. These properties can only be edited manually in the metacat.properties file.

XML/EML Properties

Property Description Example
xml.saxparser

The SAX parser used to parse XML documents. Metacat requires a SAX2-compatible XML parser.

Default Value: org.apache.xerces.parsers.SAXParser

org.apache.xerces.parsers.SAXParser
xml.eml2_0_0namespace

The namespace of EML 2.0.0 documents.

Default Value: eml://ecoinformatics.org/eml-2.0.0

eml://ecoinformatics.org/eml-2.0.0
xml.eml2_0_1namespace

The namespace of EML 2.0.1 documents.

Default Value: eml://ecoinformatics.org/eml-2.0.1

eml://ecoinformatics.org/eml-2.0.1
xml.eml2_1_0namespace

The namespace of EML 2.1.0 documents.

Default Value: eml://ecoinformatics.org/eml-2.1.0

eml://ecoinformatics.org/eml-2.1.0
xml.packagedoctype

The doctype of a package file. The system will only recognize documents of this type as package files. See: package documentation.

Default Value: -//ecoinformatics.org//eml-dataset-2.0.0beta6//EN

-//ecoinformatics.org//eml-dataset-2.0.0beta6//EN -//ecoinformatics.org//eml-dataset-2.0.0beta4//EN
xml.accessdoctype

The doctype of an access control list (ACL) file. The system will only recognize documents of this type as access files. See: access control documentation.

Default Value: -//ecoinformatics.org//eml-access-2.0.0beta6//EN

-//ecoinformatics.org//eml-access-2.0.0beta6//EN -//ecoinformatics.org//eml-access-2.0.0beta4//EN

17.6. Data Manager Properties

The EML Data Manager is also included for extended data-query operations. Note that this feature is still experimental.

Property Description Example

datamanager.server

The server for the Datamanager library to use for temporary db storage localhost

datamanager.database

The database name for the Datamanager datamananger

datamanager.user

The username for the Datamanager DB datamananger

datamanager.password

The password for the Datamanager user datamananger

17.7. Additional Properties

Additional configuration properties are described below, though there are many more that can be manually edited in the properties file directly.

Property Description Example

plugin.handlers

Implementations of the plugin interface: edu.ucsb.nceas.metacat.plugin.MetacatHandlerPlugin can be listed

Default Value: blank

org.example.CustomActionHandler