首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Windows中创建文件锁定FileTable

在Windows中创建文件锁定FileTable
EN

Stack Overflow用户
提问于 2014-09-16 08:57:18
回答 1查看 882关注 0票数 4

我刚刚开始在Server 2012中使用FileTables。我已经在远程服务器上设置了所有的东西,并且没有任何问题。非事务性文件插入等工作非常好。

但是,当我试图在Windows的FileTable共享目录中创建一个新的文本文件(右键单击->新建->文本文档)时,它完全冻结了。现在,当我在FileTable上执行查询时,查询就会冻结,而没有得到响应。因此,我想我来自文件系统的非事务性插入已经在FileTable上设置了一个锁。

无论如何,这是我迄今为止尝试过的(但没有成功):

  • 杀死正在进行的filestream句柄(http://msdn.microsoft.com/en-us/library/gg492061.aspx#BasicsKilling),但没有结果。死刑就被冻结了。 -删除数据库EXEC sp_kill_filestream_non_transacted_handles上的所有句柄;GO -杀死可文件执行的sp_kill_filestream_non_transacted_handles @table_name =‘dbo.myFileTable’上的句柄;
  • 让数据库离线。这将导致错误消息: Msg 5061,级别16,状态1,第2行失败,因为无法将锁放在数据库'FOO‘上。请稍后再试。
  • 删除数据库。这将导致错误消息: Msg 3702、级别16、状态4、第2行不能删除数据库"FOO“,因为它目前正在使用中。
  • 杀死正在进行的会议(?)在我的数据库: EXEC sp_who2杀灭

如前所述,我无法与我的FileTable进行交易和非交易交互.正如你所看到的,我甚至不能丢弃我自己的数据库。

对造成这种情况的原因有什么建议吗?我应该小心使用FileTables吗?对如何解决这个问题有什么建议吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-09-16 12:56:11

通过重新启动Server实例来解决这个问题。这是最后的手段,因为它是一个远程实例,由我的公司使用。

我相信这个问题是由于我直接在目录中创建了一个文件而造成的。在文档(http://msdn.microsoft.com/en-us/library/gg492083.aspx#HowToLoadNew)中说明如下:

可用于将文件加载到FileTable中的方法包括:

  • 文件从源文件夹拖放到Windows中的新FileTable文件夹中。
  • 从命令提示符或批处理文件或脚本中使用命令行选项,如MOVE、COPY、XCOPY或ROBOCOPY
  • 用C#或VisualBasic.NET编写自定义应用程序,该应用程序使用System.IO命名空间中的方法来移动或复制文件。

但是,没有说明创建文件可能会导致问题。不幸的是,在我的案件中确实如此。希望这个答案能帮助将来有类似问题的人。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25864542

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档