了解MSMQ,控制ASP进程 (二)(转贴)

进程|控制

在运用程序中 MSMQ 可以有很多的运用,但是最普遍的运用是卸载另一个线程中的进程。 ( 例如和 MSMQ 在同一台机器上的 IIS) 或则是另外一台机器上的 IIS. 通过卸载这些阻塞的进程,就能够使得 ASP 程序能够继续运行下去了。

   一般来说,判断是否需要卸载任务进程要做两件事:

   一是根据该进程运行的时间。

   二是根据用户是否有回应(例如聊天室里面某个用户几个小时都没说话了)。

   例如:如果服务端的一个 Web 网页的任务花费了太长的时间 , 用户会得到一个网页超时的错误信息,我们一般可以通过重新单击刷新或者简单的放弃这个网页。但现在可以改变一下处理方式,例如进行后台处理,而不是简单的靠增加处理网页的时间方式。要知道,后台处理方式也能够提高网站性能的。

   MSMQ 还有一个功能,就是能够控制消息的 body 中特定的一个 COM 对象。只要该对象支持 IDispatch 和 IPersist (IPersistStream or IPersistStorage ) 接口就行。

   其中最常用的,能支持的两个就是 ADODB.Recordset ( 或 ADOR.Recordset ) 和 Word.Document 。在下面我们举一个处理 ADODB.Recordset 例子。

   例:如何处理 ADODB.Recordset :
Public Sub SendRecordsetInMessage()
Dim objQInfo As New MSMQ.MSMQQueueInfo
Dim objQSend As MSMQ.MSMQQueue
Dim objMessage As New MSMQ.MSMQMessage
Dim objRS As New ADOR.Recordset
Dim a As New MSMQQueue
With objRS
.CursorLocation = adUseClient
.Fields.Append "FN", adVarChar, 25
.Fields.Append "LN", adVarChar, 25
.Open
.AddNew
.Fields("FN") = "Chris"
.Fields("LN") = "Blexrud"
.Update
.AddNew
.Fields("FN") = "Shayna"
.Fields("LN") = "Blexrud"
.Update
End With
objQInfo.PathName = ".\test"
Set objQSend = objQInfo.Open(MQ_SEND_ACCESS, MQ_DENY_NONE)
objMessage.Label = "Recordset State!!!!"
objMessage.Body = objRS
objMessage.Send objQSend
objQSend.Close
Set objQInfo = Nothing
Set objQSend = Nothing
Set objMessage = Nothing
Set objRS = Nothing
End Sub

   了解了 MSMQ 么?我想现在对于 ASP 的进程死锁,你已经有了很好的解决方法了吧!希望大家能通过以上文字,真正了解 MSMQ ,及通过 MSMQ 控制 ASP 进程的方法!
 

时间: 2024-10-25 15:51:03

了解MSMQ,控制ASP进程 (二)(转贴)的相关文章

了解MSMQ,控制ASP进程

我们在使用 ASP 程序时常常会遇到这些情况:某个进程花费了过长的时间而导致在客户端过期.访问者已经放弃了对你的网站的访问而离开去了别的网站.或你的服务器上阻塞了大量的死队列时,系统出现 "Server is too busy" 错误信息. 当你在设计网站的过程中碰到这些问题时,一个有效的解决办法就是使用 Microsoft Message Queue (MSMQ) 来结束这些进程,让网站恢复正常! 到底 MSMQ 是个什么样的东西呢?我们下面作一下了解: 一. Microsoft M

了解MSMQ,控制ASP进程 (一)(转贴)

进程|控制 我们在使用 ASP 程序时常常会遇到这些情况:某个进程花费了过长的时间而导致在客户端过期.访问者已经放弃了对你的网站的访问而离开去了别的网站.或你的服务器上阻塞了大量的死队列时,系统出现 "Server is too busy" 错误信息. 当你在设计网站的过程中碰到这些问题时,一个有效的解决办法就是使用 Microsoft Message Queue (MSMQ) 来结束这些进程,让网站恢复正常! 到底 MSMQ 是个什么样的东西呢?我们下面作一下了解: 一. Micro

了解MSMQ,控制ASP进程 (一)

 我们在使用 ASP 程序时常常会遇到这些情况:某个进程花费了过长的时间而导致在客户端过期.访问者已经放弃了对你的网站的访问而离开去了别的网站.或你的服务器上阻塞了大量的死队列时,系统出现 "Server is too busy" 错误信息. 当你在设计网站的过程中碰到这些问题时,一个有效的解决办法就是使用 Microsoft Message Queue (MSMQ) 来结束这些进程,让网站恢复正常! 到底 MSMQ 是个什么样的东西呢?我们下面作一下了解: 一. Microsoft

[WCF权限控制]ASP.NET Roles授权[下篇]

为了让读者对基于ASP.ENT Roles授权方式有一个全面的认识,我们现在来做一个实例演示.在这个实例中,我们将采用不同的认证方式,包括Windows认证和证书认证(ASP.NET Membership + Roles为常见的组合方式,在这里就不多作演示).简单起见,我们依然沿用一贯的基于如下图所示的解决方案结构,并且依然采用声明式的授权.所以在服务操作方法Add上通过应用PrincipalPermissionAttribute特性指定其被授权的角色Administrators. 1: pub

如何控制其它进程应用程序的位置,窗口大小?

问题描述 如何控制其它进程应用程序的位置,窗口大小?由于项目需要,欲设计一个对话框程序,用来控制另外一个可执行程序启动时在显示器上的位置,大小,并屏蔽最大化,最小化按钮,并禁止窗体的移动?请问能否实现? 解决方案 解决方案二:http://blog.sina.com.cn/s/blog_593b4d50010009vm.htmlhttp://blog.sina.com.cn/s/blog_593b4d50010009wb.html解决方案三:不会,帮顶解决方案四:我也想了解,谢谢LZ.解决方案五

谁做过卡乐U64KA控制卡的二次开发

问题描述 谁做过卡乐U64KA控制卡的二次开发 卡乐U64KA二次开发时无法清除显示条屏内容问题,求大神帮忙解决

求解,Applet控制windows进程

问题描述 现在要做个applet控制客户端的进程,请问可以吗?用那些API?客户机是Windows系统,主要是Applet载入的时候,把某个程序启动起来,然后Applet离开时,再把这个进程 杀掉,Applet在页面上其实是隐藏的,主要就实现上面功能就行了 问题补充:283433775 写道 解决方案 从理论上说通过 Runtime Process 这两个对象可以达到你所要的结果,但是事实上却不行,因为applet运行在安全模型中,浏览器是有所保护的,当访问到本地文件时会提示是否允许的.Java

[WCF权限控制]ASP.NET Roles授权[上篇]

在采用Windows认证的情况下,使用基于Windows用户组安全主体权限模式是一个不错的选择.我们可以直接使用现有的用户组设置,也可以为相应的应用或服务创建单独的用户组.但是,由于该模式对Windows认证的依赖,意味着这种模式只能使用于局域网环境中.如果采用证书和Windows帐号的映射,也可以适用于像B2B这样的外部网环境.在其他的网络环境中,基于Windows用户组的授权方式将会无能为力.此外,还具有这样一种状况:即使是在同一个局域网环境中,并且也采用Windows进行客户端认证,但是我

asp net 发布域控制-asp.net iis发布域登录控制

问题描述 asp.net iis发布域登录控制 企业内部使用了域管理,客户要求主页不需要域登录也能看到,但是除了主页之外的页面就需要 域登录成功才能看见. 现在我知道怎样实现域登录并获取登录用户域里面的信息,就是不知道怎样把主页剔除开来不需要域登录就能看见. 请各位不吝赐教!!