public void send( Destination destination, Message message, int deliveryMode, int priority, long timeToLive) throws JMSException { if (message == null) { throw new MessageFormatException(Messages.getString("MessageProducerImpl_0")); // $NON-NLS-1$ } // message.setJMSMessageID(MessageId.create()); message.setJMSDestination(destination); message.setJMSTimestamp(new Date().getTime()); message.setJMSPriority(priority); if (timeToLive > 0) { message.setJMSExpiration(System.currentTimeMillis() + timeToLive); } else { message.setJMSExpiration(0); } if (destination instanceof JMSTemporaryDestination) { message.setJMSDeliveryMode(DeliveryMode.NON_PERSISTENT); } else { message.setJMSDeliveryMode(deliveryMode); } session.sendMessage(message); }
public Message receive(long timeout) throws JMSException { if (messageListener != null) { throw new JMSException(Messages.getString("MessageConsumerImpl.0")); // $NON-NLS-1$ } if (timeout == DO_NOT_WAIT) { return messages.poll(); } try { return messages.poll(timeout, TimeUnit.MILLISECONDS); } catch (InterruptedException ex) { throw new JMSException(ex.getMessage()); } }
public void dispatchMessage() { MessageListener listener = messageListener; if (listener != null) { MessageImpl message = messages.poll(); if (message == null) { OM.LOG.warn(Messages.getString("MessageConsumerImpl.1")); // $NON-NLS-1$ return; } try { listener.onMessage(message); if (!session.getTransacted() && session.getAcknowledgeMode() != Session.CLIENT_ACKNOWLEDGE) { session.acknowledgeMessages(this); } } catch (RuntimeException ex) { OM.LOG.warn(ex); } } }