Файл SSMA ProtectedStorage.ssma, используемый другим процессом
Я получаю повторяющуюся ошибку при попытке создать защищенный файл хранилища для SSMA для Oracle версии 6.0.1. Я сделал различные попытки; ничего не работает! SSMA настаивает на записи в каталог перемещаемого профиля, и файл, в который он записывает, ВСЕГДА используется. Даже если я перезагружаюсь, сообщается, что он "используется". Даже если я выключаю и перезапускаю, он, как сообщается, используется. Даже когда я использую свой домашний компьютер (который настроен с локальным профилем и в котором нет места для роуминга), приложение записывает в перемещаемый профиль, и файл, как сообщается, используется. То же самое с SSMA 5.3. Я также попытался запустить специальную командную оболочку с тем же результатом. То же самое и с версией сервера 2012 года. Я также попытался использовать жестко закодированные значения и пропустить файл переменной.
Никто больше не сообщает об этой проблеме. Кто-нибудь знает, что я делаю не так или как я могу обойти эту проблему?
Вот команда и текст ошибки:
C:\Windows\System32>SSMAforORacleConsole.exe -securepassword -add DEV -s "y:\dba\projects\OracleToSQLServerMigration\SSMAProjects\DEV_Migration\command-config\DataMigrationDEV.xml" -v y:\dba\projects\OracleToSQLServerMigration\SSMAProjects\DEV_Migration\command-config\VariableValueFileSample - DEV.xml"
[5/19/2016 10:32:33 AM] INPUT Enter password for server id 'DEV': ****
[5/19/2016 10:32:36 AM] INPUT Re-enter password for server id 'DEV': ****
[5/19/2016 10:32:38 AM] FATALERR Unexpected error during addition of servers to protected storage
[5/19/2016 10:32:38 AM] **NESTED The process cannot access the file 'C:\Users\amorris\AppData\Roaming\Microsoft SQL Server Migration Assistant\Oracle\ProtectedStorage.ssma' because it is being used by another process.**
Вот файл подключения, DataMigrationDEV.xml (отредактированный для удаления информации о сервере):
<?xml version="1.0" encoding="UTF-8"?>
-<ssma-script-file xsi:noNamespaceSchemaLocation="..\Schemas\O2SSConsoleScriptSchema.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
-<config>
-<output-providers>
<data-migration-connection target-server="AAA_DEV" source-server="DEV"/>
<log-verbosity level="debug"/>
</output-providers>
</config>
-<servers>
-<sql-server name="AAA_DEV">
-<windows-authentication>
<server value="$SQLServerName$"/>
<database value="$SQLServerDb$"/>
<encrypt value="true"/>
<trust-server-certificate value="true"/>
</windows-authentication>
</sql-server>
-<oracle name="DEV">
-<tns-name-mode>
<connection-provider value="Oracle Client Provider"/>
<service-name value="$OracleInstance$"/>
<user-id value="$OracleUserName$"/>
</tns-name-mode>
</oracle>
</servers>
-<script-commands>
<connect-source-database server="DEV"/>
<connect-target-database server="AAA_DEV"/>
<map-schema sql-server-schema="$SQLServerDb$.dbo" source- schema="$OracleSchemaName$"/>
<migrate-data verbose="true" report-errors="true" write-summary-report- to="$SummaryReports$" object-type="category" object-name="$OracleSchemaName$.Tables"/>
</script-commands>
</ssma-script-file>
Вот файл переменной (отредактированный для удаления идентифицирующей информации):
<?xml version="1.0" encoding="utf-8"?>
<!--
Variable value file for SSMA-v4.2 Console for Oracle adapted for AIMS.
Specified name and value attribute values are mandatory
Name values should begin and end with '$'
Use of this file is NOT mandatory
option -v[ariable]. See the documentation for SSMA-v4.2 Console for more information.
-->
<variables xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="..\Schemas\ConsoleScriptVariablesSchema.xsd">
<!--
********************************** MUST DO **************************************************
***** MUST replace occurrences of {<value>} with appropriate values wherever necessary *****
*********************************************************************************************
-->
<!--
***************************************************************************
***** The "working folder" {Working Folder Path} should exist *****
***** prior to console script execution *****
***************************************************************************
-->
<variable name="$WorkingFolder$" value="d:\app\OracleToSQLServerMigration\DEV_Migration\"/>
<variable-group name="OracleConnection">
<variable name="$OracleInstance$" value="DEV"/>
<variable name="$OracleUserName$" value="USERA"/>
<variable name="$OraclePassword$" value="{password}"/>
<variable name="$OracleSchemaName$" value="SCHEMAA"/>
</variable-group>
<variable-group name="SQLServerConnection">
<variable name="$SQLServerName$" value="dev.sample.edu\DEV"/>
<variable name="$SQLServerDb$" value="MigrationTest"/>
</variable-group>
<variable-group name="Report">
<variable name="$SummaryReports$" value="$WorkingFolder$"/>
<variable name="$AssessmentReportFolderName$" value="AssessmentReports"/>
<variable name="$AssessmentReports$" value="$WorkingFolder$\$AssessmentReportFolderName$"/>
<variable name="$RefreshDBFolder$" value="$WorkingFolder$"/>
<variable name="$ConvertARReportsFolder$" value="$WorkingFolder$\$AssessmentReportFolderName$"/>
<variable name="$SynchronizationReports$" value="$WorkingFolder$"/>
<variable name="$SaveScriptFolder$" value="$WorkingFolder$"/>
<variable name="$ConvertSQLReports$" value="$WorkingFolder$"/>
<!--
***************************************************************************
***** The folder {Folder where sql files are stored} needs to exists *****
***** and should contain the *.sql files that need to be converted *****
***** using convert-sql-statement command *****
***************************************************************************
-->
<variable name="$ConvertSqlSampleFiles$" value="$WorkingFolder$\ {Folder where sql files are stored}"/>
</variable-group>
<variable-group name="ProjectSpecs">
<variable name="$project_name$" value="DEV_Migration"/>
<variable name="$project_overwrite$" value="true"/>
<variable name="$project_type$" value="sql-server-2014"/>
<variable name="$project_folder$" value="$WorkingFolder$\$project_name$"/>
</variable-group>
</variables>
Я прошел через некоторые веб-страницы для файла, используемого другим процессом ошибок. Я просто не вижу, как файл может быть использован другим процессом. Это создается этим приложением! И повторение на всех серверах делает допустимую ошибку или любую ошибку разрешения сервера менее вероятной.
Есть идеи?
Спасибо, А.Л. Моррис