...
uPortal relies on database transactional support, which in MySQL is dependent upon the underlying storage engine (per-table). The default (MyISAM) is not transaction safe. The most common transactional table type on MySQL is InnoDB. You configure InnoDB as the default:
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
[mysqld] default-storage-engine=innodb |
...
MySQL table names are case-sensitive depending on the filesystem of the server. e.g. insensitive on Windows & Mac HFS+, Case sensitive on Unix. To prevent issues when moving between platforms it is recommended that you set:
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
[mysqld] lower_case_table_names=1 |
...
You can also set all of the memory, table, and connection limits as well as a host of other options.
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
# Example settings used for uPortal at Manchester max_connections = 1500 table_cache = 512 query_cache_size = 128M set-variable = innodb_buffer_pool_size=128M set-variable = innodb_log_file_size=256M set-variable = innodb_additional_mem_pool_size=20M set-variable = innodb_log_buffer_size=4M innodb_flush_log_at_trx_commit=1 |
...
Edit /uPortal/uportal-impl/src/main/resources/properties/rdbm.properties and add the lines for MySQL. Modify the URL, username and password as appropriate:
Code Block |
---|
##### MySQL - example hibernate.connection.driver_class=com.mysql.jdbc.Driver hibernate.connection.url=jdbc:mysql://my.school.edu:3306/portal hibernate.connection.username=test hibernate.connection.password=mypass hibernate.dialect=org.hibernate.dialect.MySQLDialect |
The /uPortal/uportal-impl/src/main/resources/properties/db/dbloader.xml properties file may also need to be modified. This file is used by the DbLoader tool to create the uPortal database tables and populate the database. It contains several sample entries which create db-type-mappings for different databases. Find the tags for an MySQL database and modify the db-version, driver-name, and driver-version as necessary. For example:
Code Block |
---|
<db-type-mapping> <db-name>MySQL</db-name> <db-version>5.0.32-Debian_7etch5-log</db-version> <driver-name>MySQL-AB JDBC Driver</driver-name> <driver-version>mysql-connector-java-5.0.8 ( Revision: ${svn.Revision} )</driver-version> <type><generic>LONGVARCHAR</generic><local>TEXT</local></type> </db-type-mapping> |
The /uPortal/uportal-impl/src/main/resources/properties/contexts/personDirectoryContext.xml properties file will also need to be modified.
...
No Format |
---|
Buildfile: build.xml dbtest: install-parent-pom: [artifact:install] [INFO] Installing /tmp/uP3/pom.xml to /root/.m2/repository/org/jasig/portal/uportal-parent/3.0.0-RC3/uportal-parent-3.0.0-RC3.pom [touch] Creating /tmp/uportal-parent.pom-1809577408-marker [artifact:dependencies] Downloading: javax/mail/mail/1.4.1/mail-1.4.1.pom from jasig-repository [artifact:dependencies] Downloading: javax/mail/mail/1.4.1/mail-1.4.1.pom from central [artifact:dependencies] Downloading: javax/script/script-api/1.0/script-api-1.0.pom from jasig-repository [artifact:dependencies] Downloading: javax/script/script-api/1.0/script-api-1.0.pom from central [artifact:dependencies] Downloading: groovy/groovy-all/1.0/groovy-all-1.0.pom from jasig-repository [artifact:dependencies] Downloading: groovy/groovy-all/1.0/groovy-all-1.0.pom from central [artifact:dependencies] Downloading: javax/script/groovy-engine/1.0/groovy-engine-1.0.pom from jasig-repository [artifact:dependencies] Downloading: javax/script/groovy-engine/1.0/groovy-engine-1.0.pom from central [echo] Artifact '/tmp/uP3/uportal-impl/target/uportal-impl-3.0.0-RC3.jar' is up-to-date [artifact:install] [INFO] Installing /tmp/uP3/uportal-impl/target/uportal-impl-3.0.0-RC3.jar to /root/.m2/repository/org/jasig/portal/uportal-impl/3.0.0-RC3/uportal-impl-3.0.0-RC3.jar [echo] Invoking DbTest [java] INFO [main] spring.PortalApplicationContextLocator Apr/07 22:59:03.595 - Creating new lazily initialized GenericApplicationContext for the portal [java] INFO [main] jpa.HibernateJpaVendorAdapter Apr/07 22:59:06.572 - Setting CacheProvider 'org.jasig.portal.utils.cache.hibernate.EhCacheProvider@be41ec' on ThreadLocal [java] AbandonedObjectPool is used (org.apache.commons.dbcp.AbandonedObjectPool@9b1670) [java] LogAbandoned: true [java] RemoveAbandoned: true [java] RemoveAbandonedTimeout: 300 [java] INFO [main] jndi.DisposableMemoryContextFactory Apr/07 22:59:09.184 - Created new MemoryContext with environment '{java.naming.factory.url.pkgs=tyrex.naming, java.naming.provider.url=, java.naming.factory.initial=org.jasig.portal.jndi.DisposableMemoryContextFactory}' [java] INFO [main] properties.PropertiesManager Apr/07 22:59:09.210 - Property [org.jasig.portal.car.CarResources.directory] was requested but not found. [java] INFO [main] car.CarResources Apr/07 22:59:09.211 - CAR directory property 'org.jasig.portal.car.CarResources.directory' not specified. Defaulting to well-known directory '/WEB-INF/cars'. [java] INFO [main] jndi.JndiManagerImpl Apr/07 22:59:09.236 - Initialized portal JNDI context [java] INFO [main] spring.PortalApplicationContextLocator Apr/07 22:59:09.297 - Created new lazily initialized GenericApplicationContext for the portal in 5701ms [java] Parsing jar:file:/tmp/uP3/uportal-impl/target/uportal-impl-3.0.0-RC3.jar!/properties/db/dbloader.xml... [java] WARN [main] rdbm.DatabaseMetaDataImpl Apr/07 22:59:09.489 - The uPortal database is not initialized, the database tests will not be performed. [java] INFO [main] rdbm.DatabaseMetaDataImpl Apr/07 22:59:09.491 - MySQL (5.0.32-Debian_7etch5-log) / MySQL-AB JDBC Driver (mysql-connector-java-5.1.6 ( Revision: ${svn.Revision} )) database/driver [java] Connected To: jdbc:mysql://meonis.mc.man.ac.uk/beta_uportal [java] WARNING: uPortal tables do no exist, not all meta-data tests were executed. [java] Database name: 'MySQL' [java] Database version: '5.0.32-Debian_7etch5-log' [java] Driver name: 'MySQL-AB JDBC Driver' [java] Driver version: 'mysql-connector-java-5.1.6 ( Revision: ${svn.Revision} )' [java] Driver class: 'MySQL-AB JDBC Driver' [java] Connection URL: 'jdbc:mysql://localhost/uportal' [java] User: 'uportal_web@localhost' [java] Type Mappings: [Type[genericType=LONGVARCHAR,local=TEXT]] [java] supportsANSI92EntryLevelSQL: true [java] supportsANSI92FullSQL: false [java] supportsCoreSQLGrammar: true [java] supportsExtendedSQLGrammar: false [java] supportsTransactions: true [java] supportsMultipleTransactions: true [java] supportsOpenCursorsAcrossCommit: false [java] supportsOpenCursorsAcrossRollback: false [java] supportsOpenStatementsAcrossCommit: false [java] supportsOpenStatementsAcrossRollback: false [java] supportsStoredProcedures: true [java] supportsOuterJoins: true [java] supportsFullOuterJoins: false [java] supportsLimitedOuterJoins: true [java] supportsBatchUpdates: true [java] supportsColumnAliasing: true [java] supportsExpressionsInOrderBy: true [java] supportsOrderByUnrelated: false [java] supportsPositionedDelete: false [java] supportsSelectForUpdate: true [java] supportsUnion: true [java] supportsUnionAll: true [java] getMaxColumnNameLength: 64 [java] getMaxColumnsInIndex: 16 [java] getMaxColumnsInOrderBy: 64 [java] getMaxColumnsInSelect: 256 [java] getMaxColumnsInTable: 512 [java] getMaxConnections: 0 [java] getMaxCursorNameLength: 64 [java] getMaxIndexLength: 256 [java] getMaxRowSize: 2147483639 [java] getMaxStatements: 0 [java] getMaxTableNameLength: 64 [java] getMaxTablesInSelect: 256 [java] getMaxUserNameLength: 16 [java] getSearchStringEscape: \ [java] getStringFunctions: ASCII,BIN,BIT_LENGTH,CHAR,CHARACTER_LENGTH,CHAR_LENGTH,CONCAT,CONCAT_WS,CONV,ELT,EXPORT_SET,FIELD,FIND_IN_SET,HEX,INSERT,INSTR,LCASE,LEFT,LENGTH,LOAD_FILE,LOCATE,LOCATE,LOWER,LPAD,LTRIM,MAKE_SET,MATCH,MID,OCT,OCTET_LENGTH,ORD,POSITION,QUOTE,REPEAT,REPLACE,REVERSE,RIGHT,RPAD,RTRIM,SOUNDEX,SPACE,STRCMP,SUBSTRING,SUBSTRING,SUBSTRING,SUBSTRING,SUBSTRING_INDEX,TRIM,UCASE,UPPER [java] getSystemFunctions: DATABASE,USER,SYSTEM_USER,SESSION_USER,PASSWORD,ENCRYPT,LAST_INSERT_ID,VERSION [java] getTimeDateFunctions: DAYOFWEEK,WEEKDAY,DAYOFMONTH,DAYOFYEAR,MONTH,DAYNAME,MONTHNAME,QUARTER,WEEK,YEAR,HOUR,MINUTE,SECOND,PERIOD_ADD,PERIOD_DIFF,TO_DAYS,FROM_DAYS,DATE_FORMAT,TIME_FORMAT,CURDATE,CURRENT_DATE,CURTIME,CURRENT_TIME,NOW,SYSDATE,CURRENT_TIMESTAMP,UNIX_TIMESTAMP,FROM_UNIXTIME,SEC_TO_TIME,TIME_TO_SEC [java] Table Types: TABLE,VIEW,LOCAL TEMPORARY [java] SQL Types: BIT,BOOL,TINYINT,TINYINT UNSIGNED,BIGINT,BIGINT UNSIGNED,LONG VARBINARY,MEDIUMBLOB,LONGBLOB,BLOB,TINYBLOB,VARBINARY,BINARY,LONG VARCHAR,MEDIUMTEXT,LONGTEXT,TEXT,TINYTEXT,CHAR,NUMERIC,DECIMAL,INTEGER,INTEGER UNSIGNED,INT,INT UNSIGNED,MEDIUMINT,MEDIUMINT UNSIGNED,SMALLINT,SMALLINT UNSIGNED,FLOAT,DOUBLE,DOUBLE PRECISION,REAL,VARCHAR,ENUM,SET,DATE,TIME,DATETIME,TIMESTAMP BUILD SUCCESSFUL Total time: 13 seconds |
Verify the values on the Database name, Database version, Driver name, Driver version match those entered in dbloader.xml exactly.