我正在尝试从JMS Queue读取消息,但我想按排序顺序阅读它。我想按时间戳对其进行排序,因为这是消息恢复脚本所必需的,该脚本会将消息从错误队列移至主队列。
我尝试了API中提到的sort()方法,但对我不起作用;我也找不到提供相同示例的任何示例:
下面是我拥有的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队列时对其进行排序;对于我来说,将消息从错误队列移到主队列会更容易。这将变得更加容易,因为我将基于时间戳对其进行移动。