<%@ page import="java.util.*"%> <%@ page import="com.eactive.eai.common.message.*,java.text.SimpleDateFormat"%> <%@ page import="javax.jms.*,com.eactive.eai.flowcontrol.jms.*,javax.naming.*"%> <%@ page language="java" contentType="text/html;charset=utf-8"%> <%! public final static String JMS_FACTORY = "com.eactive.eai.common.FlowRouterConnectionFactory"; public ArrayList displayQueue(String queueName, String mSelector, int maxCount) throws Exception { ArrayList al = new ArrayList(); InitialContext ctx = ctx = new InitialContext(); QueueConnectionFactory qconFactory = null; QueueConnection qcon = null; QueueSession qsession = null; QueueBrowser qbrowser = null; javax.jms.Queue queue = null; int count = 0; try { java.text.DateFormat DATE_FORMAT = DATE_FORMAT = java.text.DateFormat.getDateTimeInstance( java.text.DateFormat.SHORT, java.text.DateFormat.SHORT); if (DATE_FORMAT instanceof java.text.SimpleDateFormat) ((java.text.SimpleDateFormat) DATE_FORMAT) .applyPattern("yy/MM/dd kk:mm:ss"); qconFactory = (QueueConnectionFactory) ctx.lookup(JMS_FACTORY); qcon = qconFactory.createQueueConnection(); qsession = qcon.createQueueSession(false, Session.AUTO_ACKNOWLEDGE); queue = (javax.jms.Queue) ctx.lookup(queueName); if(mSelector != null && mSelector.length() > 0) { qbrowser = qsession.createBrowser(queue, mSelector); } else { qbrowser = qsession.createBrowser(queue); } qcon.start(); Enumeration e = qbrowser.getEnumeration(); Message m = null; if (! e.hasMoreElements()) { System.out.println("There are no messages on this queue. - " + queueName); } else { System.out.println(queueName + " - Queued JMS Messages: "+DATE_FORMAT.format(new java.util.Date(System .currentTimeMillis()))); while (e.hasMoreElements()) { m = (Message) e.nextElement(); count++; System.out.println("get Message " + count ); /* System.out.println("Message ID " + m.getJMSMessageID() + " delivered " + new Date(m.getJMSTimestamp()) + " to " + m.getJMSDestination()); System.out.print("\tExpires "); if (m.getJMSExpiration() > 0) { System.out.println( new Date( m.getJMSExpiration())); } else { System.out.println("never"); } System.out.println("\tPriority " + m.getJMSPriority()); System.out.println("\tMode " + ( m.getJMSDeliveryMode() == DeliveryMode.PERSISTENT ? "PERSISTENT" : "NON_PERSISTENT")); System.out.println("\tCorrelation ID " + m.getJMSCorrelationID()); System.out.println("\tReply to " + m.getJMSReplyTo()); System.out.println("\tMessage type " + m.getJMSType()); System.out.println("\tMessage BizCode " + m.getStringProperty("BizCode")); if (m instanceof TextMessage) { System.out.println("\tTextMessage \"" + ((TextMessage)m).getText() + "\""); } */ if(count > maxCount) { break; } else { if(m instanceof ObjectMessage) { al.add(m); } } } } } catch( Exception e ) { //e.printStackTrace(); } finally { try { if(qbrowser != null) qbrowser.close(); if(qsession != null) qsession.close(); if(qcon != null) qcon.close(); } catch(Exception ex) {} } return al; } public ArrayList purgeQueue(String queueName, String mSelector, int purgeSize, boolean isLogging) throws Exception { ArrayList al = new ArrayList(); InitialContext ctx = new InitialContext(); QueueConnectionFactory qconFactory = null; QueueConnection qcon = null; QueueSession qsession = null; QueueReceiver qreceiver = null; javax.jms.Queue queue = null; long sTime = System.currentTimeMillis(); long cTime = 0; int purgeCount = 0; try { java.text.DateFormat DATE_FORMAT = DATE_FORMAT = java.text.DateFormat.getDateTimeInstance( java.text.DateFormat.SHORT, java.text.DateFormat.SHORT); if (DATE_FORMAT instanceof java.text.SimpleDateFormat) ((java.text.SimpleDateFormat) DATE_FORMAT) .applyPattern("yy/MM/dd kk:mm:ss"); qconFactory = (QueueConnectionFactory) ctx.lookup(JMS_FACTORY); qcon = qconFactory.createQueueConnection(); qsession = qcon.createQueueSession(false, Session.AUTO_ACKNOWLEDGE); queue = (javax.jms.Queue) ctx.lookup(queueName); if(mSelector != null && mSelector.length() > 0) { qreceiver = qsession.createReceiver(queue, mSelector); } else { qreceiver = qsession.createReceiver(queue); } qcon.start(); Message m = null; System.out.println(">> "+queueName + " - Queued JMS Messages: "+DATE_FORMAT.format(new java.util.Date(System .currentTimeMillis()))); cTime = System.currentTimeMillis() - sTime; sTime = System.currentTimeMillis(); for(int i=0; i> No more Message in Queue - " + queueName); System.out.println(">> Stop Purge."); break; } purgeCount++; System.out.println("\n>> purge "+(i+1)); if(isLogging) { /* System.out.println("Message ID " + m.getJMSMessageID() + " delivered " + new Date(m.getJMSTimestamp()) + " to " + m.getJMSDestination()); System.out.print("\tExpires "); if (m.getJMSExpiration() > 0) { System.out.println( new Date( m.getJMSExpiration())); } else { System.out.println("never"); } System.out.println("\tPriority " + m.getJMSPriority()); System.out.println("\tMode " + ( m.getJMSDeliveryMode() == DeliveryMode.PERSISTENT ? "PERSISTENT" : "NON_PERSISTENT")); System.out.println("\tCorrelation ID " + m.getJMSCorrelationID()); System.out.println("\tReply to " + m.getJMSReplyTo()); System.out.println("\tMessage type " + m.getJMSType()); System.out.println("\tMessage BizCode " + m.getStringProperty("BizCode")); if (m instanceof TextMessage) { System.out.println("\tTextMessage \"" + ((TextMessage)m).getText() + "\""); } */ if(m instanceof ObjectMessage) { al.add(m); } } } System.out.println("----------------------------------------------------------------"); System.out.println(">> Purge "+purgeCount+" messages completed : connect time("+cTime+") ms, purge time (" + (System.currentTimeMillis() - sTime) +") ms"); System.out.println("----------------------------------------------------------------"); return al; } catch( Exception e ) { throw e; } finally { try { if(qreceiver != null) qreceiver.close(); if(qsession != null) qsession.close(); if(qcon != null) qcon.close(); } catch(Exception ex) {} } }%> <% ArrayList al = null; String queueName = request.getParameter("queueName"); String maxCount = request.getParameter("maxCount"); String fromTime = request.getParameter("fromTime"); String toTime = request.getParameter("toTime"); String selector = request.getParameter("selector"); String actionType = request.getParameter("actionType"); String[][] monitorDataTotal = null; String[][] monitorData = null; String timeSelector = ""; String mSelector = ""; if( (fromTime != null && fromTime.length() == 14) && (toTime != null && toTime.length() == 14)) { SimpleDateFormat SDF_YYYYMMDDHHMMSS_NO_MARK = new SimpleDateFormat( "yyyyMMddHHmmss"); Date fDate= SDF_YYYYMMDDHHMMSS_NO_MARK.parse(fromTime); Date tDate= SDF_YYYYMMDDHHMMSS_NO_MARK.parse(toTime); Calendar calendar = new GregorianCalendar(TimeZone.getTimeZone("GMT+09:00"),Locale.KOREA); calendar.setTime (fDate); Long ftimeMili = calendar.getTimeInMillis(); calendar.setTime (tDate); Long ttimeMili = calendar.getTimeInMillis(); timeSelector = "JMSTimestamp BETWEEN " + ftimeMili + " AND " + ttimeMili ; if(selector != null && selector.trim().length() > 0) { mSelector = selector + " AND " + timeSelector; } else { mSelector = timeSelector; } } FCQueueReceiverManager man = FCQueueReceiverManager.getInstance(); System.out.println("actionType = " + actionType); System.out.println("queueName = " + queueName); System.out.println("maxCount = " + maxCount); System.out.println("selector = " + selector); System.out.println("fromTime = " + fromTime); System.out.println("toTime = " + toTime); System.out.println("mSelector = " + mSelector); String errorMsg = null; try { if("DISPLAY".equals(actionType)) { System.out.println("DISPLAY : queueName = " + queueName); int mCount = Integer.parseInt(maxCount); al = displayQueue(queueName, mSelector, mCount); } else if("PURGE".equals(actionType)) { System.out.println("PURGE : queueName = " + queueName); int mCount = Integer.parseInt(maxCount); al = purgeQueue(queueName, mSelector, mCount, true); } else { System.out.println("Unhandled Action " + actionType); } } catch(Exception e) { errorMsg = e.getMessage(); } %> FC Queue Purger

FC Queue Receiver Manager

<% if(errorMsg != null) { %> Error : <%= errorMsg %> <% } %>
* Queue Name " >
* Message Count " >
Selector " >
Selector Time(yyyyMMddHHmmss) " > " >
Selector keys( EAIBWKCLS, EAISVCCD, OSIDINSTCD )

<% if(al == null || al.size() == 0) { %> <% } else { try { for(int i=0; i <% } } } catch(Exception e) { out.println(e.getMessage()); } } %>
JMS MsgID JMS delivered BwkCls EAISvcCd
No Message in Queue 
<%= om.getJMSMessageID() %>  <%= new Date(om.getJMSTimestamp()) %>  <%= msg.getBwkCls() %>  <%= msg.getEAISvcCd() %>