[英]Weblogic: Import messages to a Uniform Distributed Queue from exported xml file using WLST
我正在嘗試編寫腳本以使用 WLST 將消息導入 Weblogic 中的統一分布式隊列,但我無法找到專門滿足我的要求的解決方案。
讓我解釋一下要求:
我有存儲失敗消息的錯誤隊列。 我已將它們導出為 xml 文件(使用 WLST),並根據消息 header 中的不同錯誤代碼將它們隔離為更小的 xml 文件,這些文件需要導入到主隊列中進行重新處理(不使用管理控制台)。
我確信可以做一些事情來實現這一點,因為我可以使用管理控制台中的導入選項導入隔離的 xml 文件,這就像一個魅力,但不知道它實際上是如何完成的,所以它可以作為腳本實現。
我已經探索了一些選項,例如將文件導出為二進制 SER 文件,該文件可以工作,但它不能僅用於過濾掉可重試的消息。
第一個方法importMessages()
只接受復合數據類型數組。 從 xml 文件轉換/創建所需復合數據類型數組的任何方法也將是解決該問題的好方法。
我同意這不是很簡單和直觀。 你有2個解決方案:
如果您想編寫純 WLST 代碼,這里有一個代碼示例可以幫助您。 該代碼創建 n 條消息並將其發布到隊列中。 buildJMSMessage() function 負責創建文本消息。
from javax.management.openmbean import CompositeData
from weblogic.jms.extensions import JMSMessageInfo, JMSMessageFactoryImpl
...
def buildJMSMessage(text):
handle = 1
state = 1
XidString = None
sequenceNumber = 1
consumerID = None
wlmessage = JMSMessageFactoryImpl.getFactory().createTextMessage(text)
destinationName = ""
bodyIncluded = True
msg = JMSMessageInfo(handle, state, XidString, sequenceNumber, consumerID, wlmessage, destinationName, bodyIncluded)
return msg
....
quanity = 10
messages = jarray.zeros(quantity,CompositeData)
for i in range(0,quantity):
messages[i] = buildJMSMessage('Test message #'+str(i)).toCompositeData()
i = i + 1
queue.importMessages(messages, False)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.