Overview:
When a new version of Projectwise is released, there are often updates to the database schema. This requires the user to run the DMSCONV.exe when upgrading to the latest version.
This document will describe steps for logging and troubleshooting errors if the database conversion (DMSCONV) fails.
Products and versions:
- Projectwise Design Integration Server, all versions.
- Projectwise Administrator, all versions
Pre-requisites \ Assumptions \ Preliminary setup:
- Before upgrading, it is best practice to setup a test environment to run through the database conversion (DMSCONV).
- Items needed
- Windows server compatible with the version of Projectwise you are upgrading
- Projectwise Integration and Administrator installed on the test machine
- A copy of your production database restored to a compatible database server with the version of Projectwise you are upgrading.
- Administrative login to the Integration test server.
- Access to the SQL or Oracle Server managers for viewing tables if needed.
- Knowledge and experience
- DOS commands
- setup an ODBC connection from integration server to database server.
- Use of SQL or Oracle Management interface
- Reading log files and understanding SQL statements
Steps
Configure logging:
The DMSCONV utility can log the actions it takes when converting the database. The resulting log can help when troubleshooting issues.
- Go to C:\Program Files\Bentley\ProjectWise\bin and open dmsconv.log.xml in notepad.
- Set the following priority values to ALL, then save and exit the file.
<category name="pwise.database.schema"> <priority value="ALL"/>
<root> <priority value="ALL" />
Running DMSCONV
Detailed steps for running the dmsconv utility are in the Projectwise Implementation guide
Review the Log
- After running the DMSCONV utility go to the C:\Users\Public\Bentley\Logs and open the dmsconv.log file in notepad or your favorite ascii text editor.
- Scroll to the bottom of the file to see the status of the dmsconv and any error messages.
Important Note:
- Once dmsconv runs and fails, you must reimport a fresh backup and start over.
Known issues
- Dmsconv fails because of a custom index or trigger.
- The error message in the log may not provide real information other than it failed when processing a certain table. Look for the line above the error message to see what table it was processing
- Example: In this case the name of the table was “Drawings”.
2020-03-10 16:19:57,779 INFO pwise.database - Executing statement 'update Drawings set a_createtime = case when (a_createtime>=? and a_createtime<?) ..
2020-03-10 16:20:00,620 ERROR pwise.database.odbc - Error 512 "ODBC ERROR: 21000: [Microsoft][ODBC SQL Server Driver][SQL Server]Subquery returned more than 1 value….
When we checked the ‘Drawings’ table in SQL manager, the table had a custom trigger. Once removed, the dmsconv completed with no errors.
- Remove any custom indexes or triggers before running dmsconv. The custom indexes and triggers can be added back to the database once the database has been successfully converted.
- Conversion on a big database may fail due to proprietary ODBC driver issues.
- In case you encounter error messages like these in the dmsconv.log:
“2020-02-24 08:16:29,969 ERROR pwise.database.odbc - Error 3971 "ODBC ERROR: 42000: [Microsoft][ODBC Driver 13 for SQL Server][SQL Server]The server failed to resume the transaction. Desc:3400000021." reported at func: dsqlOdbc_execDirect line: 113” - you should try other supported ODBC drivers.
- DMSCONV may encounter an error and fail based on the database file compatibility level
- This issue may occur in case when the original database file was created in an older MS SQL server and restored on a newer one. You may encounter error like this:
“2020-02-18 03:22:44,108 ERROR pwise.database.odbc - Error 241 "ODBC ERROR: 22007: [Microsoft][ODBC SQL Server Driver][SQL Server]Conversion failed when converting date and/or time from character string." reported at func: dsqlOdbc_execDirect line: 1138”.
In the following article [https://docs.microsoft.com/] it is described how to check the compatibility level of the database file and how to adjust it. Usually it needs to be changed to a higher value.
- Dmsconv log is showing the following message: Unable to extend segment
- 2020-02-13 10:08:34,437 ERROR pwise.database.odbc - Error 30036 "ODBC ERROR: HY000: [Oracle][ODBC][Ora]ORA-30036: unable to extend segment by 8 in undo tablespace 'UNDO'" reported at func: dsqlOdbc_execDirect line: 1138
- This error indicates that the database tables are restricted from growth.
- When doing a dmsconv, ProjectWise is creating temp tables to move data back and forth and on large databases it can run out of space if the table space\database or tables are restricted in growth. I would suggest (just while doing the dmsconv) that you allow the table space\database to grow without restriction, and then when completed you can change it back to whatever was previously set.
See Also