2010-05-25 50 views
0

Java的手冊說:如何鎖定tomcat web應用程序中的文件?

由單一的Java虛擬機上的特定文件持有的鎖不重疊。重疊方法可用於測試候選鎖定範圍是否與現有鎖定重疊。

我想,如果我鎖定一個文件在tomcat web應用程序中,我不能確定每個調用這個應用程序是由不同的JVM完成的,可以嗎?那麼我怎樣才能以可靠的方式鎖定我的tomcat應用程序中的文件呢?

回答

0

我實際上遇到了完全相反的問題 - 我的servlet導致文件被鎖定,在上下文重新加載時無法清除。當然,原因是因爲我打開了InputStreams/BufferedReaders而沒有關閉它們。對你來說,以這種方式打開文件可能是一個相當低技術含量的解決方案,因爲它會導致O/S級鎖定,這可能是你想要的。

+0

打開FileInputStreams不會自動創建文件鎖定,還是我錯了? 如果我在O/S級創建鎖,這意味着鎖可能處於進程級別,並且具有多個線程的一個應用程序仍可以同時訪問該文件。我可以指望tomcat在不同的進程中執行每個Web請求,而不是使用線程嗎? – yankee 2010-05-25 13:32:10

+0

你爲什麼不嘗試一下? – 2010-05-25 18:23:44

+0

因爲即使我發現我的操作系統鎖定在線程級別而不是進程級別上,我不知道這是否適用於不同的操作系統。即使我發現tomcat在我的設置中使用了進程,如果我將應用程序部署到不同的服務器,我怎麼知道這是否仍然是真的?這有點含糊不清,這就是爲什麼我想閱讀一個規範說明,或者在Tomcat Web應用程序中以可靠的便攜方式鎖定文件的指南。 – yankee 2010-05-26 11:00:05

相關問題