use case: in ibm mq i want to get all messages from DLQ. shunt them to 2 different queues. below is my implementation:
#!/bin/bash
#Function to browse messages one at a time and shunt them accordingly
function browseMessages {
echo "Browsing messages from ${source_queue}"
while : ; do
message=$(${JAVA_HOME}/bin/java -jar -Dmq.queue.manager=$mqManager -Dmq.port=$mqPort
-Dmq.queue.name=$source_queue -Dmq.host=$mqHost -Dmq.channel=$mqChannel
${APP_PATH}/MQUtil-$jarversion.jar BROWSE -Dmq.count=1 | head -n 1)
if [ -z "$message" ]; then
echo "No more messages to browse, exiting loop."
break
fi
echo "BROWSE: ${message}"
if [[ "$message" == *'BusinessEventType="Amend"'* ]]; then
shuntMessage "$message" "$AMEND_queue"
else
shuntMessage "$message" "$NEW_queue"
fi
done
}
Function to shunt individual messages to the specified queue
function shuntMessage {
local message=$1
local destination_queue=$2
echo "Shunting message to ${destination_queue}"
echo "$message" | ${JAVA_HOME}/bin/java -jar -Dmq.queue.manager=$mqManager -Dmq.port=$mqPort
-Dmq.queue.name=$source_queue -Dmq.host=$mqHost -Dmq.channel=$mqChannel
-Dmq.shunt.queue.name=$destination_queue ${APP_PATH}/MQUtil-$jarversion.jar SHUNT
}
while i build a docker image using this shell script and run it it stucks at
browsing message 0…..
when i tested the browsing functionality indivisually.. it works..
function browseTop3Messages {
local queue=$source_queue
local count=3
local action="BROWSE"
#Invoke the MQUtil jar with the BROWSE command and limit the count to 3
${JAVA_HOME}/bin/java -jar -Dmq.queue.manager=$mqManager -Dmq.port=$mqPort
-Dmq.queue.name=$queue -Dmq.host=$mqHost -Dmq.channel=$mqChannel
-Dmq.count=$count
${APP_PATH}/MQUtil-${jarversion}.jar ${action}
}
is the issue with shunting the messages??
when i tried just to browse it worked. but when i try to browse and filter and then shunt.. it does not work.. my doubt is how i am am trying to shunt the message. please suggest