Skip to content
This repository was archived by the owner on Jun 2, 2023. It is now read-only.
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
59 changes: 57 additions & 2 deletions src/main/java/wasdev/sample/jms/web/JMSSampleP2P.java
Original file line number Diff line number Diff line change
Expand Up @@ -14,23 +14,28 @@
* THE SAMPLE SOURCE CODE. IBM HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT,
* UPDATES, ENHANCEMENTS OR MODIFICATIONS TO THE SAMPLE SOURCE CODE.
*
* (C) Copyright IBM Corp. 2001, 2013.
* (C) Copyright IBM Corp. 2001, 2021.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You could change this to:

  • (C) Copyright IBM Corp. and others 2001, 2021.

I'm not a lawyer but I think this would be the typical way for you to "share" the copyright.

* All Rights Reserved. Licensed Materials - Property of IBM.
*/

package wasdev.sample.jms.web;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.Enumeration;

import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.Queue;
import javax.jms.QueueBrowser;
import javax.jms.QueueConnection;
import javax.jms.QueueConnectionFactory;
import javax.jms.QueueReceiver;
import javax.jms.QueueSender;
import javax.jms.QueueSession;
import javax.jms.TextMessage;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
Expand Down Expand Up @@ -66,7 +71,7 @@ protected void doGet(HttpServletRequest request,

if (strAction == null) {
out.println("Please specify the Action");
out.println("Example : http://<host>:<port>/JMSApp/JMSSampleP2P?ACTION=sendAndReceive");
out.println("Example : http://<host>:<port>/jms11-JMSSample/JMSSampleP2P?ACTION=sendAndReceive");
} else if (strAction.equalsIgnoreCase("sendAndReceive")) {
// call the Send and Receive Message
sendAndReceive(request, response);
Expand All @@ -84,13 +89,16 @@ protected void doGet(HttpServletRequest request,
// Send message to be processed by MDB and wait from MDB
// response
mdbRequestResponse(request, response);
}else if (strAction.equalsIgnoreCase("getMessageCount")) {
getMessageCount(request, response);
} else {
out.println("Incorrect Action Specified, the valid actions are");
out.println("ACTION=sendAndReceive");
out.println("ACTION=sendMessage");
out.println("ACTION=receiveAllMessages");
out.println("ACTION=receiveAllMessagesSelectors");
out.println("ACTION=mdbRequestResponse");
out.println("ACTION=getMessageCount");
}

} catch (Exception e) {
Expand Down Expand Up @@ -338,6 +346,18 @@ public void mdbRequestResponse(HttpServletRequest request,

out.println("Message sent successfully");


QueueBrowser queueBrowser = session.createBrowser(queue);
Enumeration e = queueBrowser.getEnumeration();
int numMsgs = 0;

// count number of messages
while (e.hasMoreElements()) {
Message message = (Message) e.nextElement();
numMsgs++;
}

System.out.println(queue + " has " + numMsgs + " messages");
// Waiting for the MDB to process the message and send the reply message
// Receive the message from MDBREPLYQ to validate the test scenario
Queue queue2 = (Queue) new InitialContext()
Expand Down Expand Up @@ -367,5 +387,40 @@ public void mdbRequestResponse(HttpServletRequest request,
out.println("MDBRequestResponse Completed");

}// end of MDBRequestResponse

private void getMessageCount(HttpServletRequest request, HttpServletResponse response) throws IOException, NamingException, JMSException {
PrintWriter out = response.getWriter();
out.println("getMessageCount Started");

// create a queue connection factory
QueueConnectionFactory cf1 = (QueueConnectionFactory) new InitialContext()
.lookup("java:comp/env/jndi_JMS_BASE_QCF");
// create a queue by looking up from the JNDI repository
Queue queue = (Queue) new InitialContext()
.lookup("java:comp/env/jndi_INPUT_Q");

// create a queue connection
QueueConnection con = cf1.createQueueConnection();
con.start();

QueueSession session = con.createQueueSession(false,
javax.jms.Session.AUTO_ACKNOWLEDGE);

QueueBrowser queueBrowser = session.createBrowser(queue);
Enumeration e = queueBrowser.getEnumeration();
int numMsgs = 0;

// count number of messages
while (e.hasMoreElements()) {
e.nextElement();
numMsgs++;
}

out.println(queue + " has " + numMsgs + " messages");

if (con != null)
con.close();

out.println("getMessageCount Completed");
}
}