What are some unexpected challenges I may need to prepare for when I use the MartUpgrade utility to upgrade to r9 mart version?
1. Licenses? You need a r8 WorkGroup Edition license or a r9 WorkGroup Edition license. Those require a MAC ID from the machine running the MartUpgrade. If you have an r7 mart that you need to upgrade to r8 first, you will also need an r8 initializer license. You can request licenses using this web page, click HERE.
2. Exporting / Importing an older mart database (r7/r8)? For example, are you restoring your r7/r8 production source mart database to a different database on the same server or a different server? Adjustments need to be made (that is detailed in these two articles: SQL Server DBMS / Oracle DBMS )
3. Upgrading your r7 mart to r8 using MartUpgrade? Please open your r8 initializer license file using WordPad (the r8 licenses are usually stored here: C:\ProgramData\Application Data\CA\ERwin Data Modeler\8 ). Make sure that the line SN="Company Name" matches the line SN="Company Name" in your r8 WorkGroup Edition license. If they do
If they do not match, after upgrading r7 to r8, when you later go to connect to your source mart (now r8) using MartUpgrade, you would get the error that the test connection failed. The solution is to update the m7master.serialnumber field in the (now r8) source mart database to be the same company name as SN="Company Name" in your WorkGroup Edition license. You will need to make that change at the database level. Once the names match, then the source
Once the names match, then the source mart connection in the MartUpgrade should work. Another solution would be to order new r8 licenses with matching names before upgrading the r7 mart to r8. (You cannot change the licensing files using WordPad or Notepad. That would invalidate them.)
NOTE: r9 erwin does not use licenses on the mart like r7 mart did. As long as you have an r9 ERwin DM that is licensed as WorkGroup Edition, you will then be able to connect to any r9 mart on your company network.
4. Migrating source mart users?
- After the MartUpgrade is complete, you will need to manually set the email addresses of all the users and reset their passwords in the r9 mart. MartUpgrade does not migrate the user's passwords, they are left blank in the mart. MartUpgrade was not designed to retrieve the password from the source mart for security reasons. After MartUpgrade upgrades the users from the source mart to the r9 mart you must then open CA ERwin Mart Administrator and for each user, enter their email ID and reset the password.
Resetting the password resets the user's password to the default password that has been specified in the Mart Administrator | Settings.
- If you are working with ORACLE database, you must set a prerequisite on your Oracle DBMS in order to properly migrate your Windows domain users. The OS_AUTHENT_PREFIX parameter should be NULL in the Source Mart.
- If you are working with SQL SERVER database, these prerequisites must be in place in order to migrate the users successfully:
a) The source mart users must exist in both the database level security and the SQL Server level security.
b) The User Name that is typed into the MartUpgrade Source Mart Details must have the "securityadmin" or "sysadmin" server role
NOTE: a user that has only the public role can use MartUpgrade but cannot upgrade the users.
- If you are working with SQL SERVER database, these prerequisites must be in place in order to migrate the users successfully:
a) The source mart users must exist in both the database level security and the SQL Server level security.
b) The User Name that is typed into the MartUpgrade Source Mart Details must have the "securityadmin" or "sysadmin" server role
NOTE: a user that has only the public role can use MartUpgrade but cannot upgrade the users.
5. Locked models in the source mart? You need to unlock all the models in your source mart that you want to upgrade. Otherwise, those specific models will not upgrade. The log file SourceMartLogFile.txt in your working directory will mention those models after the upgrade. For example,
mmart://MYMARTNAME/MYLIBRARYNAME/MYMODELNAME
"System.Exception: Model Open failed from source mart.
04/09 16:00:04 MMAExceptionCode_e 125 FATAL: Error: could not obtain specified lock on model.
System.Runtime.InteropServices.COMException (0x8004083B): Persistence Units Component ! Failed to access a directory or a model with MYLIBRARYNAME/MYMODELNAME&ver=2823 path.
at SCAPI.PersistenceUnitsClass.Add(Object Locator, Object Disposition)
at SourceConfigure.Program.Main(String[] args) in W:\SourceConfigure\Program.cs:line 53
at MartUpgrade.ProcessModelsFromSourceMart.LoadModel(String sourcePath, String destPath) in W:\MartUpgrade\ProcessModelsFromSourceMart.cs:line 209
at MartUpgrade.ProcessModelsFromSourceMart.ProcessModels() in W:\MartUpgrade\ProcessModelsFromSourceMart.cs:line 94"
A solution to quickly unlock all the models in one shot would be to execute the following SQL in the source mart that will remove all the lock and session data. All mart users should first save all their model changes to the source mart, including offline models, and log out of the source mart before you do that. Also, please make sure that you have a recent backup of your source mart database before you execute the SQL as a precaution:
delete m7lock
delete m7session
delete m7access
commit
NOTE: some later marts do not include the m7access table. So if your m7access table is non-existent, don't worry about that.
6. Privileged Windows user? You need read/write privileges to the root of your C: drive on the machine where you run the MartUpgrade. Temporary log files are written to the root of the C: drive during the upgrade.
7. Open ports? The port 18170 needs to be open on the mart server host machine, network, and ERwin client machine. Also, ports 8009 & 8005 just need to be open on the mart server host machine.
8. 32-bit client software installed? To connect to the source r8 mart, the machine where the MartUpgrade runs will need to have the 32-bit database client software installed and configured to connect to that r8 mart.
NOTE: having 32-bit client software installed was a requirement for r7 and r8 ERwin to connect to those version marts.
9. Is your r9 mart set up and available? You will need to first install and set up your r9 mart server (web server) and database before you can move the models from the source mart to the target r9 mart.
10. The MartUpgrade could take some time to run. The MartUpgrade utility needs to open the model from the source mart, save that into the working directory on the local PC where it runs, upgrade that to r9 version, and then save that into the r9 mart. That could take some time depending upon the file sizes of your models and how many models and versions you are upgrading. If you have a lot of data to upgrade, be prepared to allow the MartUpgrade to run for several hours, perhaps even overnight. One customer who had 101 models, with 2,090 versions took 19 hours to complete their upgrade.
Here is a tip: if your r8 source mart resides on a Windows machine, consider running the MartUpgrade directly on that machine. r9 mart has much-improved performance opening models over a network and a WAN over the r8 and previous versions. The proximity of the r9 mart server is not as much of a factor. Saving to the r9 mart is fast, even if the r9 mart is located a WAN away. The proximity of the r8 mart to the MartUpgrade machine is a factor. If MartUpgrade runs from the r8 mart machine, or from a machine that is close by the r8 mart machine, that would eliminate any slowness that would occur due to opening r8 models over the network.
11. Failures reported in Status Window or the log files for saving models into the r9 mart (DestinationMartLogFile.txt or ModelStatus.csv) ?
For example,
mmart://MYMARTNAME/MYLIBRARYNAME/MYMODELNAME
"System.Exception: Model Save failed to Destination mart.
05/08 09:40:50 WARNING: A connection with the server could not be established.
System.Runtime.InteropServices.COMException (0x80040837): Application Component ! Mart connection failed.
at SCAPI.ApplicationClass.ConnectMMart(String sConnectionString, String sDispositionValue, Boolean bReconnect)
at DestinationConfigure.Program.Main(String[] args) in W:\DestinationConfigure\Program.cs:line 74
at MartUpgrade.ProcessModelsInDestinationMart.SaveModel(String sourcePath, String destPath, Boolean decSave) in W:\MartUpgrade\ProcessModelsInDestinationMart.cs:line 226
at MartUpgrade.ProcessModelsInDestinationMart.ProcessModels() in W:\MartUpgrade\ProcessModelsInDestinationMart.cs:line 110"
Please verify that those models really did not make it into the destination mart. The reason is that MartUpgrade keeps retrying several times to upgrade a model, and each time the model fails to save, that failed attempt is reported as an error. The default retry count is 5 times. It is quite possible the model actually successfully saved into the r9 mart on the 3rd, 4th, or 5th try.
You can check if the model made it into the r9 mart or not by using the Mart Administrator or connecting to the r9 mart using r9 ERwin. You can also run a Library/Model report in r9 ERwin to check if that library/model is listed in that mart. r8 mart also had the Library/Model report, so you could export the reports and compare them side-by-side for any differences.
12. Your model object counts could be different.
The reasons are that the object counts in ERwin, r7.x, r8.x, and r9.x also include also the deleted objects which are invisible within the model. So a model's object count size can be very high, yet, there could be only a few entities visible within that model. The deleted objects are stored for historical reasons to provide an audit trail.
When the r7.3.x model is upgraded to r8.x or later, the deleted invisible objects are then physically removed from the model. A 'purge' is done, similar to emptying the recycle bin (trash bin) on a PC. That is why the object counts reduced so dramatically when you upgraded your models from r7.x to r9.x.
The reason why the r9.x model object counts grew dramatically after opening the upgraded models and then saving back to the mart for the first time is that there are final conversions being made to the model the first time the models are opened and saved back to the mart.
14. Naming Standards. The MartUpgrade utility will not migrate any naming standards from your now r8 mart to your r9 mart.
UPDATE 1/21/2016: the MartUpgrade utility versions r9.6.1 and later provides a way to include the naming standards while upgrading. Please see this online help topic Scenario: Upgrading Mart Models › How to Upgrade Mart Models › Select Models, Upgrade Models with NSM or DSM files.
In r9 ERwin DM, the naming standards are now treated as a model object not as a mart level object, and neither as a file stored on a network or local drive.
One best practice solution is to use a template. Create a logical only model template and import your naming standards (*.nsm) into that template. Then save the template to your mart or network drive or other drive. Then bind that template to all of your models that you want to use that naming standard.
Set the models that are bound to the template to Synchronize on Model Load (File | Model Templates | Synchronize on Model Load). That Synchronize on Model Load option must be active in the other models in order for this to work. Then, any time a modeler opens a bound model, it will automatically be updated with the changes made to the naming standards in the template model. That method works regardless if your template and models are stored on a network drive, local drive, or inside a mart (ERwin DM Workgroup Edition repository).
15. Design Layering. If you have model sources in your models, MartUpgrade will not automatically adjust the model sources to the new models and pathways in the r9 mart. The model sources will still reflect the old mart, and they will need to be recreated. The solution is to open the child model and manually add a new model source to the model and delete the old model source.
Please note that Link Model Source has an advantage over Add Model Source in that unlike the Add Model Source and Sync with Model Source features, the Link Model Source feature does not automatically create new objects in the target model - it simply allows you to match and link existing objects in two models.
16. Remove forward slashes. The MartUpgrade utility cannot process libraries or models that have forward slashes (/) in their names. Please check your library paths and model names before you start your upgrade as you may need to rename them.
For a source mart (r7/r8 mart), the following query will list all the library names and their diagrams (no versions):
select distinct mo.containerid "library id",
mopp.objectname "library name",
mo.objectid "diagram id",
mn.objectname "diagram name"
from m7object mo,
m7library mn,
m7library mopp,
m7library mopp2,
m7objectproperty mopp1
where mo.classid = 1075838978
and mo.objectid = mn.objectid
and mo.objectid = mopp1.objectid
and mopp.objectid = mo.containerid
and mopp.objectname is not null
and mopp2.ObjectId = mo.objectid
and mopp2.IsArchive <> 1
order by 2,4;
This query will list all the library names,their diagrams and their versions:
select distinct mo.containerid "library id",
mopp.objectname "library name",
mo.objectid "diagram id",
mn.objectname "diagram name"
from m7object mo,
m7library mn,
m7library mopp,
m7library mopp2,
m7objectproperty mopp1
where mo.classid = 1075838978
and mo.objectid = mn.objectid
and mo.objectid = mopp1.objectid
and mopp.objectid = mo.containerid
and mopp.objectname is not null
and mopp2.ObjectId = mo.objectid
order by 2,4;
Comments
0 comments
Please sign in to leave a comment.