2015-05-29 80 views
0

我想通過使用xdmp:spawn中的靜態檢查選項來測試我所有的庫和主項目的模塊。我正在使用文件系統模塊數據庫,並且這適用於少量文件。 MarkLogic在加載每個模塊時消耗內存,直到該框消耗所有可用內存並導致MarkLogic在內存耗盡時崩潰。Marklogic 7.x模塊緩存清除

我發現有一個函數調用xdmp:在MarkLogic 8模塊,緩存清除(),但相同的功能似乎並沒有在MarkLogic版本存在7

什麼是最好的方式清除模塊在加載時使用的緩存?或者有沒有辦法讓模塊不使用緩存?

+0

聽起來很奇怪。你有沒有嘗試xdmp:eval而不是xdmp:spawn? – grtjn

+0

xdmp:spawn是唯一一個允許進行靜態檢查的程序。 – spig

+0

不是根據文檔:http://docs.marklogic.com/xdmp:eval – grtjn

回答

3

ML7沒有緩存清除功能,但是您可以通過更新模塊數據庫中的某些內容(然後執行某些想要緩存模塊的查詢)來強制清除模塊緩存。

我很驚訝你的模塊緩存以這種方式導致你的問題。你有幾個模塊?也許有一種方法可以對代碼進行分區,以便在幾個庫模塊中共享更多的代碼?

+0

感謝您的回覆。你可以通過更新文件系統上的模塊來清除緩存嗎?這主要是我在本地測試並遇到問題的地方。我正在測試大約225個文件。涉及很多遺留代碼,但我不想破壞它。 – spig

1

如果您使用的是文件系統模塊數據庫而不是真實數據庫,則可以通過更新模式數據庫中的某些內容來強制清除模塊高速緩存。只更新文件系統上的模塊只會使該模塊無效,但通常不會清除緩存。