2014-09-16 4 views
2

Я только что начал использовать FileTables в SQL Server 2012. Я настроил все на удаленном сервере и получил все, что происходит, без каких-либо проблем. Вложения не транзакционных файлов и т. Д. Работали абсолютно нормально.Создать файл в Windows Explorer lock FileTable

Однако, когда я попытался создать новый текстовый файл в папке общего доступа FileTable в Проводнике Windows (щелкните правой кнопкой мыши -> Новый -> Текстовый документ), он полностью застыл. Теперь, когда я выполняю запросы в FileTable, запросы просто замерзают, и я не получаю ответа. Поэтому я решил, что моя не транзакционная вставка из файловой системы заблокировала FileTable.

Во всяком случае, это то, что я пытался до сих пор (без успеха):

  • убийства продолжаются FILESTREAM ручка (http://msdn.microsoft.com/en-us/library/gg492061.aspx#BasicsKilling) без каких-либо результатов. Казни просто замерзают.

    -- Kill all handles on database 
    EXEC sp_kill_filestream_non_transacted_handles; 
    GO 
    
    -- Kill handles on filetable 
    EXEC sp_kill_filestream_non_transacted_handles @table_name = 'dbo.MyFileTable'; 
    GO 
    
    -- Kill single handle 
    EXEC sp_kill_filestream_non_transacted_handles @handle_id = <handle id>; 
    GO 
    
  • Возьмите базу данных в автономном режиме. В результате появляется сообщение об ошибке:

    Msg 5061, Level 16, State 1, Line 2 
    ALTER DATABASE failed because a lock could not be placed on database 'FOO'. Try again later. 
    
  • База данных о выбросах. Это приводит к сообщению об ошибке:

    Msg 3702, Level 16, State 4, Line 2 
    Cannot drop database "FOO" because it is currently in use. 
    
  • Убей текущих сессий на моей базе данных (?):

    EXEC sp_who2 
    KILL <SPID> 
    

Как уже упоминалось, я не могу для связки и транзакциями и Non-транзакционно с моей FileTable. Как вы можете видеть, я даже не могу отказаться от своей собственной базы данных.

Любые предложения в том, что могло вызвать это? Должен ли я быть осторожным с использованием FileTables? Любые предложения о том, как это решить?

ответ

1

Решил его перезапустить экземпляр SQL Server. Это было последнее средство, потому что это удаленный экземпляр, который используется моей компанией.

Я считаю, что эта проблема была вызвана тем, что i создал файл непосредственно в моем каталоге FileTable. В документации (http://msdn.microsoft.com/en-us/library/gg492083.aspx#HowToLoadNew) говорится следующее:

методы, которые можно использовать для загрузки файлов в FileTable включают следующее:

  • Перетащите файлы из исходные папки в новую папку FileTable в проводнике Windows.

  • параметры командной строки Использование команд, таких как перемещение, копирование, XCOPY или ROBOCOPY из командной строки или в пакетном файла или сценария.

  • Напишите собственное приложение в C# или Visual Basic.NET, которое использует методы из пространства имен System.IO в , переместите или скопируйте файлы.

Однако не указано, что создание файлов может вызвать проблемы. К сожалению, это произошло в моем случае. Надеюсь, этот ответ может помочь людям с подобными проблемами в будущем.