Java priority queue

Java provides PriorityQueue, and I have gone through its API.
The implementation of PriorityQueue in Java does not provide method for increase or decrease key,
and there must be a reason for it.
But, when i go through books on data strucutre, a lot of them talk about the increase/decrease key function
of the PriorityQueue.
So I am just wondering, why is it that increase/decrease function not provided in PriorityQueue. I cannot come up with a reason for it, but i think there must be. Does anybody have any thought on this. Or is it just
because the designers thought its not needed?
I checked the source for the Priority Queue and the heapify() method was declared private.

lupansansei wrote:
I have used Java's priority queue an I have written my own but I have never come accros the terms "increase or decrease key". Do you mean something like 'upheap' or 'downheap' in relation to a 'heap' implementation meaning move an entry to it correct position if the key changes? If so then one should make the 'key' immutable so that the functions are not needed.
Yes, i mean 'upheap' or 'downheap' by increase or decrease key. Sorry
maybe my choice of words was not correct.
I couldn't get what you mean by 'key' immutable. Can you please explain it. If the key cannot change (i.e. it is immutable) then there is no need to ever change the position of an element.
>
Correct. Since the PriorityQueue does not need to implemented using a 'heap' there is no need for the heapify() method to be exposed. If one implemented using a balanced tree or a skip list the heapify() method would not be applicable.I am using PriorityQueue and i need to update the priority of the elements and i was wondering whether to implement the whole queue
myself or look for a better way of using the PriorityQueue class.
Do you have any suggestions for efficiently updating the priority of element?I have a priority queue implementation where elements know they are in a heap and know where they are in the heap. By doing this I can modify 'keys' and then move a value to it's correct place in the queue in a very short time. The limitations this feature imposes on the elements and the possibility of corrupting the heap means I don't often use this these days. It is far too error prone.
These days in my simulations I normally remove an element from the queue, process the element and then create new elements and insert them back in the queue. This sometimes takes 2 lots of Log(n) operations where my specialized priority queue just takes Log(n) operations. The code is just so much more maintainable and I accept the hit.

Similar Messages

  • Custom  order of priority queue

    I am a novice in Java. I intend to use a priority queue which holds objects. The objects have a string and two integers. I have to order the priority queue based on one of the integer.
    I write syntax according to my understanding please correct me.
    PriorityQueue<Object> pr = new PriorityQueue<Object>();
    comparable(){
    sort(Object.int2)// this is the place where I am confused
    }

    Here's an example:
    public class Caller
        public static void main(String[] args)
            Flight f1 = new Flight( "java", 2, 34 );
            Flight f2 = new Flight( "java", 2, 3 );
            Flight f3 = new Flight( "java", 2, 4 );
            Flight f4 = new Flight( "java", 2, 64 );
            Flight f5 = new Flight( "java", 2, 22 );
            Flight f6 = new Flight( "java", 2, 12 );
            PriorityQueue pq = new PriorityQueue();
            pq.add(f1);
            pq.add(f2);
            pq.add(f3);
            pq.add(f4);
            pq.add(f5);
            pq.add(f6);
            System.out.println(pq.poll());
            System.out.println(pq.poll());
            System.out.println(pq.poll());
            System.out.println(pq.poll());
            System.out.println(pq.poll());
            System.out.println(pq.poll());
    public class Flight implements Comparable
        private String airlinename;
        private int flightnumber;
        private int number;
        public int compareTo(Object o)
            Flight f = (Flight) o;
            return number - f.getNumber();
        public String toString()
            return airlinename + " - " + number;
        public Flight(String airname, int num1, int num2)
            airlinename = airname;
            flightnumber = num1;
            number = num2;
        public String getAirlinename()
            return airlinename;
        public void setAirlinename(String airlinename)
            this.airlinename = airlinename;
        public int getFlightnumber()
            return flightnumber;
        public void setFlightnumber(int flightnumber)
            this.flightnumber = flightnumber;
        public int getNumber()
            return number;
        public void setNumber(int number)
            this.number = number;
    }Got it?

  • Priority Queues

    hi iam a beginner in java, could you please help me with this code. thanks
    Implement (provide complete Java code) a priority queue using a singly linked list. You may call this class LinkedPriorityQueue. The use of classes contained in the Java Collections framework in the above implementing is strictly forbidden.
    You may need to write a second class, PQNode, which defines the nodes in your linked list. Feel free to implement the PQNode class in anyway that you see fit. However, the LinkedPriorityQueue class should implement all methods and constructors

    Here is the search of the forums
    http://search.java.sun.com/search/java/index.jsp?qp=&nh=10&qt=%22singly+linked+list%22&col=javaforums&x=23&y=16
    Here is a google search
    http://www.google.com/search?hl=en&lr=&ie=ISO-8859-1&q=%22singly+linked+list%22+java
    Due tomorrow???

  • D-ary heap with Priority Queue implementation

    I have to construct a program that find the k-th smallest integer in a given set S of numbers; read from the standard input a first line containing positive integers N, k, and d separated by spaces. Each of the following N lines contains a positive integer of the set S. I have to implement a generic d-ary heap class that implements all methods of the priority queue interface.
    i have the following code...but the inserting bubbling doesnt seem to wokr right...
    any help would be great:
    import java.util.*;   
    public class Heap {
        static Element[] heap;
        int N;
        static int k;
        int d;
        static int size = 0;
        Compare comp;
        public Heap(int nodes, int max, Compare c)
            N = max;
            d = nodes;
            heap = new Element[N];
            comp = c;
        public static void main(String args[])
            Scanner _scan = new Scanner(System.in);
      //      String Nkd = _scan.nextLine();
       //     Scanner _scanNkd = new Scanner(Nkd);
            int _N = 0;
            int _d = 0;
            Compare _c = new Compare();
                _N = _scan.nextInt();
                k = _scan.nextInt();
                _d = _scan.nextInt();
            Heap _heap = new Heap(_d,_N,_c);
            int i=0;
            int num=0;
            while(_scan.hasNextLine()&&num<_N)
                System.out.println("test" + _scan.nextInt());
                _heap.insert(i, _scan.nextInt());
                i++;
                size++;
                num++;
            for(int z=0;z<_N;z++)
            //    System.out.println(heap[z].getKey());
            Element kth = null;
            for(int j = 1; j <=k; j++)
                kth = _heap.removeMin();
            System.out.print(kth.getKey());
            System.out.print('\n');
            /*System.out.print(k);
            System.out.print('\n');
            System.out.print(_heap.size());
            System.out.print('\n');
            System.out.print('\n');
            System.out.print(heap[0].getKey());
            System.out.print('\n');
            System.out.print(heap[1].getKey());
            System.out.print('\n');
            System.out.print(heap[2].getKey());
            System.out.print('\n');
            System.out.print(heap[3].getKey());
            System.out.print('\n');
            System.out.print(heap[4].getKey());
            System.out.print('\n');
            System.out.print(heap[5].getKey());*/
        public void insert(int i, int e)
            heap[i] = new Element(e,i);
            this.bubbleUp(heap);
    public int size() {return size;}
    public boolean isEmpty() {return(size == 0);}
    public int min(){return heap[0].getKey();}
    public Element remove()
    int i = size-1;
    size--;
    return heap[i];
    public Element removeMin()
    Element min = this.root();
    if(size == 1)
    this.remove();
    else
    this.replace(this.root(), this.remove());
    this.bubbleDown(this.root());
    return min;
    public Element replace(Element a, Element b)
    a.setIndex(b.getIndex());
    a.setKey(b.getKey());
    return a;
    public void bubbleUp(Element e)
    Element f;
    while(!e.isRoot(e.getIndex()))
    f = this.getParent(e.getIndex());
    if(comp.compare(f,e) <= 0)
    break;
    else
    int temp = f.getIndex();
    f.setIndex(e.getIndex());
    e.setIndex(temp);
    swap(f,e);
    System.out.println("bubbling");
    e=f;
    public void bubbleDown(Element e)
    int i = e.getIndex();
    while(e.isInternal(i, size))
    Element s;
    if(!e.hasRight(i, size))
    s = this.getLeft(i);
    else if(comp.compare(this.getLeft(i), this.getRight(i)) <= 0)
    s = this.getLeft(i);
    else
    s = this.getRight(i);
    if(comp.compare(s,e) < 0)
    swap(e,s);
    e = s;
    else
    break;
    public void swap(Element x, Element y)
    int temp = x.getIndex();
    x.setIndex(y.getIndex());
    y.setIndex(temp);
    public Element root() {return heap[0];}
    public Element getLeft(int i) {return heap[i*2];}
    public Element getRight(int i) {return heap[i*2+1];}
    public Element getParent(int i) {return heap[i/2];}
    class Element
    private int key;
    private int index;
    public Element(int k, int i)
    key = k;
    index = i;
    public int getKey() {return key;}
    public void setKey(int k) {key = k;}
    public int getIndex() {return index;}
    public void setIndex(int i) {index = i;}
    public boolean isRoot(int i) {
    if (i == 0)
    return true;
    else
    return false;
    //return i == 1;
    public boolean hasLeft(int i, int size) {return 2*i <= size;}
    public boolean hasRight(int i, int size) {return 2*i+1 <= size;}
    public boolean isInternal(int i, int size) {return hasLeft(i, size);}
    public boolean isExternal(int i, int size) {return !isInternal(i, size);}
    class Compare implements Comparator<Element>
    public Compare(){}
    public int compare(Element a, Element b)
    int x=0;
    if(a.getKey() < b.getKey())
    x = -1;
    else if(a.getKey() == b.getKey())
    x = 0;
    else if(a.getKey() > b.getKey())
    x = 1;
    return x;

    Well, this might be a swifty thing to do, unfortunately the Java Dudes in their infinite wisdom decided that asynchronous servlets were a bad thing. I disagree mind you. So while you could do what you wanted, you still have all these threads hangin' out waiting for their work to be done, which is just really lamo.
    Anyhoo, to do this, just add a reference to the socket in the entry class, and when you pick up an entry from the heap, you can fetch the socket again, and send the results back to that socket. Of course you're probably going to moof up session info, and timeouts et. cetera, but it might work.

  • Wanted: Flexible Priority Queue

    Given this class
    class Foo {
    private int STATE, VAL;
    // STATEs are unique, VALs are not
    I want a collection C of Foo objects that supports these operations
    in at most O(log n) time.
    (1) boolean C.contains(Object o);
    --> Using STATE as the comparator
    (2) Object C.get(Object o);
    --> Return a reference to the collection object that equals o,
    again, using STATE as the comparator
    (3) Object C.minExtract();
    --> Remove and return the object with the minimum VAL.
    If there is a tie, choose arbitrarily.
    Operations (1) and (2) call for something like a TreeMap.
    But operation (3) wants to treat the collection as a priority queue,
    which is often implemented as a heap data structure -- which I don't
    see in the classes that come with java.
    In fact all the SortedSet and SortedMap collections seem to require
    unique keys, whereas operation (3) wants to keep the collection sorted
    by non-unique VALs.
    Question: are there off-the-shelf classes I can use to efficiently do what
    I want, or do I need to design it from scratch?
    thanks,
    roy

    DragonMan,
    I agree I may have to create a class which manages two data structures. The first, perhaps, a HashSet. but:
    The other a sorted List of some kind, ordered by VAL.The problem here is "what kind"? As I noted, all of java's sorted collections seem to require unique keys, but VAL is not unique. I suppose I could create my own red-balck tree or heap or whatever, but I'd like to see how much mileage I can get out of java first.
    Currently, I'm considering combining STATE and VAL to make a unique key (since STATE already is unique) whose order however, is dominated by the VAL component.
    roy

  • Implemeting a priority queue

    Hi all,
    i have written a priority queue which implements a priority queue interface however i'm getting a liitle stuck. I'm pretty new to Java programming, i'm trying to write a hosptial simulation where ill people arrive and are given a priority to be seen by a medic.
    Every patient that is added to the queue has an int prioriy and the patient that is serviced next is the one with the highest priority. There are three priorities, low, medium, high. If more than one patient has the same highest priority, the patient with that priority that has been longest in the queue will be serviced.
    Could you please help me out to see where my mistakes are?
    Thanks
    The priority queue interface
    import java.util.Iterator;
    public interface PriorityQueue
    * Adds element to the priority queue
    * @param element - the element to be added to the queue.
    public void add (Priority element);
    * Removes the next element from the priority queue
    * Precondition: size() != 0
    public void remove ();
    * The next element to be serviced. This is the element in the queue that has
    * the highest priority. If more than one element has the highest priority,
    * the one which was added to the queue earliest is returned.
    * Note that this has no effect on the queue - you must call remove as well to
    * change the queue state.
    * Precondition: size() != 0
    * @return the next element to be serviced.
    public Priority next();
    * @return the number of elements in the priority queue
    public int size();
    * @return an Iterator for the priority queue.
    public Iterator iterator
    The priority queue
    import java.util.ArrayList;
    import java.util.Iterator;
    public class PriorityQueueImpl implements PriorityQueue
    private final static int DEFAULT_PRIORITY_COUNT = 3;
    private ArrayList elements = new ArrayList();
    public void add (Priority element)
    elements.add (element);
    public void remove ()
    Iterator it = elements.iterator();
    it.remove();
    public Priority next()
    Iterator it = elements.iterator();
    Priority p, highestPriority;
    while (it.hasNext())
    p = it.next();
    if (p.priority > highestPriority.priority)
    highestPriority = p;
    else if (p.priority == highestPriority.priority &&
    p.admissionTime < highestPriority.admissionTime)
    highestPriority = p;
    public Iterator iterator()
    Iterator it = new Iterator()
    int size = size();
    int priority = priority;
    return it;
    public int size()
    int size = 0;
    if (queue[i] !=null)
    size += queue.size();
    return size;

    Hi there,
    I guess you are on the Herts uni course like myself, right? Have you had any luck with getting this to work, or are you still stuck like me?!
    cheers
    Matt Brett

  • Question: Priority Queue "deleteMin()" trouble

    Hello, I am having trouble formulating a delete() method here, which could also be called deleteMin() here.
    The priority queue, is suppose to have quick insertion O(1) time, and slow deletion O(N) because it's going to have to search through the unordered array, find the minimum object then delete it once "delete()" is called.
    However, I am stuck on trying to come up with the logic for my delete() method....
    Here's what I am thinking...
    I need to examine all the items and shift half of them, on average, down to fill in the hole once the minimum item is found.
    How would I find the minimum item, and once found how would I delete this? Any direction or statements you can show me to clear this up would be appreciated. Please see my code below :) Please excuse my empty javadocs as of right now, I do those last.
    Thank you
    * This class is to demonstrate.....
    * @version 1.0
    public class PriorityQ {
         private int maxSize;
         private long[] queArray;
         private int nItems;
          * Javadoc here
         public PriorityQ(int s) // constructor
              maxSize = s;
              queArray = new long[maxSize];
              nItems = 0;
          * Javadoc here
         public void insert(long value) {
              queArray[nItems] = value;
              nItems++;
          * Javadoc here
          public long remove () {
          * Javadoc here
         public long peekMin() {
                   return queArray[nItems - 1];
          * Javadoc here
         public boolean isEmpty() {
                   return (nItems == 0);
          * Javadoc here
         public boolean isFull() {
                   return (nItems == maxSize);
    } // end class PriorityQ
    class PriorityQApp {
                 public static void main(String[] args)
                    PriorityQ q1 = new PriorityQ(5);
                    q1.insert(30);
                    q1.insert(50);
                    q1.insert(10);
                    q1.insert(40);
                    while( !q1.isEmpty() )
                       long item = q1.remove();
                       System.out.print(item + " ");  // 10, 20, 30, 40, 50
                       }  // end while
                    System.out.println("");
         } // end main()
    } // end class PriorityQApp
    // //////////////////////////////////////////////////////////////Edited by: Cole1988 on Feb 21, 2009 9:03 AM

    Sorry no one got to you sooner.
    Using your instance variables:
    public long remove()
         long minValue = Long.MAX_VALUE;
         int minIndex = 0;
         for(int i = 0; i < nItems; i++) //Here we iterate through all the items to find the smallest one
              if(queArray[i] < minValue) //If this particular value is less than the smallest one found so far,
                   minValue = queArray; //This value is now the smallest one found so far
                   minIndex = i; //minIndex now contains the index of the smallest one found so far
         /*Now we can remove the smallest term, because after the above iteration, minIndex is the index number of the smallest value and minValue is the smallest value.*/
         for(int i = minIndex + 1; i < nItems; i++) //Starting at the term right AFTER the smallest one
              queArray[i-1]=queArray[i]; //Copy the value into the space right BEFORE it
         nItems--; //The number of items has decreased by one
         return minValue;
    }Note: This code does NOT resize your array after you remove an item; depending on how you'll implement it, you'll need to check if you're about to overflow the array by comparing nItems with queArray.length and resize your array accordingly.
    It seems like you're a bit confused about loops and iterating through arrays; I'd recommend reviewing a good Java book or online tutorial and practicing with some basic array iterations before you go any farther. You've got the basic grasp of things, it just hasn't "clicked" for you yet. :)
    Let me know if you need any more help or if you don't understand anything about what I just said.
    Regards,
    Alvin                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   

  • About priority queue

    I tried to use priority queue which I saw on the JavaTM 2 Platform
    Standard Ed. 5.0(on the web),but when I tried to create a priority queue for my work(PriorityQueue myQ = new PriorityQueue();)the compiler complaint about that,
    "C:\Program Files\Xinox Software\JCreator LE\MyProjects\Trypq\Trypq.java:7: cannot resolve symbol"
    and then I found that I can not find this priority queue class in JavaTM 2 Platform Std. Ed. v1.4.2,so what's wrong with this 2 different API,does it mean that I have to create the priority queue class by myself,because my work can only base on JavaTM 2 Platform Std. Ed. v1.4.2???
    can you help?
    thanks!

    The feature was added in the latest release of Java. If you want to use it, you have to have the latest release.
    Some of the concurrency features added in 1.5 (J2SE 5.0) were taken from Doug Lea's util.concurrent library, but I don't believe this was one of them. For those that were you have the option of using Doug's excellent library with pre 1.5 code.
    You could also write your own, but I wouldn't particularly recommend it if you can upgrade to J2SE 5.0
    Dave.

  • Adaptable Priority Queue ?

    I'm working on a program where I am creating an adaptable priority queue with heaps and I implement the heaps with linked binary trees. Know of any good examples or links on the subject? I know fundamentally what do do, but the syntax is the issue. Thanks for any help.......

    http://java.sun.com/j2se/1.5.0/docs/api/java/util/PriorityQueue.html

  • Priority Queue using Vector

    I am trying to develop Priority Queue using vector. For inserting elements I need to check if the inserted objects have greater key I want to shift them. In short, I want to store objects in vector in sorted manner (sort by key). I need help for that.
    The code I have created so far is like this:
    import PriorityQueue;
    import java.util.*;
    import java.io.*;
    public class PQItem
         private Object e;
         private int k;
         public PQItem(int key, Object element)
              k=key;
              e=element;
         public int key(){ return k;}
         public Object elelment(){ return e;}
         public void setkey(int key){k=key;}
         public void setElement(Object element){e=element;}
         public static void main(String args[])
              FileReader fr;
              fr = openfile();
         public static FileReader openfile()
              String line,name,file="test.txt";
              int vsize,k1,i1=0;
              boolean flag;
              Object e1,e2;
              //Vector v = new Vector();
              PriorityQueue q=new PriorityQueue();
              try
                   FileReader fr=new FileReader(file);
                   BufferedReader inFile = new BufferedReader(fr);
                   String del=",";
                   line=inFile.readLine();
                   StringTokenizer tokenizer=new StringTokenizer(line,del);
                   while(line!=null)
                        tokenizer = new StringTokenizer(line,del);
                        k1 = Integer.parseInt(tokenizer.nextToken());
                        e1 = tokenizer.nextToken();
                        //System.out.println(line);
                        q.InsertItem(line,i1);
                        line=inFile.readLine();
                        i1++;
                   flag=q.isEmpty();
                   System.out.println(flag);
                   vsize=q.size();
                   System.out.println(+vsize);
                   e2=q.last();
                   System.out.println(e2);
              }//try
              catch(FileNotFoundException exception)
                   System.out.println("The File "+file+" was not found");
              catch(IOException exception)
                   System.out.println(exception);
              return null;
         }//filereader
    //The other file is
    import java.util.*;
    public class PriorityQueue
         private Object[] a;
         Vector v = new Vector();
         //Constructor
         public PriorityQueue()
         public int size() {return v.size();}
         public boolean isEmpty() { return (v.size())==0;}
         public void InsertItem(Object e,int k)
              v.insertElementAt(e,k);
              //new code
              //for(int i=0;i<size;i++)
         public Object last()
              return v.lastElement();

    Why not let Java do the work - use a java.util.TreeSet instead of a Vector.
    Make your PQItem implement Comparable, write a compareTo(Object o) method (and an equals method for completeness) and you're golden. Then when you add(pqItem) it goes in the exact spot it belongs.

  • Priority Queue add help?

    ok, I'm making a priority queue from a List and I'm trying to figure out how to add to the queue so that the items are stored in the queue in order and this is what I have.
    On the line that starts if(newItem.compareTo... eclipse is giving me a warning:
    Type safety: The method compareTo(Object) belongs to the raw type Comparable. References to generic type Comparable<T> should be parameterized
    And I dont know what that means? will my add method work as planned?
    Also, my List class has a max size (that is private) and I want it so that if the priority queue tries to add over the max size it will throw an exception but the commented out line just causes an error...any ideas?
    Thanks
         public void enqueue(Comparable newItem) throws QueueException
              //if(aList.size() == MAXLIST) throws Exception
              if(aList.size() == 0) aList.add(1, newItem);
              else
                   for(int i = 1; i <= aList.size(); i++)
                        if(newItem.compareTo(aList.get(i)) == -1) aList.add(i, newItem);
         }

    And I dont know what that means? The warning is referring to generics: http://java.sun.com/docs/books/tutorial/extra/generics/index.html

  • Clearing JAVA Message Queue in PI 7.1

    Hi Experts
    I am working on a file to File Scenario, and file has been picked up on the sender CC and mesaages have been sent to JAVA queues, But the messages are stuck on the JAVA queues,
    Java Queue name: File_http://sap.com/xi/XI/SystemRecv
    How can I clear the JAVA message queue in PI 7.1
    Thanks
    PR

    If the messages are on the queue, usually one of the actions must be performed: a) Fix the related scenario and restart the messages or b) Manually cancel the messages. This is also advised on the note below under item "3. Troubleshooting Archiving / Deletion in the Adapter Framework"
    [Note 872388 - Troubleshooting Archiving and Deletion in PI|https://service.sap.com/sap/support/notes/872388]
    If you are having performance problems, please check if the messages are taking long time in TBDL/Holding status. Let us know if this is the case.

  • Java Message Queue/ JMS Vendor performance.

    Hi,
    I need some help from you folks. In our system we are dealing with large number (tens of thousands) of operations per second. I'm doing some research in order to determine if we can use JavaTM Message Service (JMS) API in this system. I red that Java Message Queue was voted "Best Java Messaging Tool" by Java Developer's Journal readers and JMQ now marked by iPlanet[tm] E-Commerce Solutions. So I'm looking for numbers. How many clients/operations iPlanet or other JMS vendors can support per second. Unfortunately I didn't find any concrete example of built systems, number of maximum operation supported per second.
    Please response to [email protected] also.
    Thanks in advance,
    Daniel Drazner

    Following configuration: pIII 1GHz, standard vm settings, JBoss 2.4.4, jdk1.3.3 sun
    My project (probably good optimized) has following performance:
    - asynchronous sending message to queue:20 ms
    - synchronous (send/replay) 200 ms
    This are statistics for single thread, but this is some how scalable, so for 20 parallel threads you will have the same performance.
    Topics are much faster, but I need PTP messaging

  • Java Print Queue Manager

    I am new to Java. I recently ran into a need to have a Java print queue manager to handle network printers. Is something like this already available or are there companies who can provide this?
    Please email me with any comments ([email protected]).
    Thank you in advance for any help.
    Regards,
    JS

    Have a look at javax.print API. I'll warn you, it's limited, but it can dynamically discover networked printers.

  • Java Message Queue 3.7 Update 2

    Hi,
    I am looking for an older version of the Java Message Queue Version 3.7 Update 2. I amunable to find thiss on the download site.
    Can any one direct me as to where I could get this from?
    Thanks,
    Ashwin

    Hi Ashwin,
    I'm afraid this isn't the forum for Java Message Queue. It is the forum for Oracle MessageQ, a different product altogether. I'm not sure which forum covers Java Message Queue.
    Regards,
    Todd Little
    Oracle Tuxedo Chief Architect

Maybe you are looking for