我有一個與另一臺機器通信的服務。由於它是一個簡單的Controller方法,當我的控制器正在與其他服務器進行通信時,Grails會自動從池中獲取數據庫連接。我想阻止它這樣做,並在我準備好時手動打開數據庫連接,以便在長時間內不會像網絡呼叫一樣吸引連接。如何防止Grails通過控制器方法自動獲取池中的連接?阻止Grails在Controller方法中打開與數據庫的連接
回答
當你創建一個控制器,它有它的Transactional
註釋,是這樣的:
@Transactional(readOnly=true)
class FooController { ..
如果刪除註釋(以及任何方法級別的註解),那麼Grails將不再連接到數據庫開始交易。
打開會話在View不應該發揮作用,因爲我們使用了延遲初始化的方法獲得與OSIV連接
注意我的回答上述假定您使用的Grails(或2.3.x版本以上)最新的版本
更新
MongoDB的,你可以自動禁用由grails-app/conf/spring/resources.groovy
定義以下豆(它覆蓋缺省值)的所有控制器的連接:
mongoPersistenceInterceptor(org.codehaus.groovy.grails.support.NullPersistentContextInterceptor)
但是沒有辦法,此刻
如果版本低於2.3.x,該怎麼辦?只是好奇。 –
如果在下面,控制器沒有默認只讀事務,所以不會啓動事務,也不會連接到數據庫。 –
所以我現在沒有任何控制器的@Transactional(我使用2.3,但是我從2.2升級)。我也使用MongoDB而不是Hibernate。這對MongoDB插件仍然有效嗎?我可以讓它停止爲我自動打開連接嗎? – chubbsondubs
- 1. 無法在SQL 2008中打開與數據庫的SQL連接
- 2. 用於阻止外部數據庫連接的解決方法
- 3. 無法打開數據庫連接
- 4. 如何在C#中打開與Microsoft Access數據庫的連接
- 5. Hibernate JDBCConnection無法打開與H2數據庫的連接錯誤
- 6. 已升級.net webapp無法打開與數據庫的連接
- 7. Grails 3.0連接數據庫
- 8. 檢測打開的數據庫連接
- 9. 關閉打開的數據庫連接?
- 10. 檢測打開的數據庫連接
- 11. 阻止與SQL數據庫的第三方連接(來自config.php文件)
- 12. 數據庫連接中止
- 13. 在grails中與數據庫的動態連接
- 14. 關閉和打開數據庫連接?
- 15. BSAF檔位打開數據庫連接
- 16. 保持數據庫連接打開?
- 17. NHibernate ISessionFactory.OpenSession()不打開數據庫連接
- 18. Qt:數據庫連接不會打開
- 19. log4net打開數據庫連接
- 20. 斷開與數據庫的連接
- 21. 無法連接Grails 3.3與MySQL數據庫
- 22. 在Java中與靜態方法共享數據庫連接
- 23. SQL Azure的連接失敗嘗試打開與SQL數據庫連接時
- 24. 與數據庫斷開連接時意外停止
- 25. 連接中的Android阻止()
- 26. Zend阻止具體操作上的數據庫連接
- 27. 如何檢測與Hibernate/JPA打開數據庫連接?
- 28. 數據庫與FMDB打開連接時出錯
- 29. Jboss XA與Oracle的數據源無法打開連接
- 30. 從NodeJs連接SQL數據庫 - ConnectionError:連接尚未打開
嗯禁止在每個控制器的基礎上,我懷疑這是因爲,鑑於辦法的公開會議,其中一個請求立即獲得使用Hibernate Session的生命。我不確定你是否可以禁用該控制器中的特定控制器甚至是方法。一個非常好的問題。 –