Problem Note 48211: Workflow Services incorrectly points to a default SAS® Shared Services database
By default, the SAS® Web Infrastructure Platform Database uses the SAS® Framework Data Server (in SAS® 9.3) or the SAS® Table Server (in SAS® 9.2) to store SAS® Content Server data. This data includes alerts, comments, and workflows. During installation, you can choose to store this data in a third-party database instead, such as Oracle, MySQL, PostgreSQL, DB2, or SQL Server.
However, the automatic installation and configuration process does not use your choice of a third-party database. The workaround to choose the non-default database is described below. These instructions enable you to choose the non-default database to store the workflows that are used by SAS® Enterprise GRC. The same instructions apply to the workflows for SAS® Model Manager, SAS® Enterprise Case Management, and other products that use workflows.
Note: When you apply a hot fix that updates the files that you edit as instructed below, the hot fix overwrites your changes. After you apply a hot fix, check to see whether the relevant files were overwritten. Repeat the following steps, if necessary.
For Products on SAS 9.2
- Create a backup file.
Copy and save the workflow.properties.orig file that is located in the SASHOME\SASSharedServices\9.2\Configurable\wars\sas.workflow\WEB-INF\ directory as workflow.properties.orig.bak. This is important because all ORIG files are processed by the SAS® Deployment Manager when it rebuilds web applications later.
- Edit the ORIG file that you backed up in Step 1.
- Replace @biservmid.sasTransactional.comment@ with #.
- Remove the comment delimiters that are associated with your database, leaving workflow.hibernate.dialect=your-database-dialect. For example, for an Oracle database, remove @biservmid.oracle.comment@, as shown below:
---------------------------------------
#Hibernate Sql Dialect
@biservmid.mysql.comment@workflow.hibernate.dialect=org.hibernate.dialect.MySQLDialect
workflow.hibernate.dialect=com.sas.workflow.engine.services.dao.Oracle10gDialect
@biservmid.db2.comment@workflow.hibernate.dialect=org.hibernate.dialect.DB2Dialect
@biservmid.postgres.comment@workflow.hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect
#workflow.hibernate.dialect=com.sas.workflow.engine.services.dao.TSFirebirdDialect
@biservmid.mssql.comment@workflow.hibernate.dialect=org.hibernate.dialect.SQLServerDialect
--------------------------------------
This edit forces manual selection of Oracle and prevents selection of FireBird, the dialect that is used by the SAS Table Server.
- Start the SAS Deployment Manager.
- Select Rebuild Web Applications.
- In the rebuilt web applications, the workflow.properties file in the SASCONFIG\LevX\Web\Staging\exploded\sas.shared9.2.ear\sas.workflow.war\WEB-INF directory
now resembles the following example:
------------------
#Hibernate Sql Dialect
#workflow.hibernate.dialect=org.hibernate.dialect.MySQLDialect
workflow.hibernate.dialect=com.sas.workflow.engine.services.dao.Oracle10gDialect
#workflow.hibernate.dialect=org.hibernate.dialect.DB2Dialect
#workflow.hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect
#workflow.hibernate.dialect=com.sas.workflow.engine.services.dao.TSFirebirdDialect
#workflow.hibernate.dialect=org.hibernate.dialect.SQLServerDialect
---------------------
- Save the changes that you made to the workflow.properties.orig file located at SASHOME\SASSharedServices\9.2\Configurable\wars\sas.workflow\WEB-INF\.
For Products on SAS 9.3
- Create a backup file.
- Copy and save the quartz.properties.orig file that is located in the SASHOME/SASWebInfrastructurePlatform/9.3/Configurable/wars/sas.workflow/WEB-INF/ directory as quartz.properties.orig.bak.
- Copy and save the workflow.properties.orig file that is located in the SASHOME/SASWebInfrastructurePlatform/9.3/Configurable/wars/sas.workflow/WEB-INF/ directory as workflow.properties.orig.bak.
- Only if you are using PostreSQL, edit the quartz.properties.orig file(s):
PostgreSQL uses unusual SQL that requires a different delegateDriverClass. Unfortunately, the right one is not picked up unless you change quartz.properties.orig.
- Find the section of the file that looks like this (lines 228-245):
@webinfpltfm.mysql.comment.start@
<entry key="org.quartz.jobStore.driverDelegateClass">org.quartz.impl.jdbcjobstore.StdJDBCDelegate</entry>
@webinfpltfm.mysql.comment.end@
@webinfpltfm.oracle.comment.start@
<entry key="org.quartz.jobStore.driverDelegateClass">org.quartz.impl.jdbcjobstore.StdJDBCDelegate</entry>
@webinfpltfm.oracle.comment.end@
@webinfpltfm.db2.comment.start@
<entry key="org.quartz.jobStore.driverDelegateClass">org.quartz.impl.jdbcjobstore.StdJDBCDelegate</entry>
@webinfpltfm.db2.comment.end@
@webinfpltfm.postgres.comment.start@
<entry key="org.quartz.jobStore.driverDelegateClass">org.quartz.impl.jdbcjobstore.PostgreSQLDelegate</entry>
@webinfpltfm.postgres.comment.end@
@webinfpltfm.sasTransactional.comment.start@
<entry key="org.quartz.jobStore.driverDelegateClass">org.quartz.impl.jdbcjobstore.StdJDBCDelegate</entry>
@webinfpltfm.sasTransactional.comment.end@
@webinfpltfm.mssql.comment.start@
<entry key="org.quartz.jobStore.driverDelegateClass">org.quartz.impl.jdbcjobstore.StdJDBCDelegate</entry>
@webinfpltfm.mssql.comment.end@
- VERY CAREFULLY delete those lines, making sure that you do not delete anything else in the file.
- Replace the section you just deleted with the following:
<!-- <entry key="org.quartz.jobStore.driverDelegateClass">org.quartz.impl.jdbcjobstore.StdJDBCDelegate</entry> -->
<!-- <entry key="org.quartz.jobStore.driverDelegateClass">org.quartz.impl.jdbcjobstore.StdJDBCDelegate</entry> -->
<!-- <entry key="org.quartz.jobStore.driverDelegateClass">org.quartz.impl.jdbcjobstore.StdJDBCDelegate</entry> -->
<entry key="org.quartz.jobStore.driverDelegateClass">org.quartz.impl.jdbcjobstore.PostgreSQLDelegate</entry>
<!-- <entry key="org.quartz.jobStore.driverDelegateClass">org.quartz.impl.jdbcjobstore.StdJDBCDelegate</entry> -->
<!-- <entry key="org.quartz.jobStore.driverDelegateClass">org.quartz.impl.jdbcjobstore.StdJDBCDelegate</entry> -->
- Double check that you copied and pasted it correctly - it is easy to make a mistake.
- Save the file and exit.
- Edit the workflow.properties.orig file that is located in the SASHOME\SASWebInfrastructurePlatform\9.3\Configurable\wars\sas.workflow\WEB-INF\ directory.
- Find the section of the file that looks like this:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties>
@webinfpltfm.mysql.comment.start@
<entry key="workflow.hibernate.dialect">org.hibernate.dialect.MySQLDialect</entry>
@webinfpltfm.mysql.comment.end@
@webinfpltfm.oracle.comment.start@
<entry key="workflow.hibernate.dialect">com.sas.workflow.engine.services.dao.Oracle10gDialect</entry>
@webinfpltfm.oracle.comment.end@
@webinfpltfm.db2.comment.start@
<entry key="workflow.hibernate.dialect">com.sas.workflow.engine.services.dao.DB2Dialect</entry>
@webinfpltfm.db2.comment.end@
@webinfpltfm.postgres.comment.start@
<entry key="workflow.hibernate.dialect">org.hibernate.dialect.PostgreSQLDialect</entry>
@webinfpltfm.postgres.comment.end@
@webinfpltfm.sasTransactional.comment.start@
<entry key="workflow.hibernate.dialect">org.hibernate.dialect.FirebirdDialect</entry>
@webinfpltfm.sasTransactional.comment.end@
@webinfpltfm.mssql.comment.start@
<entry key="workflow.hibernate.dialect">org.hibernate.dialect.SQLServerDialect</entry>
@webinfpltfm.mssql.comment.end@
</properties>
- Replace the contents above with an entry similar to the one below. Remove the comment delimiters for your chosen database. The example below is for PostgreSQL.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties>
<!-- <entry key="workflow.hibernate.dialect">org.hibernate.dialect.MySQLDialect</entry> -->
<!-- <entry key="workflow.hibernate.dialect">com.sas.workflow.engine.services.dao.Oracle10gDialect</entry> -->
<!-- <entry key="workflow.hibernate.dialect">com.sas.workflow.engine.services.dao.DB2Dialect</entry> -->
<entry key="workflow.hibernate.dialect">org.hibernate.dialect.PostgreSQLDialect</entry>
<!-- <entry key="workflow.hibernate.dialect">org.hibernate.dialect.FirebirdDialect</entry> -->
<!-- <entry key="workflow.hibernate.dialect">org.hibernate.dialect.SQLServerDialect</entry> -->
</properties>
- Save the file and exit.
- Recheck that all of the pre-installation steps for creating users, granting permissions, and so on, have been performed on your database by submitting queries using the SAS installation user ID.
- Start the SAS Deployment Manager.
- Select Rebuild Web Applications.
- Rebuild the SAS Web Infrastructure Platform web application.
In the rebuilt web application, the workflow.properties file in
the SAS-configuration\Lev1\Web\Staging\exploded\sas.sasworkflow9.3.ear\sas.workflow.war\WEB-INF directory
now resembles the following example. (Note that the example below is for Oracle.)
------------------
#Hibernate Sql Dialect
#workflow.hibernate.dialect=org.hibernate.dialect.MySQLDialect
workflow.hibernate.dialect=com.sas.workflow.engine.services.dao.Oracle10gDialect
#workflow.hibernate.dialect=org.hibernate.dialect.DB2Dialect
#workflow.hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect
#workflow.hibernate.dialect=com.sas.workflow.engine.services.dao.TSFirebirdDialect
#workflow.hibernate.dialect=org.hibernate.dialect.SQLServerDialect
---------------------
- Redeploy the SAS Web Infrastructure Platform web application and restart your web application server.
Operating System and Release Information
SAS System | SAS Enterprise GRC | Microsoft® Windows® for x64 | 4.3 | | | |
Microsoft Windows 8 Pro | 4.3 | | | |
Microsoft Windows 95/98 | 4.3 | | | |
Microsoft Windows 2000 Advanced Server | 4.3 | | | |
Microsoft Windows 2000 Datacenter Server | 4.3 | | | |
Microsoft Windows 2000 Server | 4.3 | | | |
Microsoft Windows 2000 Professional | 4.3 | | | |
Microsoft Windows NT Workstation | 4.3 | | | |
Microsoft Windows Server 2003 Datacenter Edition | 4.3 | | | |
Microsoft Windows Server 2003 Enterprise Edition | 4.3 | | | |
Microsoft Windows Server 2003 Standard Edition | 4.3 | | | |
Microsoft Windows Server 2003 for x64 | 4.3 | | | |
Microsoft Windows Server 2008 | 4.3 | | | |
Microsoft Windows Server 2008 for x64 | 4.3 | | | |
Microsoft Windows Server 2012 | 4.3 | | | |
Microsoft Windows XP Professional | 4.3 | | | |
Windows 7 Enterprise 32 bit | 4.3 | | | |
Windows 7 Enterprise x64 | 4.3 | | | |
Windows 7 Home Premium 32 bit | 4.3 | | | |
Windows 7 Home Premium x64 | 4.3 | | | |
Windows 7 Professional 32 bit | 4.3 | | | |
Windows 7 Professional x64 | 4.3 | | | |
Windows 7 Ultimate 32 bit | 4.3 | | | |
Windows 7 Ultimate x64 | 4.3 | | | |
Windows Millennium Edition (Me) | 4.3 | | | |
Windows Vista | 4.3 | | | |
Windows Vista for x64 | 4.3 | | | |
64-bit Enabled AIX | 4.3 | | | |
64-bit Enabled Solaris | 4.3 | | | |
HP-UX IPF | 4.3 | | | |
Linux for x64 | 4.3 | | | |
Solaris for x64 | 4.3 | | | |
*
For software releases that are not yet generally available, the Fixed
Release is the software release in which the problem is planned to be
fixed.
Type: | Problem Note |
Priority: | medium |
Date Modified: | 2012-10-30 12:33:51 |
Date Created: | 2012-10-19 15:50:34 |