listening to IBM mq using message driven beans in Websphere application server












0















I have an application in springboot which is using jms to receive messages from ibm mq synchronously i.e., using .receive() method which is running fine, Now, I am implementing another process to run in background to receive async messages which is older than 2 minutes, from same queue which uses @Async and Message driven beans(onMessage()) .
My method implementation for mdb is as below:



@Service
@Slf4j
@MessageDriven(mappedName = "REPL.AI", activationConfig = {
@ActivationConfigProperty(propertyName = "connectionFactoryLookup", propertyValue = "jms/queueConnectionFactory"),
@ActivationConfigProperty(propertyName = "acknowledgeMode", propertyValue = "Auto-acknowledge"),
@ActivationConfigProperty(propertyName = "destinationType", propertyValue = "javax.jms.Queue"),
@ActivationConfigProperty(propertyName = "port", propertyValue = "1414")})
public class MessageBean implements MessageListener {

@Autowired
private AsyncMessageReceiver asyncMessageReceiver;

@Override
@Async("AsyncExecutor")
public void onMessage(Message message) {
log.info("ONMESSAGE-START");
TextMessage msg = null;
try {
if (message instanceof TextMessage) {
msg = (TextMessage) message;
log.info("received an async message");
asyncMessageReceiver.processIntoText(msg); //calling other method for further processing
}
} catch (Exception e) {
log.error("Exception occurs in onMessage(): " + e);
}

log.info("ONMESSAGE-END");
}

}


Also I have created a listener port '1414' in WAS server console to bind the mdb to port.
All configuration is already provided.



problem is, mdb is not receiving any messages from the queue , nor it is throwing any error.
I can see in logs



MDB Listener 1414 started successfully for JMSDestination jms/ReplQueue.


after this I dont see any exception and not any incoming messages too,messages have been sent through sender.
any pointers for this?










share|improve this question























  • If this is the same queue that your sync method reads from and you have the async method set with Auto-acknowledge, what is to keep async from consuming messages meant for sync? When you did testing was there messages in the queue?

    – JoshMc
    Jan 2 at 5:48











  • Hi JoshMc, its the same queue..I am getting the asynchronous messages from mdb's now. But when synchronous process runs with .receive(1000000) , mdb doesn't work during that time, which is the good part.

    – Harsha
    Feb 7 at 9:22


















0















I have an application in springboot which is using jms to receive messages from ibm mq synchronously i.e., using .receive() method which is running fine, Now, I am implementing another process to run in background to receive async messages which is older than 2 minutes, from same queue which uses @Async and Message driven beans(onMessage()) .
My method implementation for mdb is as below:



@Service
@Slf4j
@MessageDriven(mappedName = "REPL.AI", activationConfig = {
@ActivationConfigProperty(propertyName = "connectionFactoryLookup", propertyValue = "jms/queueConnectionFactory"),
@ActivationConfigProperty(propertyName = "acknowledgeMode", propertyValue = "Auto-acknowledge"),
@ActivationConfigProperty(propertyName = "destinationType", propertyValue = "javax.jms.Queue"),
@ActivationConfigProperty(propertyName = "port", propertyValue = "1414")})
public class MessageBean implements MessageListener {

@Autowired
private AsyncMessageReceiver asyncMessageReceiver;

@Override
@Async("AsyncExecutor")
public void onMessage(Message message) {
log.info("ONMESSAGE-START");
TextMessage msg = null;
try {
if (message instanceof TextMessage) {
msg = (TextMessage) message;
log.info("received an async message");
asyncMessageReceiver.processIntoText(msg); //calling other method for further processing
}
} catch (Exception e) {
log.error("Exception occurs in onMessage(): " + e);
}

log.info("ONMESSAGE-END");
}

}


Also I have created a listener port '1414' in WAS server console to bind the mdb to port.
All configuration is already provided.



problem is, mdb is not receiving any messages from the queue , nor it is throwing any error.
I can see in logs



MDB Listener 1414 started successfully for JMSDestination jms/ReplQueue.


after this I dont see any exception and not any incoming messages too,messages have been sent through sender.
any pointers for this?










share|improve this question























  • If this is the same queue that your sync method reads from and you have the async method set with Auto-acknowledge, what is to keep async from consuming messages meant for sync? When you did testing was there messages in the queue?

    – JoshMc
    Jan 2 at 5:48











  • Hi JoshMc, its the same queue..I am getting the asynchronous messages from mdb's now. But when synchronous process runs with .receive(1000000) , mdb doesn't work during that time, which is the good part.

    – Harsha
    Feb 7 at 9:22
















0












0








0








I have an application in springboot which is using jms to receive messages from ibm mq synchronously i.e., using .receive() method which is running fine, Now, I am implementing another process to run in background to receive async messages which is older than 2 minutes, from same queue which uses @Async and Message driven beans(onMessage()) .
My method implementation for mdb is as below:



@Service
@Slf4j
@MessageDriven(mappedName = "REPL.AI", activationConfig = {
@ActivationConfigProperty(propertyName = "connectionFactoryLookup", propertyValue = "jms/queueConnectionFactory"),
@ActivationConfigProperty(propertyName = "acknowledgeMode", propertyValue = "Auto-acknowledge"),
@ActivationConfigProperty(propertyName = "destinationType", propertyValue = "javax.jms.Queue"),
@ActivationConfigProperty(propertyName = "port", propertyValue = "1414")})
public class MessageBean implements MessageListener {

@Autowired
private AsyncMessageReceiver asyncMessageReceiver;

@Override
@Async("AsyncExecutor")
public void onMessage(Message message) {
log.info("ONMESSAGE-START");
TextMessage msg = null;
try {
if (message instanceof TextMessage) {
msg = (TextMessage) message;
log.info("received an async message");
asyncMessageReceiver.processIntoText(msg); //calling other method for further processing
}
} catch (Exception e) {
log.error("Exception occurs in onMessage(): " + e);
}

log.info("ONMESSAGE-END");
}

}


Also I have created a listener port '1414' in WAS server console to bind the mdb to port.
All configuration is already provided.



problem is, mdb is not receiving any messages from the queue , nor it is throwing any error.
I can see in logs



MDB Listener 1414 started successfully for JMSDestination jms/ReplQueue.


after this I dont see any exception and not any incoming messages too,messages have been sent through sender.
any pointers for this?










share|improve this question














I have an application in springboot which is using jms to receive messages from ibm mq synchronously i.e., using .receive() method which is running fine, Now, I am implementing another process to run in background to receive async messages which is older than 2 minutes, from same queue which uses @Async and Message driven beans(onMessage()) .
My method implementation for mdb is as below:



@Service
@Slf4j
@MessageDriven(mappedName = "REPL.AI", activationConfig = {
@ActivationConfigProperty(propertyName = "connectionFactoryLookup", propertyValue = "jms/queueConnectionFactory"),
@ActivationConfigProperty(propertyName = "acknowledgeMode", propertyValue = "Auto-acknowledge"),
@ActivationConfigProperty(propertyName = "destinationType", propertyValue = "javax.jms.Queue"),
@ActivationConfigProperty(propertyName = "port", propertyValue = "1414")})
public class MessageBean implements MessageListener {

@Autowired
private AsyncMessageReceiver asyncMessageReceiver;

@Override
@Async("AsyncExecutor")
public void onMessage(Message message) {
log.info("ONMESSAGE-START");
TextMessage msg = null;
try {
if (message instanceof TextMessage) {
msg = (TextMessage) message;
log.info("received an async message");
asyncMessageReceiver.processIntoText(msg); //calling other method for further processing
}
} catch (Exception e) {
log.error("Exception occurs in onMessage(): " + e);
}

log.info("ONMESSAGE-END");
}

}


Also I have created a listener port '1414' in WAS server console to bind the mdb to port.
All configuration is already provided.



problem is, mdb is not receiving any messages from the queue , nor it is throwing any error.
I can see in logs



MDB Listener 1414 started successfully for JMSDestination jms/ReplQueue.


after this I dont see any exception and not any incoming messages too,messages have been sent through sender.
any pointers for this?







spring-boot jms websphere ibm-mq message-driven-bean






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked Jan 1 at 10:38









HarshaHarsha

167




167













  • If this is the same queue that your sync method reads from and you have the async method set with Auto-acknowledge, what is to keep async from consuming messages meant for sync? When you did testing was there messages in the queue?

    – JoshMc
    Jan 2 at 5:48











  • Hi JoshMc, its the same queue..I am getting the asynchronous messages from mdb's now. But when synchronous process runs with .receive(1000000) , mdb doesn't work during that time, which is the good part.

    – Harsha
    Feb 7 at 9:22





















  • If this is the same queue that your sync method reads from and you have the async method set with Auto-acknowledge, what is to keep async from consuming messages meant for sync? When you did testing was there messages in the queue?

    – JoshMc
    Jan 2 at 5:48











  • Hi JoshMc, its the same queue..I am getting the asynchronous messages from mdb's now. But when synchronous process runs with .receive(1000000) , mdb doesn't work during that time, which is the good part.

    – Harsha
    Feb 7 at 9:22



















If this is the same queue that your sync method reads from and you have the async method set with Auto-acknowledge, what is to keep async from consuming messages meant for sync? When you did testing was there messages in the queue?

– JoshMc
Jan 2 at 5:48





If this is the same queue that your sync method reads from and you have the async method set with Auto-acknowledge, what is to keep async from consuming messages meant for sync? When you did testing was there messages in the queue?

– JoshMc
Jan 2 at 5:48













Hi JoshMc, its the same queue..I am getting the asynchronous messages from mdb's now. But when synchronous process runs with .receive(1000000) , mdb doesn't work during that time, which is the good part.

– Harsha
Feb 7 at 9:22







Hi JoshMc, its the same queue..I am getting the asynchronous messages from mdb's now. But when synchronous process runs with .receive(1000000) , mdb doesn't work during that time, which is the good part.

– Harsha
Feb 7 at 9:22














0






active

oldest

votes











Your Answer






StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");

StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});

function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});


}
});














draft saved

draft discarded


















StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53994786%2flistening-to-ibm-mq-using-message-driven-beans-in-websphere-application-server%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown

























0






active

oldest

votes








0






active

oldest

votes









active

oldest

votes






active

oldest

votes
















draft saved

draft discarded




















































Thanks for contributing an answer to Stack Overflow!


  • Please be sure to answer the question. Provide details and share your research!

But avoid



  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.


To learn more, see our tips on writing great answers.




draft saved


draft discarded














StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53994786%2flistening-to-ibm-mq-using-message-driven-beans-in-websphere-application-server%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

Monofisismo

Angular Downloading a file using contenturl with Basic Authentication

Olmecas