【问题标题】:Execute Long Stored Procedure via Web page通过网页执行长存储过程
【发布时间】:2011-09-24 21:27:29
【问题描述】:

我在 Weblogic 10.3.3 上运行了这个 Web 应用程序(使用 Struts 1.x),它读取文件并将数据输入到数据库(Oracle 11g DB)。而且通过这个 Web 应用程序,我可以在数据库中运行存储过程。现在的问题是在对存储过程进行了一些更改之后,它需要相当长的时间才能完成执行(25-40 分钟)。

现在运行存储过程的页面会加载,即使存储过程完成后(通过会话浏览器检查),页面仍然处于加载状态,有时会显示超时错误。

有没有办法让网页运行需要很长时间(60 分钟)才能完成的存储过程?我应该更改应用程序代码还是 Weblogic 设置?

感谢您的回复。

【问题讨论】:

    标签: oracle stored-procedures struts long-integer


    【解决方案1】:

    您永远不应该让用户等待。我上次处理的时候:

    1. 客户端(用户/浏览器)告诉服务器“启动程序”
    2. 服务器产生线程来启动程序。
    3. 服务器告诉客户端(用户/浏览器)“我现在完成了。稍后再回来。Mabee 我给你发电子邮件”
    4. 服务器完成过程。
    5. 服务器通过电子邮件向用户发送该过程已完成的电子邮件。
    6. 辅助线程终止。
    7. 服务器吃了罗宾爵士的吟游诗人,欢欣鼓舞。

    【讨论】:

    • 好吧,也许服务器从来没有吃过罗宾爵士的吟游诗人,但我假装他们吃过。
    • 在 Oracle 中,异步运行过程的简单方法是使用 DBMS_JOB 或 DBMS_SCHEDULER。
    猜你喜欢
    • 1970-01-01
    • 2011-12-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-15
    • 2012-11-01
    • 1970-01-01
    相关资源
    最近更新 更多