1. Comparison method violates its general contract
問題現象:
儀表板中點選組件聯動的時候,出現報錯資訊:Comparison method violates its general contract。
原因分析:
該聯動報錯是由於升級jar後,jdk裏面一個排序不相容,導致產生上述的java排序異常報錯。
解決方案:
進入FineBI目錄%FineBI%/bin下,開啟 finebi.vmoptions 檔案,在其中加上如下參數。
Djava.util.Arrays.useLegacyMergeSort=true
儲存並重啟FineBI即可。
2. 平台卡頓甚至無法登入
問題現象:
平台卡頓,進入%FineBI%/logs下查看 fanruan.log 日誌,where查詢中過濾條件數量暴增。
原因分析:
進行表頭過濾並且和其他組件聯動,導致 where 查詢中過濾條件數量暴增。超長過濾的請求阻擋了引擎。
解決方案:
使用 FINE_CONF_ENTITY視覺化配置 插件增加 SystemOptimizationConfig.queryConditionCountRestriction 參數。
參數含義:查詢時過濾條件的限制數量,對於「where 城市 = "無錫" or (城市 = "南京" and 城市 = "蘇州")」來說,其過濾條件就是3個
預設值:null (即不作限制)
建議值:30。也可更小,這取決於你的過濾場景。
參數效果:對於過濾條件數量超出限制的查詢直接打斷,並報錯:condition count out of restriction: xxxx