我們的項目使用Business Objects進行報告。我們的java webapps發佈報告通過我們設置的Web服務來處理我們想要啓動它們的業務規則。工作很好...只有一個皺紋。Crystal Report java庫,登錄永久掛起
BO似乎是大量不可靠的。在夜間定時重新啓動之後,這個事情經常發生或者無法啓動。我們的行動團隊已經習慣了這種生活的事實。
但是這影響到我在java團隊中的部分是我們的webservice嘗試登錄到BO,而不是像我們應該那樣計時或錯誤,BO java庫永遠掛起。顯然它是連接到一個半開始的BO,並且永不放棄。
環顧互聯網,看起來其他人都經歷過這種情況,但我看到的所有內容都沒有建議如何在登錄過程中設置超時,以便如果失敗,Web服務不會永遠鎖定(這反過來會導致我們的應用服務器變得不穩定)。
連接非常簡單:
session = CrystalEnterprise.getSessionMgr().logon(boUserName, boPassword, boServerName, boSecurityType);
所有我正在尋找一些方法來確保如果BO死了,我的web服務不會因此死亡。超時...一種方法可以可靠地檢測BO在嘗試登錄之前是否未開始健康。我們的BO「專家」似乎並不認爲他們可以對BO的不穩定性做任何事情,他們對Java庫的瞭解甚少。
想法?
謝謝,線程的想法是一個很好的,我們一定會考慮這一點。我們知道,當我們的夜間數據庫備份運行時間過長時,會出現不穩定情況,BO會對此進行嘲諷。我們的操作人員似乎只是按照計劃強制重啓。他們似乎對追求超越這一點並不感興趣。從我們的應用程序中獲得更優雅的失敗,這樣包含的感染就像我可以強制的解決方案一樣多。 – user1187719