从JMS队列中按排序顺序读取消息

时间:2019-05-21 13:33:03

标签: java python jython

我正在尝试从JMS Queue读取消息,但我想按排序顺序阅读它。我想按时间戳对其进行排序,因为这是消息恢复脚本所必需的,该脚本会将消息从错误队列移至主队列。

我尝试了API中提到的sort()方法,但对我不起作用;我也找不到提供相同示例的任何示例:

https://docs.oracle.com/middleware/1213/wls/WLAPI/weblogic/management/runtime/JMSMessageCursorRuntimeMBean.html#sort(java.lang.String,%20java.lang.Long,%20java.lang.String[],%20java.lang.Boolean[])

下面是我拥有的jython script.py:

from java.util import Date
from java.io import FileInputStream
from weblogic.jms.extensions import JMSMessageInfo
import java.lang
import os
import string
import datetime
import time


cd('/JMSRuntime/'+sourceServerName+'.jms/JMSServers/'+sourceJmsServerName+'/Destinations/'+sourceSystemModuleName +'!' +sourceJmsServerName+ '@' + sourceQueueName)

sourceQueue=cmo //assigning current management object

sourceMessages=sourceQueue.getNext(sourceCursor, 10) //10 = batch size


 if sourceMessages == None:
                        print 'No message to be moved!!'

                else:
                        print 'Moving below Message ID'
                        for message in sourceMessages:
                                msgwithbody = JMSMessageInfo(message)
                                messageId = msgwithbody.getMessage().getJMSMessageID()
                                messageTime=msgwithbody.getMessage().getJMSTimestamp()
                                monthvalue=int(Date(messageTime).getMonth())+int(1)
                                yearvalue=int(Date(messageTime).getYear())+int(1900)

如果我能够在读取JMS队列时对其进行排序;对于我来说,将消息从错误队列移到主队列会更容易。这将变得更加容易,因为我将基于时间戳对其进行移动。

0 个答案:

没有答案