【问题标题】:Whats the best paradigm or design pattern for exception handling in a mission critical DB driven web application?在关键任务 DB 驱动的 Web 应用程序中,用于异常处理的最佳范例或设计模式是什么?
【发布时间】:2011-08-08 19:55:53
【问题描述】:

我想设计一个防弹、容错、数据库驱动的 Web 应用程序,并且想知道如何构建它。

该系统将有一个 asp.net UI、Web 服务中间层和 SQL2005 后端。 UI 和服务将使用 JSON 调用进行通信。

我想知道如何确保交易被提交,如果没有任何错误冒泡并被记录下来。理想情况下,每隔 5 分钟重试几次操作,就像电子邮件应用程序一样。

我计划在 SQL 中使用 try catch 块,并且想知道 SQL 存储过程和调用它们的服务之间的接口(或合同,如果你愿意的话)会是什么样子。该接口将扮演 2 个角色,一个是传递参数以使 proc 运行并返回预期结果。接下来是 proc 返回错误信息。可能是错误号和错误消息之类的东西。

我的困境是如何智能地构建它,以便服务期望并相应地响应从 procs 返回的数据和错误信息,并相应地处理每一个?

是否有这样的框架,因为它看起来很样板?

【问题讨论】:

    标签: asp.net sql-server sql-server-2005 error-handling


    【解决方案1】:

    您可以考虑研究 SQL Server Service Broker:

    http://msdn.microsoft.com/en-us/library/ms345108%28v=sql.90%29.aspx

    Service Broker 的独特功能 其深度数据库集成使 它是构建一个理想的平台 新型松散耦合服务 用于数据库应用程序。 服务 Broker 不仅带来了异步, 将消息排队发送到数据库 应用程序,但显着扩展 最先进的可靠技术 消息。

    【讨论】:

    • 服务代理有哪些缺点?
    • 我会说缺点是复杂性和学习曲线。对于您正在尝试做的事情来说,这可能是矫枉过正......但如果与数据库的交互是关键任务,并且您希望保证“按顺序”将命令“准确地一次”传递到您的数据库,那么它可能会为您节省一些如果您尝试推出自己的解决方案,会让人头疼。
    猜你喜欢
    • 1970-01-01
    • 2022-06-15
    • 2019-06-21
    • 1970-01-01
    • 2012-08-08
    • 2010-11-05
    • 1970-01-01
    • 2017-01-14
    • 1970-01-01
    相关资源
    最近更新 更多