SUPPORT / SAMPLES & SAS NOTES
 

Support

Problem Note 48211: Workflow Services incorrectly points to a default SAS® Shared Services database

DetailsAboutRate It

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

  1. 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.

  2. Edit the ORIG file that you backed up in Step 1.
    1. Replace @biservmid.sasTransactional.comment@ with #.
    2. 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.

  3. Start the SAS Deployment Manager.
    1. Select Rebuild Web Applications.
    2. 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 ---------------------
  4. 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

  1. Create a backup file.
    1. 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.
    2. 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.
  2. 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.

    1. 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@
    2. VERY CAREFULLY delete those lines, making sure that you do not delete anything else in the file.
    3. 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> -->
    4. Double check that you copied and pasted it correctly - it is easy to make a mistake.
    5. Save the file and exit.
  3. Edit the workflow.properties.orig file that is located in the SASHOME\SASWebInfrastructurePlatform\9.3\Configurable\wars\sas.workflow\WEB-INF\ directory.
    1. 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>
    2. 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>
    3. Save the file and exit.
  4. 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.
  5. Start the SAS Deployment Manager.
    1. Select Rebuild Web Applications.
    2. 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 ---------------------
  6. Redeploy the SAS Web Infrastructure Platform web application and restart your web application server.


Operating System and Release Information

Product FamilyProductSystemProduct ReleaseSAS Release
ReportedFixed*ReportedFixed*
SAS SystemSAS Enterprise GRCMicrosoft® Windows® for x644.3
Microsoft Windows 8 Pro4.3
Microsoft Windows 95/984.3
Microsoft Windows 2000 Advanced Server4.3
Microsoft Windows 2000 Datacenter Server4.3
Microsoft Windows 2000 Server4.3
Microsoft Windows 2000 Professional4.3
Microsoft Windows NT Workstation4.3
Microsoft Windows Server 2003 Datacenter Edition4.3
Microsoft Windows Server 2003 Enterprise Edition4.3
Microsoft Windows Server 2003 Standard Edition4.3
Microsoft Windows Server 2003 for x644.3
Microsoft Windows Server 20084.3
Microsoft Windows Server 2008 for x644.3
Microsoft Windows Server 20124.3
Microsoft Windows XP Professional4.3
Windows 7 Enterprise 32 bit4.3
Windows 7 Enterprise x644.3
Windows 7 Home Premium 32 bit4.3
Windows 7 Home Premium x644.3
Windows 7 Professional 32 bit4.3
Windows 7 Professional x644.3
Windows 7 Ultimate 32 bit4.3
Windows 7 Ultimate x644.3
Windows Millennium Edition (Me)4.3
Windows Vista4.3
Windows Vista for x644.3
64-bit Enabled AIX4.3
64-bit Enabled Solaris4.3
HP-UX IPF4.3
Linux for x644.3
Solaris for x644.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.