Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

The installation process is divided into various steps:

Step 1Rename and deploy the .WAR file on your application server
Step 2Configure your deployed .WAR file
Step 3Install the license key
Step 4Restart Tomcat and test connection
Step 5Configure user authentication
Step 6

First login and become admin - ≥ 2.1 only

Step 7Configure roles
Step 8Generate snapshot data
Step 9Configure data authorization

...

Expand

context.xml file configuration

When the .WAR has been deployed you now need to configure the context.xml file to tell the web application where the Dashboard Service(s) are stored. This file is located here:

Code Block
CATALINA_HOME\webapps\<deployed_war>\META-INF\context.xml

Instructions for Tomcat 8 / 8.5 / 9

Open the context.xml file (as detailed above) with an editor. By default, the file will contain an uncommented template as follows - this is tailored for connections to Dashboard schemas located on a CAST Storage Service / Postgres instance running with port 2280 using Tomcat 8 / 8.5 / 9:

Code Block
languagexml
<Resource name="jdbc/domains/AED" url="jdbc:postgresql://localhost:2280/postgres"
	connectionInitSqls="SET search_path TO [Central Schema];"
	username="operator" password="CastAIP"

	auth="Container" type="javax.sql.DataSource" driverClassName="org.postgresql.Driver"
	validationQuery="select 1"
	initialSize="5" maxTotal="20" maxIdle="10" maxWaitMillis="-1"/>
  • Set the URL parameter to the server on which the Dashboard schema is located:
    • change the "localhost" to the name of the server on which the host CSS is located
    • change the port from 2280 if necessary
  • Change [Central Schema] to the name of the Dashboard schema you are using.
  • Ensure the username and password parameters are correct (note that if you need to encrypt the username and password to avoid entering names in clear text, please see: Encrypt login and password for database and LDAP)
  • You should end up with a section something like this:
Code Block
languagexml
<Resource name="jdbc/domains/AED" url="jdbc:postgresql://my_schema:2282/postgres"
	connectionInitSqls="SET search_path TO my_central_schema;"
	username="operator" password="CastAIP"

	auth="Container" type="javax.sql.DataSource" driverClassName="org.postgresql.Driver"
	validationQuery="select 1"
	initialSize="5" maxTotal="20" maxIdle="10" maxWaitMillis="-1"/>

Following any changes you make, save the context.xml file and then restart your application server so that the changes are taken into account.

Note

Note that it is critically important to configure the initialSize, maxTotal, and maxIdle parameters according to your consumption use case and the number of schemas you want to configure. The default values are high but could probably be decreased to limit the number of active connections to your database instance (eg. initialSize="2" maxTotal="10" maxIdle="2"). Please see the "Optimize context.xml" section in Configure the Health Dashboard for large numbers of Applications for more information about these parameters, or consult the relevant Apache Tomcat documentation: https://tomcat.apache.org.

Instructions for Tomcat 7

Open the context.xml file (as detailed above) with an editor. By default, the file will contain an uncommented template as follows - this is tailored for connections to Dashboard schemas located on a CAST Storage Service / Postgres instance running with port 2280 using Tomcat 8 / 8.5 / 9:

Code Block
languagexml
<Resource name="jdbc/domains/AED" url="jdbc:postgresql://localhost:2280/postgres"
	connectionInitSqls="SET search_path TO [Central Schema];"
	username="operator" password="CastAIP"
	auth="Container" type="javax.sql.DataSource" driverClassName="org.postgresql.Driver"
	validationQuery="select 1"
	initialSize="5" maxTotal="20" maxIdle="10" maxWaitMillis="-1"/>

You need to comment this template by adding <!-- and --> around the section:

Code Block
languagexml
<!--
<Resource name="jdbc/domains/AED" url="jdbc:postgresql://localhost:2280/postgres"
	connectionInitSqls="SET search_path TO [Central Schema];"
	username="operator" password="CastAIP"
	auth="Container" type="javax.sql.DataSource" driverClassName="org.postgresql.Driver"
	validationQuery="select 1"
	initialSize="5" maxTotal="20" maxIdle="10" maxWaitMillis="-1"/>
-->

Now locate the Tomcat 7 template - this is located here:

Code Block
languagexml
<!--  Tomcat 7 Documentation : http://ci.apache.org/projects/tomcat/tomcat7/docs/jndi-resources-howto.html -->
<!-- These connections examples on Tomcat 7 are provided for CSS connections especially useful for REST API on central database.
add parameter if you don't want to use the connection pool :
- for CSS : initConnectionSqls="SET search_path TO ${schema};"

template for resources on CSS with connection pool mode :
    <Resource name="jdbc/domains/${domainName}"
            url="jdbc:postgresql://${host}:${port}/postgres"
            username="${user}" password="${password}"
            auth="Container" type="javax.sql.DataSource" driverClassName="org.postgresql.Driver"
            validationQuery="select 1" initialSize="5" maxActive="20" maxIdle="10" maxWait="-1"/>

template for resources on CSS without connection pool mode :
    <Resource name="jdbc/domains/${domainName}"
            url="jdbc:postgresql://${host}:${port}/postgres"
            username="${user}" password="${password}"
            initConnectionSqls="SET search_path TO ${schema};"
            auth="Container" type="javax.sql.DataSource" driverClassName="org.postgresql.Driver"
            validationQuery="select 1" initialSize="5" maxActive="20" maxIdle="10" maxWait="-1"/>
-->

Copy the Tomcat 7 for CSS without connection pool mode template into uncommented white space:

Code Block
languagexml
<Resource name="jdbc/domains/${domainName}"
	url="jdbc:postgresql://${host}:${port}/postgres"
	username="${user}" password="${password}"
	initConnectionSqls="SET search_path TO ${schema};"
	auth="Container" type="javax.sql.DataSource" driverClassName="org.postgresql.Driver"
	validationQuery="select 1" initialSize="5" maxActive="20" maxIdle="10" maxWait="-1"/>
  • Set the ${domainName} value to AED
  • Set the URL parameter to the server on which the Dashboard schema is located:
    • change the ${host} to the name of the server on which the host CAST Storage Service/PostgreSQL instance is located
    • change the ${port} values to the required port (e.g.: 2280, 2282, 2284 or a custom port depending on the CAST Storage Service/PostgreSQL instance you are running).
  • Ensure the ${user} and ${password} parameters are correct - use the operator and CastAIP username/password combination if you have not changed these defaults (note that if you need to encrypt the username and password to avoid entering names in clear text, please see: Encrypt login and password for database and LDAP)
  • Change ${schema} to the name of the Dashboard schema
  • You should end up with a section something like this:
No Format
<Resource name="jdbc/domains/AED" 
	url="jdbc:postgresql://my_server:2282/postgres"
	username="operator" password="CastAIP"
	initConnectionSqls="SET search_path TO my_central_schema;"	
	auth="Container" type="javax.sql.DataSource" driverClassName="org.postgresql.Driver"
	validationQuery="select 1" initialSize="5" maxActive="20" maxIdle="10" maxWait="-1"/>
  • Following any changes you make, save the context.xml file.
Note

Note that it is critically important to configure the initialSize, maxActive and maxIdle parameters according to your consumption use case and the number of schemas you want to configure. The default values are high but could probably be decreased to limit the number of active connections to your database instance (eg. initialSize="2" maxActive="10" maxIdle="2"). Please see the "Optimize context.xml" section in Configure the Health Dashboard for large numbers of Applications for more information about these parameters, or consult the relevant Apache Tomcat documentation: https://tomcat.apache.org.

Configuring access to multiple Dashboard schemas

If you would like to configure access to multiple Dashboard schemas for use with your Engineering Dashboard, please do as follows:

  • For each additional Dashboard Service you want to configure access to, please add an uncommented configuration template (these are supplied in the context.xml file - ensure you chose the correct template for Tomcat 7 or Tomcat 8/8.5/9) for the target CAST Storage Service/PostgreSQL instance underneath the section configured for your initial Dashboard schema
  • First change the name parameter to something other than "jdbc/domains/AED" (the default "name" used in the pre-provided templates) - CAST recommends using the name of your target Dashboard Service - for example "jdbc/domains/my_central_schema" (you must retain the "jdbc/domains" part of the the name). This is because each Dashboard schema you connect to the Engineering Dashboard must have a unique "name" parameter
  • Set the URL parameter to the server on which the additional Dashboard schema is located:
    • change the ${host} to the name of the server on which the host CAST Storage Service/PostgreSQL instance is located
    • change the ${port} values to the required port (e.g.: 2280, 2282, 2284 or a custom port depending on the CAST Storage Service/PostgreSQL instance you are running).
  • Ensure the ${user} and ${password} parameters are correct - use the operator and CastAIP username/password combination if you have not changed these defaults (note that if you need to encrypt the username and password to avoid entering names in clear text, please see: Encrypt login and password for database and LDAP)
  • Change ${schema} to the name of the Dashboard schema
  • Following any changes you make, save the context.xml file.

Connection pooling

It is possible to modify the connection configuration for the Engineering Dashboard to pool multiple Dashboard schemas in one resource "domain".  In other words, you no longer have to configure one resource (in the context.xml) per Dashboard schema, instead, one resource (in the context.xml) can function for multiple Dashboard schemas. Please see CAST Dashboard Service schema connection configuration pooling for more information.

For CAST Dashboards 2.x

Expand

Modify application.properties to define connection to CSS/PostgreSQL for AIP schemas

When the .WAR has been deployed you now need to configure the application.properties file to tell the web application on which
Info
titleUsing a custom CAST Storage Service or PostgreSQL database other than the default postgres

If you are using AIP Core≥ 8.3.40 it is possible to connect to a custom CAST Storage Service/PostgreSQL

instance the Dashboard schemas are stored. This file is located here:
Code Block
CATALINA_HOME\webapps\<deployed_war>\WEB-INF\classes\application.properties
Locate the following section

database other than the default "postgres" (previously custom databases were not permitted for use with CAST). To be able to exploit this change, see Using a custom CAST Storage Service or PostgreSQL database other than the default postgres.


For CAST Dashboards 2.x

Expand

Modify application.properties to define connection to CSS/PostgreSQL for AIP schemas

When the .WAR has been deployed you now need to configure the application.properties file to tell the web application on which CAST Storage Service/PostgreSQL instance the Dashboard schemas are stored. This file is located here:

Code Block
CATALINA_HOME\webapps\<deployed_war>\WEB-INF\classes\application.properties

Locate the following section in the file:

Code Block
## DATASOURCE
# Resource1 is the datasource name used in domains.properties
# Adapt server name (localhost) and port (2282) if required
# You can add multiple datasources if you want to connect to multiple CSS Servers. Datasource name must be unique
# You have to configure your domains names and relative schema names in domains.properties
restapi.datasource[0].url=jdbc:postgresql://localhost:2282/postgres
restapi.datasource[0].username=operator
restapi.datasource[0].password=CastAIP
restapi.datasource[0].poolname=Resource1
restapi.datasource[0].minimumIdle=10
restapi.datasource[0].maximumPoolSize=20

If all your Dashboard schemas are located on one single CAST Storage Service/PostgreSQL instance then you need to modify the url, username and password entries to match your target CAST Storage Service/PostgreSQL, for example:

Code Block
## DATASOURCE
# Resource1 is the datasource name used in domains.properties
# Adapt server name (localhost) and port (2282) if required
# You can add multiple datasources if you want to connect to multiple CSS Servers. Datasource name must be unique
# You have to configure your domains names and relative schema names in domains.properties
restapi.datasource[0].url=jdbc:postgresql://192.168.200.104:2282/postgres
restapi.datasource[0].username=operator
restapi.datasource[0].password=CastAIP
restapi.datasource[0].poolname=Resource1
restapi.datasource[0].minimumIdle=10
restapi.datasource[0].maximumPoolSize=20

If your Dashboard schemas are located on multiple CAST Storage Services/PostgreSQL instances, you need to add in the additional servers as shown in the example below:

  • Ensure that you modify the url, usernamepassword and resource entries to match your target CAST Storage Service/PostgreSQL. In particular, the resource entry must be unique within the application.properties file.
  • The [0] must also be incremented for additional CAST Storage Service/PostgreSQL instances, for example, use restapi.datasource[1]restapi.datasource[2] etc.
Code Block
## DATASOURCE
# Resource1 is the datasource name used in domains.properties
# Adapt server name (localhost) and port (2282) if required
# You can add multiple datasources if you want to connect to multiple CSS Servers. Datasource name must be unique
# You have to configure your domains names and relative schema names in domains.properties
restapi.datasource[0].url=jdbc:postgresql://192.168.200.104:2282/postgres
restapi.datasource[0].username=operator
restapi.datasource[0].password=CastAIP
restapi.datasource[0].poolname=Resource1
restapi.datasource[0].minimumIdle=10
restapi.datasource[0].maximumPoolSize=20

restapi.datasource[1].url=jdbc:postgresql://192.168.200.105:2282/postgres
restapi.datasource[1].username=operator
restapi.datasource[1].password=CastAIP
restapi.datasource[1].poolname=Resource2
restapi.datasource[0].minimumIdle=10
restapi.datasource[0].maximumPoolSize=20

Save the file before proceeding.

Info
titleminimumIdle and maximumPoolSize

The following options are used to govern the connections from the web application to the target CAST Storage Service/PostgreSQL instance:

Code Block
restapi.datasource[0].minimumIdle=10
restapi.datasource[0].maximumPoolSize=20

CAST recommends using the default options unless you are experiencing performance issues. The options are used as follows:

minimumIdle

The minimum number of connections that should be kept in the pool at all times (even if there is no traffic). Default value is 10.  Idle connections are checked periodically.

maximumPoolSizeThe maximum number of active connections that can be allocated from this pool at the same time. The default value is 20.

See also Configure the Health Dashboard for large numbers of Applications.

Idle connections are checked periodically.

maximumPoolSizeThe maximum number of active connections that can be allocated from this pool at the same time. The default value is 20.

See also Configure the Health Dashboard for large numbers of Applications.


Info
titleUsing a custom CAST Storage Service or PostgreSQL database other than the default postgres

If you are using AIP Core≥ 8.3.40 it is possible to connect to a custom CAST Storage Service/PostgreSQL database other than the default "postgres" (previously custom databases were not permitted for use with CAST). To be able to exploit this change, see Using a custom CAST Storage Service or PostgreSQL database other than the default postgres.

Modify domains.properties

You now need to configure the domains.properties file which provides a link between the CAST Storage Services/PostgreSQL instances defined in the application.properties file and the Dashboard schemas containing the relevant snapshot data. This file is located here:

Code Block
CATALINA_HOME\webapps\<deployed_war>\WEB-INF\classes\domains.properties

This file is delivered empty as shown below:

Code Block
# Domains for ED
# empty lines in this file lead to connection error, remove all empty lines
# - You have to align [Resource1] with the resource name configured in application.properties
# - You have to replace [Central Schema1] by the central schema name
# - Domains names must be unique
# AED1=Resource1,[Central Schema1]
# AED2=Resource1,[Central Schema2]

For each Dashboard schema that you need to display in the CAST Engineering Dashboard, add one line to the file ensuring that there are no empty lines:

AED1This is known as the "domain" and this must be unique in the domains.properties file. Therefore for each Dashboard schema you need to display in the CAST Engineering Dashboard, you need to assign one unique domain. You can use any domain name notation you want, however, CAST highly recommends incrementing the number, i.e. AED1, AED2, AED3 etc.
Resource1This entry refers to the CAST Storage Service/PostgreSQL instance as defined in the application.properties file.
[Central Schema1]This entry refers to the Dashboard schema containing the relevant Application data.

For example, for one single Dashboard schema called "MEUDON_CENTRAL" stored in the CAST Storage Service/PostgreSQL instance defined in Resource1 in the application.properties file, add the following:

Code Block
# Domains for ED
# empty lines in this file lead to connection error, remove all empty lines
# - You have to align [Resource1] with the resource name configured in application.properties
# - You have to replace [Central Schema1] by the central schema name
# - Domains names must be unique
# AED1=Resource1,[Central Schema1]
# AED2=Resource1,[Central Schema2]
AED1=Resource1,MEUDON_CENTRAL

For multiple Dashboard schemas where all schemas are located in the same CAST Storage Service/PostgreSQL instance defined in Resource1 in the application.properties, add the following:

Code Block
# Domains for ED
# empty lines in this file lead to connection error, remove all empty lines
# - You have to align [Resource1] with the resource name configured in application.properties
# - You have to replace [Central Schema1] by the central schema name
# - Domains names must be unique
# AED1=Resource1,[Central Schema1]
# AED2=Resource1,[Central Schema2]
AED1=Resource1,MEUDON_CENTRAL
AED2=Resource1,SEVRES_CENTRAL
AED3=Resource1,PARIS_CENTRAL

For multiple Dashboard schemas where the schemas are located on different CAST Storage Services/PostgreSQL instances (Resource1 and Resource2) as defined in the application.properties file, add the following:

Code Block
# Domains for ED
# empty lines in this file lead to connection error, remove all empty lines
# - You have to align [Resource1] with the resource name configured in application.properties
# - You have to replace [Central Schema1] by the central schema name
# - Domains names must be unique
# AED1=Resource1,[Central Schema1]
# AED2=Resource1,[Central Schema2]
AED1=Resource1,MEUDON_CENTRAL
AED2=Resource2,SEVRES_CENTRAL
AED3=Resource2,PARIS_CENTRAL

Save the file before proceeding.

Modify application.properties to define connection to CSS/PostgreSQL for the roles/permissions schema - ≥ 2.1 only

In ≥ 2.1 only, an interface exists to manage User roles - 2.x and above and Data authorization - 2.x and above - this interface stores all its records in a dedicated schema on a CAST Storage Service/PostgreSQL instance. This instance does not need to be the same as used for your AIP schemas (Dashboard/Measure schemas), however, the required schema is small and therefore CAST recommends using an existing CAST Storage Service/PostgreSQL instance to host it. The schema is created automatically when you start up your Dashboard deployment if it does not already exist.

The application.properties file contains a section dedicated to this schema - this file is located here:

Code Block
CATALINA_HOME\webapps\<deployed_war>\WEB-INF\classes\application.properties

Locate the following section in the file:

Code Block
#datasource configuration for user management
spring.datasource.url=jdbc:postgresql://localhost:2282/postgres?ApplicationName=DASHBOARDS&currentSchema=cast_dashboards
spring.datasource.platform=postgres
spring.datasource.username=operator
spring.datasource.password=CastAIP
spring.datasource.initialization-mode=always
spring.datasource.driver-class-name=org.postgresql.Driver
spring.liquibase.change-log=classpath:db/changelog/db.changelog-master.xml
spring.liquibase.default-schema=cast_dashboards
spring.liquibase.enabled=true

Change the line spring.datasource.url=jdbc:postgresql://localhost:2282/postgres?currentSchema=cast_dashboards to spring.datasource.url to match the CAST Storage Service/PostgreSQL instance you intend to use for the roles/permissions schema, for example:

Code Block
#datasource configuration for user management
spring.datasource.url=jdbc:postgresql://192.168.200.104:2282/postgres?ApplicationName=DASHBOARDS&currentSchema=cast_dashboards
spring.datasource.platform=postgres
spring.datasource.username=operator
spring.datasource.password=CastAIP
spring.datasource.initialization-mode=always
spring.datasource.driver-class-name=org.postgresql.Driver
spring.liquibase.change-log=classpath:db/changelog/db.changelog-master.xml
spring.liquibase.default-schema=cast_dashboards
spring.liquibase.enabled=true
Save the file before proceeding. This will ensure that a schema called "cast_dashboards" is created on the target CAST Storage Service/PostgreSQL instance when you start the web application
.liquibase.enabled=true

Save the file before proceeding. This will ensure that a schema called "cast_dashboards" is created on the target CAST Storage Service/PostgreSQL instance when you start the web application.

Info
titleUsing a custom CAST Storage Service or PostgreSQL database other than the default postgres

If you are using AIP Core≥ 8.3.40 it is possible to connect to a custom CAST Storage Service/PostgreSQL database other than the default "postgres" (previously custom databases were not permitted for use with CAST). To be able to exploit this change, see Using a custom CAST Storage Service or PostgreSQL database other than the default postgres.


Anchor
step3
step3
Step 3 - Install the license key

...