2012-01-08 23 views
6

Chúng tôi có một ứng dụng .NET chạy trên Windows Azure và sử dụng NHibernate để kết nối với cơ sở dữ liệu SQL Azure. Đôi khi nó là cần thiết để thêm retry logic để xử lý sự cố thoáng qua trong SQL Azure như mô tả ví dụ ở đây -Làm cách nào để thêm Thử lại Logic trong NHibernate để xử lý Lỗi Tạm thời trong SQL Azure?

http://social.technet.microsoft.com/wiki/contents/articles/retry-logic-for-transient-failures-in-sql-azure.aspx

Ai đó có thể chỉ cho tôi một con đường trong việc này với NHibernate? Lý tưởng nhất là tôi muốn làm điều này ở cấp độ NHibernate và không quấn tất cả các cuộc gọi duy nhất; Tôi đã có thể làm điều này cho ORM khác, .netTiers (http://nettiers.com) như tôi phác thảo ở đây -

http://blog.ehuna.org/2010/01/how_to_stop_getting_exceptions.html

tôi đã tìm kiếm và tìm thấy một số câu trả lời mà đề cập đến sử dụng một cài đặt tùy chỉnh giao diện IDbCommand -

Intercept SQL statements containing parameter values generated by NHibernate

Nhưng tôi không chắc chắn điều này làm việc với NHibernate 3.2 và tôi đang tìm một ví dụ rõ ràng tôi có thể sửa đổi.

Làm cách nào tôi có thể thực hiện NHibernate thử lại các cuộc gọi đến SQL Azure tự động? Hãy nói rằng 3 thử lại, với 100ms chờ đợi giữa mỗi - sau 3 lần thử lại, nếu vẫn thất bại, chúng ta nên ném ngoại lệ.

Trả lời

1

Có thể điều này có thể giúp bạn: http://www.objectreference.net/post/NHibernate-and-Execution-Plans.aspx. Ở đây có một lớp mà bạn có thể tải xuống và chơi với nó, với một số ghi đè.

Ngoài ra kiểm tra liên kết này cũng như: http://elliottjorgensen.com/nhibernate-api-ref/NHibernate.Driver/SqlClientDriver.html

Tôi hy vọng nó giúp trong anyway, tôi sẽ thông qua một tình huống tương tự.

Kính trọng,

Các vấn đề liên quan