当前位置: 技术问答>linux和unix
关于后台服务进程不能读消息队列的问题?200分求答急急。。。
来源: 互联网 发布时间:2015-03-18
本文导语: 客户端:cln :前台程序 tel_cln :前台发送和接收消息队列 q2324 : 前台创建消息队列 服务器端: ser :后台服务程序 tel_ser :后台发送和接收消息...
客户端:cln :前台程序
tel_cln :前台发送和接收消息队列
q2324 : 前台创建消息队列
服务器端:
ser :后台服务程序
tel_ser :后台发送和接收消息队列
q2324 :创建消息队列
出现问题:我的后台接收消息队列堵塞,但我的ser进程还在运行,没有产生core.
说明:
1 .tel_ser和cln_ser是一个长TCP连接,业务中间不断开。
2.通迅没有延时处理
tel_cln :前台发送和接收消息队列
q2324 : 前台创建消息队列
服务器端:
ser :后台服务程序
tel_ser :后台发送和接收消息队列
q2324 :创建消息队列
出现问题:我的后台接收消息队列堵塞,但我的ser进程还在运行,没有产生core.
说明:
1 .tel_ser和cln_ser是一个长TCP连接,业务中间不断开。
2.通迅没有延时处理
|
1.请将你的需求和出错现象说的详细一些。
2.出现阻塞,是不是由于客户端的消息没有正确放到服务端的接受消息队列上?
3.一般可以这样设计:客户端有客户进程,客户消息传递进程。其中客户进程将消息放到客户消息传递进程的发送队列上(sndqueue),然后在自己的接受队列上等待。客户消息传递进程从发送队列(sndqueue)取消息,送到socket,然后阻塞在读socket上。读回信息后,写到客户进程的接受消息队列上。服务端也类似,有服务进程,服务消息传递进程。首先服务消息传递进程从socket读出消息,放到服务进程的接受消息队列,同时在自己的发送队列上等待,拿到消息后,写socket,完成一次循环。服务进程阻塞在自己的接受队列上,拿到消息后,执行相应的代码程序,完成业务,然后将返回消息写到服务消息传递进程的发送队列上,同时阻塞在自己的接受队列上。
4.可以依据这个分析一下在哪里出的错。
2.出现阻塞,是不是由于客户端的消息没有正确放到服务端的接受消息队列上?
3.一般可以这样设计:客户端有客户进程,客户消息传递进程。其中客户进程将消息放到客户消息传递进程的发送队列上(sndqueue),然后在自己的接受队列上等待。客户消息传递进程从发送队列(sndqueue)取消息,送到socket,然后阻塞在读socket上。读回信息后,写到客户进程的接受消息队列上。服务端也类似,有服务进程,服务消息传递进程。首先服务消息传递进程从socket读出消息,放到服务进程的接受消息队列,同时在自己的发送队列上等待,拿到消息后,写socket,完成一次循环。服务进程阻塞在自己的接受队列上,拿到消息后,执行相应的代码程序,完成业务,然后将返回消息写到服务消息传递进程的发送队列上,同时阻塞在自己的接受队列上。
4.可以依据这个分析一下在哪里出的错。