2015-11-18 47 views
0

我在我們的應用程序中使用了第三方(地址驗證)WebService。 WS的許可只包含一定數量的電話,超過我們付費的電話費用。我試圖跟蹤應用程序中的使用情況,因此我們可以在用戶超過之前警告用戶。有點像Web服務的熱門計數器。在Java中跟蹤webservice的使用情況

我目前在(控制器)類中使用一個靜態變量來跟蹤它。這會起作用,但是隻有在服務器重新啓動之前,它纔會重新設置爲0。

有沒有辦法讓計數器在重新啓動時運行?我看到了一些關於序列化靜態變量的建議。這是正確的方法嗎?或者每次發出請求時都應該讀取/寫入文件/數據庫表(聲音成本高昂)。

我的webservice客戶端將運行在舊的Sybase EAServer(基於Apache Tomcat構建)中。所以,我只能使用Java 1.4。

感謝您的任何意見或建議。

回答

2

我會去:每次WS呼叫,更新數據庫上的計數器。

如果您有許多用戶訪問WS客戶端,並且他們都寫入簡單的文本文件,您將遇到併發訪問該文件的麻煩。

如果您嘗試使用某些內存架構和您的應用程序。崩潰你將失去計數信息。

因此使用數據庫。

+0

謝謝@Pedro和其他回覆的用戶(不知何故回覆消失)。我將採用數據庫方法,因爲客戶是多種多樣的 - 從PowerBuilder到JSP到Coldfusion,如果我需要在那裏檢查和使用計數器,DB方法會更好。 – SamV