MQ 第一次应道消息丢失!!!

国风 2010-07-30 04:38:45
问题描述:
MQ长时间连接不做任何请求,然后做一次请求收到成功,应答时put返回成功。但接收端没有收到MQ消息,MQ队列里也没有。第二请求应答都正常。

是不是MQ的配置没有配好??请高手帮忙
...全文
149 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
bluefcxt 2010-08-23
  • 打赏
  • 举报
回复
先把接收端接收服务停了看看put成功后队列里有没有消息,确实put成功的话队列里会有消息的
国风 2010-07-30
  • 打赏
  • 举报
回复
C++连接MQ代码:

int CMQAgent::connect(bool bBrowse)
{
if(m_QRequest.name().length() > 0)
{
m_QRequest.setOpenOptions(MQOO_INPUT_AS_Q_DEF | MQOO_BROWSE | MQOO_FAIL_IF_QUIESCING);
}
if(m_QResponse.name().length() > 0)
m_QResponse.setOpenOptions(MQOO_OUTPUT | MQOO_FAIL_IF_QUIESCING);

int nRt = 0;
if(!m_QMgr.connect())
nRt = m_QMgr.reasonCode();
if(nRt == 0 && m_QRequest.name().length()>0)
nRt = m_QRequest.open() ? 0 : m_QRequest.reasonCode();
if(nRt == 0 && m_QResponse.name().length()>0)
nRt = m_QResponse.open() ? 0 : m_QResponse.reasonCode();
return -nRt;
}


C++应答代码:
int CMQAgent::putMessage(CMQMessage& msg)
{
int rc = 0;

if(m_QResponse.put(msg))
{
rc = 1;
break;
}
else
{
rc = -m_QResponse.reasonCode();
if(rc == -MQRC_Q_FULL)
Sleep(60000);
else
break;
}
return rc;
}
国风 2010-07-30
  • 打赏
  • 举报
回复
标题写错了
MQ 第一次应答消息丢失

2,633

社区成员

发帖
与我相关
我的任务
社区描述
WebSphere 是 IBM 的软件平台。它包含了编写、运行和监视全天候的工业强度的随需应变 Web 应用程序和跨平台、跨产品解决方案所需要的整个中间件基础设施,如服务器、服务和工具。
社区管理员
  • WebSphere社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧