2016-09-23 82 views
4

如果使用-w命令行參數設置最大內存,並且分配太多內存的錯誤查詢被觸發,KDB將以「-w abort」錯誤退出。防止由於中止錯誤導致KDB +數據庫死亡

是否有可能讓KDB停止執行該查詢並且不會自行終止。

至少有一個回調函數,kdb在調用自己之前會調用它?

感謝

+2

我不相信有辦法把它不會中止。不幸的是還沒有回電。 – terrylynch

回答

3

沒有爲不幸的是處理此錯誤回調,也不可能使用保護評估陷阱-w aborthttp://code.kx.com/q/ref/errors/#trap

/process 1 (setup workspace/callbacks) 
>q -w 1000 -p 4000 -e 1 
q)tab:([]sym:30000000?`3;size:30000000?10f;time:30000000?.z.t) 
q).z.pg:{0N!(`pg;x);@[value;x;(::)]} 
q).z.exit:{'stop} 
q).z.pc:{'stop} 

/process 2 (issue sync request) 
>q 
q)(`::4000)"select from tab" 
'close 

/process 1 (output) 
q)(`pg;"select from tab") 
-w abort 

相反,您可以嘗試防止此錯誤。一種方法是在執行查詢之前定義權限並驗證每個用戶請求

請看下面的白色紙的詳細信息:
http://www.firstderivatives.com/downloads/q_for_gods_july_2013.pdf

相關問題