Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 5.3
Warning

If you are running a SSP version prior to 1.1.1, you are strongly encouraged to upgrade or otherwise apply the reporting subsystem security patches described by SSP-701.

Also please take a few minutes to review additional security-related announcements detailed at the top of the SSP space here in Confluence.

Table of Contents

Step by step instructions for building and deploying the SSP

...

2.0-b2 release.

 

  1. Software Prerequisites (JDK, Tomcat, Maven, Ant, RDBMS)
  2. SSP Platform build and deployment

...

Anchor
Software Pre-reqs
Software Pre-reqs
Software Prerequisites

The following software prerequisites must be installed with the appropriate environment variables to build and run SSP:

  • JDK 1.6 update 21 or later (JDK 1.7 is not supported as of 2013/01)
    • Download Location: http://java.sun.com (openjdk works as well)
    • Environment Variable: JAVA_HOME

      Tip
      titleJava Environment Variable
      JAVA_HOME=/path/to/your/java (ie: /usr/local/java or C:\java\jdk)


      (optional)
      PATH= append the bin subdirectory to the path statement
  • Tomcat 6.X (Tomcat 7 is not supported as of 2013/01)
    • Instructions for installing and configuring Tomcat for the SSP-Platform (uPortal 4.0)

      Warning
      titleTomcat Configuration

      It is important to complete sections: Environment Variables, Shared Libraries, Shared Sessions, Java Heap

    Maven 3.0.3 or later
  • Download Loation: http://maven.apache.org
  • Environment Variable: MAVEN_HOME

    Tip
    titleMaven Environment Variables
    MAVEN_HOME=
    • Additionally, a performance improvement has been experienced by enabling compression in Tomcat

      Tip

      Add compression="force" to the server.xml in the connector like the following:

       

      <Connector port="8080" protocol="HTTP/1.1

      connectionTimeout="20000"

      redirectPort="8443"

      emptySessionPath="true"

      compression="force" />

  • Maven 3.0.3 or later
    • Download Loation: http://maven.apache.org
    • Environment Variable: MAVEN_HOME

      Tip
      titleMaven Environment Variables
      MAVEN_HOME= /path/to/your/maven (ie: /usr/local/maven or C:\tools\maven)
      M2_HOME= /path/to/your/maven (ie: /usr/local/maven or C:\tools\maven)

      (optional)
      PATH= append the bin subdirectory to the path statement
  • Ant 1.8.2 (use this exact version)
    • Download Location: http://ant.apache.org

    • Environment Variable: ANT_HOME

      Tip
      titleAnt Environment Variable
      ANT_HOME= /path/to/your/ant (ie: /usr/local/ant or C:\tools\ant)

      (optional)
      PATH= append the bin subdirectory to the path statement
  • RDBMS (support for PostgreSQL and Microsoft SQL Server)
    • PostgreSQL 9.1 or later
      • Download Location: http://www.postgresql.org
        • On Unix:
        • On Mac:
          • PostgreSQL is available via the homebrew package manager or as a download on the postgresql.org site.
        • On Windows:
          • PostgreSQL is available as a download on the postgresql.org site.
      • Configure PostgreSQL
        • Server Connection
          • Launch the PG Admin application
          • In the Object Browser, navigate to and right click on Server Groups -> Servers -> PostgreSQL 9.1 (localhost:5432)
          • Click Connect and the enter the administrator password
        • Login Roles
          • In the Object Browser, right click on Login Roles and click New Login Role
            • In the Properties tab, enter a Role name of "sspadmin" without the quotes

            • In the Definition tab, enter a Password of "sspadmin" without the quotes

          • In the Object Browser, right click on Login Roles and click New Login Role


            • In the Properties tab, enter a Role name of "ssp" without the quotes

            • In the Definition tab, enter a Password of "ssp" without the quotes

          • Confirm the new Login Roles exist in the Object Browser
        • Database
          • In the Object Browser, right click on Databases and click New Database
            • Enter "ssp" without the quotes as the database name
            • Enter "sspadmin" without the quotes as the database owner
          • Confirm the new database exists in the Object Browser
    • Microsoft SQL Server 2005 or 2008 R2
      • Server Connection
        • Launch the SQL Server Management Studio application
        • Enter your database connection info including administrator account credentials, and click Connect
      • Login Roles
        • Navigate to Security->Logins, and right click on New Login
          • Login name of "sspadmin" without the quotes
          • Select SQL Server authentication and enter a Password of "sspadmin" without the quote
          • Uncheck Enforce password policy
        • Right click on Logins again, and New Login Role
          • Login name of "ssp" without the quotes
          • Select SQL Server authentication and enter a Password of "ssp" without the quote
          • Uncheck Enforce password policy
        • Confirm the new users exist
      • Database
        • Navigate to and right click on Databases and click New Database
          • Enter "ssp" without the quotes as the database name
        • Confirm the new database exists
        • Run the following SQL to assign user permissions and configure the required database settings
Code Block
titleSQL Server Configurations
USE [ssp]
GO
IF NOT EXISTS 
(SELECT name FROM sys.filegroups WHERE is_default=1 AND name = 
N'PRIMARY') ALTER DATABASE [ssp] MODIFY FILEGROUP [PRIMARY] DEFAULT
GO
IF NOT EXISTS (SELECT name  FROM sys.database_principals WHERE name = 'ssp')
BEGIN
CREATE USER [ssp] FOR LOGIN [ssp]
EXEC sp_addrolemember N'db_datawriter', N'ssp'
EXEC sp_addrolemember N'db_datareader', N'ssp'
END
GO
CREATE USER [sspadmin] FOR LOGIN [sspadmin]
GO
EXEC sp_addrolemember N'db_owner', N'sspadmin'
GO
Code Block
For MSSQL 2008 2005or later:

ALTER DATABASE sspMyDatabase
 SET ALLOW_SNAPSHOT_ISOLATION ON;
 SET TRANSACTION ISOLATION LEVEL SNAPSHOT
ALTER DATABASE sspMyDatabase
 SET READ_COMMITTED_SNAPSHOT ON;
 SET TRANSACTION ISOLATION LEVEL READ COMMITTED

For MSSQL 2008 or later:

ALTER DATABASE MyDatabase
 SET ALLOW_SNAPSHOT_ISOLATION ON
ALTER DATABASE MyDatabase
 SET READ_COMMITTED_SNAPSHOT ON
Info
titleRDBMS Platform Flexibility
Currently SSP supports use of PosgreSQL and Microsoft SQL Server 2005, 2008, or 2008 R2. 
Info
titleRDBMS Platform Flexibility

Currently SSP supports use of PosgreSQL and Microsoft SQL Server 2008, or 2008 R2.  The project team develops and tests against PostgreSQL and Microsoft SQL Server.

Future support for Oracle and other RDBMS is planned.

 

...

Anchor
SSP-Platform Build
SSP-Platform Build
Configure and Deploy SSP-Platform

The following configurations are required to build and deploy SSP-Platform.

1. Download the SSP-Platform Release

 

Zip Download
The source files can be downloaded in a zip file
  • Download Location: SSP 12.20.0-b2
  • Unzip the file into the directory created in step 1 above (ie: C:\ssp)

2. SSP Configuration Files

 

  • Create a directory for the local SSP configuration files
    • Example:
      • Unix/Linux/Mac example: /usr/local/ssp
      • Windows example: C:\ssp\ssp-local

    • Make the directory only readable by the user that is running Tomcat

    • Set an Environment Variable for the local configuration file location

      Tip
      SSP_CONFIGDIR=/path/to/your/local-configuration (ie: /usr/local/ssp/ssp-local or C:\ssp\ssp-local)
  • ssp-config.properties
    • The ssp-config.properties file must be modifed for database connectivity and email settings
    • File Location: github
    • Action: create the  ssp-config.properties file in the local configuration directory (ie: C:\ssp\ssp-local)

        • Configuration Values:

          ValueDescriptionNote
          system_idUnique identifier of the SSP instance 
          db_
      • urljdbc connection syntaxFor Microsoft SQL Server, either specify a port (the default is 1433) or ensure that the SQL Server
        • usernameValues for connecting to the SSP database 
          db_passwordValues for connecting to the SSP database 
          db_admin_usernameValues for connecting to the SSP database 
          db_admin_passwordValues for connecting to the SSP database 
          db_nameValue for the SSP database 
          db_urljdbc connection syntaxFor Microsoft SQL Server, either specify a port (the default is 1433) or ensure that the SQL Server Browser service is running because the SQL Server JDBC driver defaults to port 1434 which is the SQL Server Server Browser service default port. Depending on the server configuration, either may work, or you may want to explicitly specify the port and instance name, if applicable.
          db_driver_classjdbc database connectivity syntax 
          db_dialectHibernate dialectUse of one of the org.jasig.ssp.util.hibernate.ExtendedSQLServer*Dialects is strongly encouraged if running against SQLSever. The default ssp-config.properties has an example.)
          db_
      • username
        • conns_max_activeValues for
      • connecting to
        • the
      • SSP
        • database
      •  
        • connection poolThe default value will need to be increased for test and product
          db_conns_
      • password
        • max_idleValues for
      • connecting to
        • the
      • SSP
        • database
      •  
        • connection poolThe default value will need to be increased for test and product
          db_conns_
      • admin
        • max_
      • username
        • waitValues for
      • connecting to
        • the
      • SSP
        • database connection pool 
          db_conns_
      • admin
        • validation_
      • password
        • queryValues for
      • connecting to
        • the
      • SSP
        • database connection pool 
          db_liquibase_
      • nameValue for the SSP database
        • enabledEnables the liquibase script for database table management 
          db_
      • conns
        • liquibase_
      • max_active
        • changelog
      • Values
        • Location for the
      • database connection poolThe default value will need to be increased for test and productdb_conns_max_idleValues for the database connection poolThe default value will need to be increased for test and productdb_conns_max_waitValues for the database connection pool db_conns_validation_queryValues for the database connection pool db_liquibase_enabledEnables the liquibase script for database table management
        • liquibase change log 
          db_liquibase_set_mssql_snapshot_isolationParameter for configuring a MSSQL databaseIMPORTANT The default value is 'true'.  Set this value to 'false for MSSQL.  The liquibase changeset 000014.xml will be ignored.  The sql above configures the database correctly.
          db_liquibase_strip_journal_comment_markupParameter to enable a script to convert HTML Journal Entries to plain text 
          db_liquibase_
      • changelogLocation for the liquibase change log db_liquibase_set_mssql_snapshot_isolationParameter for configuring a MSSQL databaseIMPORTANT The default value is 'true'.  Set this value to 'false for MSSQL.  The liquibase changeset 000014.xml will be ignored.  The sql above configures the database correctly.db_liquibase_strip_journal_comment_markupParameter to enable a script to convert HTML Journal Entries to plain text db_liquibase_strip_tuition_paid_is_yTrue value will delete the existing values forced into the database in v1.2.0, False will leave the existing values aloneThis only applies to implementers who installed v1.2.0 or earlier AND populated the external_registration_status_by_term.tuition_paid field with external data
        db_batchsize 
        The number of records to process for database transactions.The default value is 300.  Use of the parameter can increase performance of queries writing large sums of data into the database.  This is primarily used in the Caseload Re-assignment tool.db_time_zone_legacyParameter to set the timezone for data migrationUsed for migrating persistent timestamps. Prior to work on SSP-1002, SSP-1035, and SSP-1076, timestamps were stored in the JVM default timezone.  After that the application assumes they are stored in
        • strip_tuition_paid_is_yTrue value will delete the existing values forced into the database in v1.2.0, False will leave the existing values aloneThis only applies to implementers who installed v1.2.0 or earlier AND populated the external_registration_status_by_term.tuition_paid field with external data
          db_liquibase_convert_external_term_timestamps
          True value in external_term.start_date and external_term.end_date will be interpreted in ${db_time_zone_legacy} and re-written in
          ${db_time_zone
      • }. In order to correctly
        • _legacy}.

          True usually makes sense for both upgrades and fresh installs. Would only set to false if for some reason these fields have already been converted to ${db_time_zone) via some external process.
          db_batchsize 
          The number of records to process for database transactions.The default value is 300.  Use of the parameter can increase performance of queries writing large sums of data into the database.  This is primarily used in the Caseload Re-assignment tool.
          cacheLifeSpanInMillis 
          This property will dictate how long lived a cache will be only external courses uses a cache
          default is 86400000 = 1 day
          db_time_zone_legacyParameter to set the timezone for data migration

          Used for migrating persistent timestamps. Prior to work on SSP-1002, SSP-1035, and SSP-1076, timestamps were stored in the JVM default timezone.  After that the application assumes they are stored in ${db_time_zone}. In order to correctly migrate existing data, though, the app needs to know the original timezone. This is almost always going to be the current JVM default timezone, hence the default value here, which is a special value instructing the app to lookup and inject that timezone into this config property. In the rare event you need to change that value, you can do so here. This would likely only be necessary if, for whatever reason you change the JVM default *after* the migrations run, which would result in a Liquibase checksum error. To avoid that, just set the relevant timezone here when and if you make that change.


          Default is CURRENT_JVM_DEFAULT
          db_time_zoneTimezone ID for the JVM

          JVM-recognized TimeZone ID for the zone in which persistent date/time values should be interpreted. Should rarely if ever need to be overridden. If overridden, should always be set to a TimeZone that does not observe Daylight Savings Time unless trying to cope with legacy data that was stored in a DST-aware TimeZone. Once set, should never be changed else date/time values in the database will be interpreted incorrectly. (SSP does not store timezone data on persistent date/time values and implements no logic for  detecting and/or handling changes to this configuration option.)

          Default is UTC

          smtp_usernameValue for email relay 
          smtp_passwordValue for email relay 
          smtp_hostValue for email relay 
          smtp_portValue
      • for email relay smtp_passwordValue for email relay smtp_hostValue for email relay smtp_portValue for email relay ssp_admins_email_addressesRecipient of system generated messages scheduled_coach_sync_enabledParameter to enable coach sync process per_coach_sync_transactionsParameter to enable the sync process to run per coach instead of one large transaction for all coaches 
        • for email relay 
          smtp_protocolProtocol for emailDefault is smtp
          ssp_admins_email_addressesRecipient of system generated messages 
          scheduled_coach_sync_enabledParameter to enable coach sync process 
          per_coach_sync_transactionsParameter to enable the sync process to run per coach instead of one large transaction for all coaches 
          scheduled_task_cleanup_wait_millis 
          Max amount of time, in milliseconds, the app will wait during shutdown for any background tasks to abandon their work.
          Default is 10000
          uportal_session_keep_alive_timeoutLength of time for uPortal sessions KeepAliveFilter 
          spring.profiles.activeDeployment options
          • dev-standalone: completely free of uPortal
          • standalone: as the only portlet in a uPortal instance
          • uPortal: as one of many portlets in a uPortal instance
          ssp_main_use_minifed_js  
          Parameter to determine the javascript file used in the deployment
          When set to true, ssp-main.jsp will include a minified js called app-all.js
          When set to false, ssp-main.jsp will include the non-minified app.js
      • uportal_session_keep_alive_timeoutLength of time for uPortal sessions KeepAliveFilter spring.profiles.activeDeployment options
      • dev-standalone: completely free of uPortal
      • standalone: as the only portlet in a uPortal instance
      • uPortal: as one of many portlets in a uPortal instance

logback.xml

  • The logback.xml controls the log location and level
  • File Location: github
  • Action: create the  logback.xml file in the local configuration directory (ie: C:\ssp\ssp-local)

  • Configuration Values: property file

...

  • Additional configuration options
    • Adjust the log levels for each log appender as necessary
    • Enable the smtpAppender (disabled by default)
    • Further details regarding managing the logback.xml are included in XML comments within the file

3. Modify SSP-Platform Configuration Files

  • build.properties
    • The build.properties.sample file is copied or renamed in the current directory.  The parameter defines the location of Tomcat.
    • File Location: (uPortal-ssp-1-1-0)
    • Configuration Values: server.home parameter

...

  • pom.xml (For Microsoft SQL  only)
    • JDBC driver for SSP-Platform if not using PostgreSQL

      Warning

      The pom.xml should only be changed with extreme care.  The Microsoft SQL Server jdbc driver needs to be identified in the build.  The parameter defines the location of the driver in the local repository.

    • File Location: (uPortal-ssp-1-1-0)
    • Configuration Values: parameters

    • Action: modify the existing parameters defined for PostgreSQL

      Code Block
      titleJDBC driver identified in the pom.xml
              <!-- The JDBC Driver used by SSP -->
              <jdbc.groupId>net.sourceforge.jtds</jdbc.groupId>
              <jdbc.artifactId>jtds</jdbc.artifactId>
              <jdbc.version>1.2.4</jdbc.version>
  • local.properties
    • The local.properties file must be modifed for database connectivity and email settings
    • File Location: (uPortal-ssp-1-1-0)/filters
    • Configuration Values:

    ValueDescription
    environment.build.hibernate.connection.driver_classjdbc driver file
    environment.build.hibernate.connection.urljdbc connection syntax
    environment.build.hibernate.connection.usernamejdbc connection database username
    environment.build.hibernate.connection.passwordjdbc connection database password
    environment.build.hibernate.dialectjdbc connection dialect

4.  Build SSP-Platform

  • Use the following command to build, deploy, and initialize the SSP-Platform project:

...

Warning
titleFor Microsoft SQL Server ONLY

Follow steps 2 & 3 from the following page to update appropriate database tables for SSP-PLATFORM

 

  • Restart Tomcat

 

5. Test Deployment

 

 

6. Production Deployment Tips

  • Warning
    titleDelete Demo Users

    If you are deploying to a production environment, you should delete or change the passwords for the uPortal users created for demonstration purposes, including the admin user. This can be done through the user interface: Manage Users ->  Find an Existing User -> [Enter user ID from list below] -> [Click result] -> Delete or Edit, then change password. Demo users:

    admin

    advisor0

    ken

    student0

    student1

...