我有一個J2EE Web應用程序,用於上傳文件,然後由數據庫過程處理。因爲我們不希望Web應用程序必須等待數據庫過程完成,它將在另一個線程中執行。應該通過ServiceLocator查找數據源的jndi名稱嗎?
在獨立線程中運行的進程需要獲取並關閉自己的連接。 Web應用程序通常使用ServiceLocator查找數據源jndi名稱,該ServiceLocator從應用程序上下文中查找它(jndi名稱的查找鍵被定義爲類常量),但對於使用ServiceLocator查找jndi名稱的單獨線程失敗。爲了解決這個問題,我們使用jndi名稱作爲類常量,以便線程可以直接查找數據源。
這意味着對數據源的JNDI名稱現在是固定的應用程序,我們可以簡單地通過修改web.xml不再部署在同一個容器,但不同的數據源相同的應用程序。
什麼是行業最佳實踐? jndi的名字應該是可配置的還是可以修復它的應用程序?是否有人實現了一個可配置的數據源jndi名稱解決方案,它既可以在web應用程序中使用,也可以在容器中的其他線程中使用?