Oracle
使用 Java 儲存過程時的陷阱
最近我從事了一個項目,我認為可以通過使用Java 儲存過程(更準確地說是一些接收/發送電子郵件包)來解決。
一段時間後,我發現我公司的數據庫中 Java 類和 Java 儲存過程的數量很少。我問 DBA,他說禁止使用 Java 儲存過程,因為“它很容易使伺服器停機”。
如果有人可以解釋我,我會很高興:使用使用外部包的 Java 儲存過程真的很危險嗎?有什麼陷阱嗎?使用 Java 儲存過程不是一種常見的做法嗎?
編寫良好的 Java 儲存過程不太可能“關閉伺服器”,但是,Java 常式可能會對性能產生一些影響,因為呼叫它們意味著 Oracle 需要啟動 Java 虛擬機 (JVM) 程序,將控制權轉移給它,並等待 Java 程式碼終止。由於這仍在 SQL 事務的範圍內發生,並發性可能會受到影響。當 Java 用於同步執行一些依賴遠端資源的可能長時間執行的活動時尤其如此,例如發送和接收電子郵件。
如果可能,您可能希望避免使用 Java 儲存過程;考慮使用
UTL_MAIL
Oracle 內置包來處理電子郵件。