消息服务器相关操作说明070808.doc_第1页
消息服务器相关操作说明070808.doc_第2页
消息服务器相关操作说明070808.doc_第3页
消息服务器相关操作说明070808.doc_第4页
消息服务器相关操作说明070808.doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

消息服务器相关操作说明消息队列使用结构可以简单划分为消息发送端、服务器端和消息订阅端。首先在所有的模块启动时都会向消息服务器端进行消息订阅,告诉服务器需要订阅哪种类型的消息,之后如果某个模块需要向其它模块发送消息,这个模块就会将消息发送到服务器端,服务器端会根据各个模块订阅消息的类型,将这个消息转发打相应某块的本地消息队列中去,之后订阅端的模块就会从本地的队列中获取这个消息并进行相应的处理。消息队列是用来实现播出软件不同模块之间进行通信的,目前的软件中在以下几个流程中应用了消息队列:a 编单软件发送节目单后播出软件立即接到并显示发单信息;(备注:该流程中,编单软件先将消息发送到消息服务器的消息队列中(队列名称在系统配置工具中进行配置),消息服务器端在检测到自己的队列中有了新的消息后,就会根据该消息的类型和消息订阅情况,判断出播出工作站的队列订阅了这个消息,所以将该消息转发到到播出模块的本地消息队列中(默认为dbsap_local_mag),播出软件在检测到本地队列中有了新的消息后,处理该消息并弹出窗口提示有新的节目单已经被发送了)b 在播出软件中添加边播出边上载任务以及延时播出上载任务后,上载软件可以立即添加相应的上载任务;(备注:该流程中,播出软件先将消息发送到消息服务器的消息队列中,消息服务器端在检测到自己的队列中有了新的消息后,就会根据该消息的类型和消息订阅情况,判断出上载工作站的队列订阅了这个消息,所以将该消息转发到到上载工作站模块的本地消息队列中(默认为uploadmsgqueue),上载软件在检测到本地队列中有了新的消息后,处理该消息并从数据库中读取对应地边播边载任务或延时播出任务添加到上载任务列表中)c 在素材管理器中添加素材同步相关任务,或者选择重新执行某个失败的素材管理任务后,素材同步服务器可以立即获取并执行相关任务。(备注:该流程中,素材管理器先将消息发送到消息服务器的消息队列中,消息服务器端在检测到自己的队列中有了新的消息后,就会根据该消息的类型和消息订阅情况,判断出素材同步服务器的队列订阅了这个消息,所以将该消息转发到到素材同步服务器的本地消息队列中(队列名称是在系统配置工具中配置的),素材同步服务在检测到本地队列中有了新的消息后,处理该消息并从数据库中读取对应同步任务添加到执行列表中)d 在素材管理器中选择改变同步迁移任务的执行优先级。(备注:该流程中,素材管理器先将消息发送到消息服务器的消息队列中,消息服务器端在检测到自己的队列中有了新的消息后,就会根据该消息的类型和消息订阅情况,判断出素材同步服务器的队列订阅了这个消息,所以将该消息转发到到素材同步服务器的本地消息队列中(队列名称是在系统配置工具中配置的),素材同步服务在检测到本地队列中有了新的消息后,处理该消息并改变对应任务的优先级)e 在素材管理器中更新了某些素材的信息后,在播出软件中弹出对话框提示素材更新信息。(备注:该流程中,素材管理器先将消息发送到消息服务器的消息队列中,消息服务器端在检测到自己的队列中有了新的消息后,就会根据该消息的类型和消息订阅情况,判断出播出软件的队列订阅了这个消息,所以将该消息转发到到播出软件的本地消息队列中(默认队列名称为:dbsap_local_msg),播出软件在检测到本地队列中有了新的消息后,处理该消息并弹出对话框提示某条素材信息已经更新。)F同步任务失败后,提交任务的工作站端素材管理器会弹出提示对话框,提示某条素材任务失败。(备注:该流程中,同步服务器先将消息发送到消息服务器的消息队列中,消息服务器端在检测到自己的队列中有了新的消息后,就会根据该消息的类型和消息订阅情况,判断出各个工作站素材管理器的队列订阅了这个消息,所以将该消息转发到到各个工作站素材管理器的本地消息队列中(队列名称是在系统配置工具中配置的),素材管理器在检测到本地队列中有了新的消息后,处理该消息,如果取人消息中通知的任务是本工作站提交的,则弹出对话框提示)如果在上述的应用流程中消息队列没有起到作用,可以通过下列方法来判断问题原因:a 首先确认发送端和接收端使用的本地消息队列是否存在且可以正常访问(可以对队列进行读写操作,具体访问消息队列的方法参考附录一),消息服务器也是正常运行的(消息服务器的启动和查看,参考附录二)b 退出消息服务器软件和接收端应用程序,c 在发送端软件执行一个可以发送消息的动作(参考前面提到的应用流程),然后到服务器端的消息队列中查看消息是否发送过去,如果可以看到新发送的消息,说名消息发送端的工作正常。否则,有可能是消息发送端软件问题,并没有向服务器端发送消息,或者是系统配置错误,没有指定正确的消息服务器地址,或者是发送端和服务器端的网络通讯存在问题,导致消息无法送达,最后可能就是服务器端的消息队列有问题,无法接收消息。对于最后两种情况,可以使用其它消息队列的测试软件进行确认(比如在消息服务器的目录下的testMQCltUD.exe,该软件具体的使用方法参考附录三)。d 如果服务器端的队列中已经正常收到了消息,可以启动消息服务器软件,然后去接收端的消息队列中查看消息是否被转发到本地队列中,如果可以正常转发,说明消息服务器和订阅信息都是正确的。否则可能是接受端没有在服务器端正确订阅消息造成(关于消息的订阅情况,可以查看消息服务器所在机器C盘根目录的Subscribe.log文件,关于该文件的查看方法,请参考附录四),或者是接收端的消息队列不正常造成的。e 如果消息已经被转发到了接收端的队列中,启动接收端的软件,观察是否可以正确处理接收到的消息,如果没有正确处理,说明接收端的软件在处理消息队列时存在问题。备注:如何知道软件模块的所使用的消息队列名称,请参考附录五。经过上述测试流程后,就可以定位出问题出在哪里,并进行相应的处理。对于消息队列中无法收到消息时,可以首先判断以下网络是否连通,测试方法切记不要使用ping的方式,而应该在命令行输入如下命令:nbtstat A IP地址注意“-A”应该为大写字母。如果能够正确返回对应IP地址的机器名称等内容,说明MSMQ的可连通性正常。例如:关于消息队列的错误日志在启动D3-Air软件的各个模块时,都要访问消息队列,如果消息队列访问出现错误,有可能会导致各个软件模块之间无法正常通信。如果某个模块访问消息队列时出现错误,会在所在机器的C盘跟目录生成错误日志文件,文件名称一般是MSMQ打头,可能跟有机器名,最后面是消息队列的名称,比如MSMQdybc.system3.log,也就是说每个消息队列访问错误,都会生成一个相应的日志文件。附录一 怎样查看消息队列每一个服务所用到的队列都是由系统队列和消息队列两个队列组成的,系统队列是用来传送系统控制消息比如订阅消息的等,这个队列我们不用查看内容,而消息队列是用来传送所有服务的具体消息内容的,这个队列的内容是我们需要查看的。查看消息队列内容的方法是在桌面我的电脑图标上点击右键,选择管理菜单,弹出计算机管理窗口,如果本机已经正确安装了消息队列,可以在计算机管理窗口看到如下节点:服务和应用程序消息队列专用队列,在这个节点下可以看到本机所有的消息队列,选择要察看内容的队列,展开可以看到下面还有两个节点,选择队列消息节点,就可以看到所有发送到这个队列中尚未处理的消息。要注意的是,1 队列消息的显示内容是不会自动刷新的,所以如果在已经打开了队列消息节点的情况下,必须选择手动刷新操作才能看到最新的消息内容。2 消息队列中的内容在被客户端应用程序访问以后,会被应用程序删除掉,所以要想看到某个队列消息的内容,必须要先将使用该队列的客户端应用程序退出。附录二 消息服务器运行及查看方法。1 如果使用安装程序时选择消息服务器安装,则安装结束后在安装目录下会生成一个MSMQ目录,该目录就是消息服务器程序所在目录2 安装程序会将消息服务器设置为开机子启动,如果需要手动启动消息服务器,需要在消息服务器下找到消息服务器程序DBSMQSvrU.exe,为该程序创建一个快捷方式,在快捷方式中为该程序加上 “空格-debug”的参数,以后直接执行该快捷方式就可以启动消息服务器程序3 消息服务器启动后,在操作系统的任务管理器进程窗口中,可以看到名为“DBSMQSvrU.exe”的线程,表示消息服务器正在运行,需要注意的是,消息服务器软件在一台机器上是可以启动多个实例的,这样就会造成多个消息服务器软件之间抢夺资源,导致工作异常,所以一定要注意系统中不要同时启动多个消息服务器软件进程。4 如果需要退出消息服务器软件,只需在操作系统的任务管理器进程窗口中将消息服务器的线程“DBSMQSvrU.exe”强行结束即可。附录三 如何使用testMQCltUD.exe进行消息队列的测试。在安装了消息服务的机器上找到安装目录下的MSMQ目录,可以看到目录下有一个“testMQCltUD.exe”,这个程序可以进行消息发送和接收测试。双击打开该程序,界面如下图所示:界面各参数含义如下:本地设置主机名:填入本机的机器名。本地设置消息队列名:填入本机要使用的本地消息队列的名称。本地设置系统队列名:填入本机要使用的系统队列的名称。打开按钮:填入了正确的本地设置后,点击本按钮,可以打开设置中指定的消息队列服务器设置主机名:填入消息服务器所在机器的机器名。服务器设置消息队列名:填入消息服务器所使用的消息队列的名称。服务器设置系统队列名:填入消息服务器所使用的系统队列的名称。连接按钮:在填入了正确服务器设置后,可以和服务器端消息队列建立正确的连接消息订阅:在未订阅消息类型可以选择要订阅的消息类型,选中后点击“订阅”按钮,就可以将该类型的消息添加到已订阅消息类型中,如果要退订,则反向操作。选择订阅操作后,软件会像前面指定的服务器端发送一个订阅消息,告诉服务器端本机需要订阅哪些类型的消息,当服务器端的队列接受到这些类型消息的时候,就会把这些类型的消息转发到前面设置的本地消息队列中去消息发布:在消息类型下拉框中选择要发布的消息类型,在消息框中输入要发布的消息内容,之后选择“发布”按钮,就可以将前面的消息发布到服务器端的消息队列中去,如果在服务器端正常运行了消息服务器软件,就会根据订阅情况,将这条消息再转发到订阅了这种类型消息的消息队列中去。直接消息发送:前面的消息发送必须是经过消息服务器转发的,如果想要直接进行两个消息队列的消息发送,可以使用直接消息发送功能,在目标主机中填入要直接发送消息的主机名称,目标队列填入目标消息队列的名称。消息类型中选择合适的消息类型,消息中填入要发送的消息内容,点击“发送”按钮,就可以将消息直接发送到目标队列中了。在进行测试的时候,在发送端和接受端分别运行一个testMQCltUD.exe程序,就可以测试消息队列是否正常客用了。备注:进行消息队列通讯是,要保证两个工作站之间的网络环境是畅通的,有时操作系统自带的防火墙和用户自己安装的防护软件会导致消息通讯失败,在测试时如果不能正常通讯,可以先将这类软件都禁止掉再进行测试,如果成功了就说明原因在这些软件的网络防护功能上,可以再针对性进行设置。附录四 如何查看消息服务器的消息订阅情况在消息服务软件运行的机器C盘根目录,有一个SubScribe.txt文本文件,里面记录了消息服务器接收到的所有消息订阅信息。文本中包含多行文字内容,每一行都表示一个消息订阅。每行的格式如下面蓝色字体所示:dybc#clipMgrMsg#dybc#ClipMgrSys#MSG_CLIPMGRSVR其中,前面的dybc#clipMgrMsg#dybc#ClipMgrSys表示机器名为dybc机器的clipMgrMsg和ClipMgrSys这两个消息队列向消息服务器订阅了消息,#MSG_CLIPMGRSVR表示订阅的消息类型为MSG_CLIPMGRSVR。这样,当消息服务器接收到类型为MSG_CLIPMGRSVR的消息以后就会向名为dybc的机器的clipMgrMsg和ClipMgrSys这两个消息队列中转发接收到的消息内容,如果在dybc上没有开启客户端程序对这两个队列进行处理,就应该可以在这两个队列中看到看到相应的消息,这两个队列中的第一个队列(clipMgrMsg)是消息队列,第二个队列(ClipMgrSys)是系统队列,我们需要查看的都是具体的消息内容,所以只要查看第一个队列(clipMgrMsg)中的内容就可以了 。如果出现了消息服务器不能将消息转发给指定客户端队列的情况,就可以在SubScribe.txt中先查询消息服务器是否正确接收了客户端的订阅。如果没有,需要在消息服务器已经启动的情况下重新启动客户端程序进行订阅,如果已经订阅上了,并且消息已经传送到了消息服务器的消息队列中,就说明消息服务器服务产生了异常,可以重启消息服务器软件进行观察。附录五 如何查看各个模块使用的消息队列名称。 基本上每一个软件模块都要使用一对消息队列(系统队列和消息队列),我们要知道每个模块使用的消息队列的名称才可以在消息队列出现问题的时候进行测试和察看。要想确认每个模块使用的消息队列名称,可以使用下面的方法: 找一台可以进行测试的机器,将该机中消息队列专用队列下所有非系统创建的消息队列全部删除(正常情况下,系统创建的队列名称都会以$符号结尾,比如admin_queue$,其他的队列都是应用程序创建的),之后单独运行每个需要观察的模块,模块运行后,就会在专用队列下创建该模块需要的队列,观察新增的队列名称就可以知道程序需要使用的队列的名称。每个程序模块都只会使用一组消息队列,但编单/上载/播出这三个程序启动的时候,由于是内嵌了素材管理器模块的,该模块也要使用自己独立的消息队列,所以在启动的时候会创建2组消息队列,但是这三个程序中素材管理器所使用的消息队列名称是在系统配置工具中进行配置的(在这三种工作站的配置节点下,都有素材管理器配置页,在该配置页中,有一个消息队列配置项,就是配置这三个程序运行时,内嵌的素材管理器所使用的消息队列名称的),我们可以确切的知道素材管理器的消息队列名称,剩下的一组队列名称,就是编单/上载/播出使用的队列名称了,除了素材管理器队列在系统配置工具中可以设置以外,消息服务器和素材同步服务使用的队列名称也是可以在系统配置工具中设置的,消息服务器的队列设置的位置为:“通用配置”“消息服务器”,素菜同步的队列设置位置为:“素材同步服务”“本地消息队列”。程序中默认使用固定的消息队列的有:编单:消息队列:local1 系统队列:system1上载:消息队列:uploadmsgqueue 系统队列:uploadsysqueue播出:消息队列:dbsap_local_msg 系统队列:dbsap_sys_msg附录六 在改变了用户或重登录域后如何修改消息队列的访问权限1) 在“我的电脑”上右键选择管理,在弹出的计算机管理工具中找到消息队列服务,在专用队列(Private Queues)下新建一个消息队列,右键选择消息队列的属性,将其属性设置为“Everyone”。2) 找到操作系统目录下的“system32msmqSTORAGELQS”目录,在这个目录下包含多个文件,每个文件都对应消息队列中的一个队列,双击一个文件,选择使用记事本打开,可以看到如下面所示的内容:PropertiesLabel=Type=00000000-0000-0000-0000-000000000000QueueName=private$msgqueueJournal=00Quota=4294967295Security=01000780140000002000000000000000000000000101000000000005070000000105000000000

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论