2012-06-19 114 views
0

在我的基於java的應用程序中,我需要一個工作來從一組表中讀取數據並將它們插入到另一個表中。在我的第一個設計中,我創建了一個oracle作業並安排它頻繁地執行該過程。 不幸的是,當作業失敗時,沒有足夠的關於失敗根本原因的信息。此外。爲許多系統實例部署系統使工作變得更加困難。 作爲一項替代性工作,我試圖將這項工作轉移到我的應用程序服務器中,作爲Weblogic工作。這是不是一個好的設計?應用程序服務器作業或數據庫作業?

+1

'這取決於'。您已經在現有方法中遇到了一些問題。它並不是說你不會用不同的方法解決問題。例如,在通過應用程序服務器讀取/寫入數據時,您是否正在消耗可能在其他地方更好使用的CPU週期(例如,面向客戶的過程)。 – radimpe

+0

@radimpe:你說得對。你有什麼建議? – hsalimi

+0

我已經有時使用過它們。作爲一名「非數據庫開發人員」,我偏向於將事物轉移到應用程序中,但重點絕對是分散關注點。例如,如果您運行的是網站,則不應讓預定作業「歸檔訂單」干擾嘗試購買東西的用戶的正常操作。根據您的可用資源,這可能會非常棘手。我可以說,我還發現數據庫作業令人沮喪地難以調試 - 這是我喜歡應用程序選項的另一個原因,儘管數據庫有它的位置。 – radimpe

回答

1

已經動了我的作業到應用服務器,我所面臨的以下優點:

  1. 跟蹤作業失敗更容易。
  2. 非DBA用戶可以輕鬆讀取應用程序服務器日誌並修復問題。 (許多用戶無法訪問生產線上的數據庫。)
  3. 作業的邏輯已從我的數據訪問層移至業務邏輯層,並且由於設計模式而更易於接受。