listening to IBM mq using message driven beans in Websphere application server
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
add a comment |
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
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
add a comment |
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
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
spring-boot jms websphere ibm-mq message-driven-bean
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
add a comment |
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
add a comment |
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
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
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.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
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
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