繁体中文
设为首页
加入收藏
当前位置:ASP技术首页 >> 客户端相关 >> 了解MSMQ,控制ASP进程 (二)

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

2004-10-01 08:26:10  作者:  来源:互联网  浏览次数:15  文字大小:【】【】【
简介:在运用程序中 MSMQ 可以有很多的运用,但是最普遍的运用是卸载另一个线程中的进程。 ( 例如和 MSMQ 在同一台机器上的 IIS) 或则是另外一台机器上的 IIS. 通过卸载这些阻塞的进程,就能够使得 ASP 程序能够继续运...
关键字:进程 控制 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 进程的方法!

责任编辑:admin
相关文章