Ibm mq 从mq队列获取java对象

Ibm mq 从mq队列获取java对象,ibm-mq,Ibm Mq,我有两个问题: 我想知道是否有任何工具可用于获取放入mq的java对象。如果是,请提供代码片段以从mqqueue获取java对象消息 是否可以不从队列中删除消息,而是读取最近丢弃的消息。类似于当您运行代码时,它应该读取队列中的最新消息 如果理解上述查询有困难,请告诉我。关于您的第二次查询: 是的,我们可以读取队列中的最新消息,而无需将其从队列中删除。我们称之为浏览信息 您将不得不使用一些消息获取选项,如MQGMO\u BROWSE\u FIRST 。在向GMO发出MQGET后,MQGMO_BRO

我有两个问题:

  • 我想知道是否有任何工具可用于获取放入mq的java对象。如果是,请提供代码片段以从mqqueue获取java对象消息

  • 是否可以不从队列中删除消息,而是读取最近丢弃的消息。类似于当您运行代码时,它应该读取队列中的最新消息


  • 如果理解上述查询有困难,请告诉我。

    关于您的第二次查询

    是的,我们可以读取队列中的最新消息,而无需将其从队列中删除。我们称之为浏览信息

    您将不得不使用一些消息获取选项,如MQGMO\u BROWSE\u FIRST

    。在向GMO发出MQGET后,MQGMO_BROWSE_首先,我们需要向GMO发出MQGET,MQGMO_BROWSE_接下来。我们必须在循环中发出这些MQGET,直到到达最后一条消息

    这里一切都解释得很清楚:

    实际上,如果mqapi能够提供类似MQGMO_BROWSE_LAST的东西,那么它会简单得多。 但是,它仍然很好,毕竟我们称它为队列(FIFO),而不是堆栈(LIFO)

    关于您的第一个查询

    我从中了解到,您希望将java类对象放入队列中。嗯,正如我所评论的,我们只把消息放在队列中。无论您是放置文本消息还是二进制消息,MQ都非常灵活,可以同时接受这两种消息。现在,由应用程序决定如何处理消息中的二进制或文本信息

    所以,这实际上取决于您的实现。我将按以下方式实施:

    发送方: 假设我们有一个对象ObjToBeSent,其变量的状态为:

    ObjToBeSent.Vara=1;
    ObjToBeSent.Varb="test";
    
    我将形成一条如下所示的XML消息,并在队列中发布:

    <ObjToBeSent>
    <Vara><Integer>1</Integer></Vara>
    <Varb><String>test</String></varb>
    </ObjToBeSent>
    
    
    1.
    测试
    
    接收方: 从队列中获取消息。解析XML并获取变量值和数据类型


    声明一个对象,比如ObjectReceived,并从输入消息中设置变量值。

    2次查询是明确的,但第一次查询不是明确的。在队列中删除“java对象”是什么意思?你在说什么java对象?我们只在队列中放置消息,可以是任何形式的文本或二进制。感谢您的关注。对第二个问题的建议奏效了。关于第一个查询,消息是作为序列化java对象编写的,我们需要反序列化并将其作为字符串读取。您能推荐一些java jms api或ibm mq api吗。还提供执行上述操作的代码段