List of usage examples for com.rabbitmq.client Channel getChannelNumber
int getChannelNumber();
From source file:com.cisco.oss.foundation.message.RabbitMQMessageConsumer.java
License:Apache License
public void registerMessageHandler(MessageHandler messageHandler, boolean autoAck) { if (isRegistered.compareAndSet(false, true)) { try {// w w w . j av a 2 s . c om if (messageHandler instanceof AbstractRabbitMQMessageHandler) { String consumerTag = FlowContextFactory.getFlowContext() != null ? FlowContextFactory.getFlowContext().getUniqueId() : "N/A"; Channel channel = RabbitMQMessagingFactory.getChannel(); this.channelNumber = channel.getChannelNumber(); ((AbstractRabbitMQMessageHandler) messageHandler).setChannelNumber(channelNumber); this.consumerTag = channel.basicConsume(queueName, autoAck, consumerTag, (Consumer) messageHandler); } else { throw new IllegalArgumentException( "Using RabbitMQ consumerThreadLocal you must provide a valid RabbitMQ massage handler"); } } catch (IOException e) { // LOGGER.error("can't register a MessageHandler: {}", e); throw new QueueException("can't register a MessageHandler: " + e, e); } } }
From source file:com.cisco.oss.foundation.message.RabbitMQMessageConsumerWithoutTL.java
License:Apache License
RabbitMQMessageConsumerWithoutTL(String consumerName) { try {//w w w . j a v a 2s .c o m this.consumerName = consumerName; Configuration subset = configuration.subset(consumerName); queueName = subset.getString("queue.name"); String filter = subset.getString("queue.filter", ""); boolean isAutoDelete = subset.getBoolean("queue.isAutoDelete", false); boolean isDurable = subset.getBoolean("queue.isDurable", true); boolean isSubscription = subset.getBoolean("queue.isSubscription", false); long expiration = subset.getLong("queue.expiration", 1800000); long maxLength = subset.getLong("queue.maxLength", -1); boolean deadLetterIsEnabled = subset.getBoolean("queue.deadLetterIsEnabled", true); String deadLetterExchangeName = subset.getString("queue.deadLetterExchangeName", DLQ); String subscribedTo = isSubscription ? subset.getString("queue.subscribedTo", "") : queueName; String exchangeType = subset.getString("queue.exchangeType", isSubscription ? "topic" : "direct"); boolean isExclusive = subset.getBoolean("queue.isExclusive", false); try { RabbitMQMessagingFactory.INIT_LATCH.await(); } catch (InterruptedException e) { LOGGER.error("error waiting for init to finish: " + e); } Channel channel = RabbitMQMessagingFactory.createChannelWithoutTL(); channel.exchangeDeclare(subscribedTo, exchangeType, isDurable, false, false, null); Map<String, Object> args = new HashMap<String, Object>(); if (maxLength > 0) { args.put("x-max-length", maxLength); } if (expiration > 0) { args.put("x-message-ttl", expiration); } if (deadLetterIsEnabled) { channel.exchangeDeclare(deadLetterExchangeName, exchangeType, isDurable, false, false, null); args.put("x-dead-letter-exchange", deadLetterExchangeName); } String queue = channel.queueDeclare(queueName, isDurable, isExclusive, isAutoDelete, args).getQueue(); Map<String, String> filters = ConfigUtil.parseSimpleArrayAsMap(consumerName + ".queue.filters"); if (filters != null && !filters.isEmpty()) { for (String routingKey : filters.values()) { channel.queueBind(queue, subscribedTo, routingKey); } } else { channel.queueBind(queue, subscribedTo, "#"); } consumer = new QueueingConsumer(channel); // channel.basicConsume(queueName, true, consumer); LOGGER.info("created rabbitmq consumer: {} on exchange: {}, queue-name: {} channel number {}", consumerName, subscribedTo, queueName, channel.getChannelNumber()); } catch (IOException e) { throw new QueueException("Can't create consumer: " + e, e); } }
From source file:com.cisco.oss.foundation.message.RabbitMQMessageConsumerWithoutTL.java
License:Apache License
public void registerMessageHandler(MessageHandler messageHandler, boolean autoAck) { if (isRegistered.compareAndSet(false, true)) { try {//from w w w .ja va 2 s. c om if (messageHandler instanceof AbstractRabbitMQMessageHandler) { String consumerTag = FlowContextFactory.getFlowContext() != null ? FlowContextFactory.getFlowContext().getUniqueId() : "N/A"; Channel channel = consumer.getChannel(); ((AbstractRabbitMQMessageHandler) messageHandler).setChannelNumber(channel.getChannelNumber()); this.consumerTag = channel.basicConsume(queueName, autoAck, consumerTag, (Consumer) messageHandler); } else { throw new IllegalArgumentException( "Using RabbitMQ consumerThreadLocal you must provide a valid RabbitMQ massage handler"); } } catch (IOException e) { // LOGGER.error("can't register a MessageHandler: {}", e); throw new QueueException("can't register a MessageHandler: " + e, e); } } }
From source file:com.cisco.oss.foundation.message.ChannelWrapper.java
License:Apache License
protected static void closeChannelAndRemoveFromMap(Channel channel, String reason) { // Note: once channel was closed, any action on the object will result with AlreadyClosedException :( try {/*from www .j a v a 2s.c o m*/ if (channel != null) { int channelNumber = channel.getChannelNumber(); LOGGER.info("closeChannel " + channelNumber + " reason: " + reason); channel.close(200, reason); channels.remove(channelNumber); } } catch (IOException e) { e.printStackTrace(); } catch (TimeoutException e) { e.printStackTrace(); } catch (AlreadyClosedException e) { e.printStackTrace(); } }
From source file:com.cisco.oss.foundation.message.ChannelWrapper.java
License:Apache License
static Channel getChannel() { try {// w w w .j av a 2s . co m if (channelThreadLocal.get() == null) { if (connection != null && connection.isOpen()) { Channel channel = connection.createChannel(); channelThreadLocal.set(new ChannelWrapper(channel)); channels.put(channel.getChannelNumber(), channel); } else { throw new QueueException("RabbitMQ appears to be down. Please try again later."); } } return channelThreadLocal.get().getChannel(); } catch (IOException e) { throw new QueueException("can't create channel: " + e.toString(), e); } }
From source file:com.cisco.oss.foundation.message.ChannelWrapper.java
License:Apache License
static Channel createChannelWithoutTL() { try {/* w w w . java 2s . com*/ if (connection != null && connection.isOpen()) { Channel channel = connection.createChannel(); channels.put(channel.getChannelNumber(), channel); return channel; } else { throw new QueueException("RabbitMQ appears to be down. Please try again later."); } } catch (IOException e) { throw new QueueException("can't create channel: " + e.toString(), e); } }
From source file:com.esri.geoevent.transport.rabbitmq.RabbitMQChannelListener.java
License:Apache License
@Override public void onCreate(Channel channel) { notifyObservers(RabbitMQConnectionStatus.CREATED, LOGGER.translate("CHANNEL_CREATED", channel.getChannelNumber()), channel); }
From source file:com.esri.geoevent.transport.rabbitmq.RabbitMQChannelListener.java
License:Apache License
@Override public void onRecovery(Channel channel) { notifyObservers(RabbitMQConnectionStatus.RECOVERY, LOGGER.translate("CHANNEL_RECOVERED", channel.getChannelNumber()), channel); }
From source file:com.esri.geoevent.transport.rabbitmq.RabbitMQChannelListener.java
License:Apache License
@Override public void onRecoveryStarted(Channel channel) { notifyObservers(RabbitMQConnectionStatus.RECOVERY_STARTED, LOGGER.translate("CHANNEL_RECOVERY_STARTED", channel.getChannelNumber()), channel); }
From source file:com.esri.geoevent.transport.rabbitmq.RabbitMQChannelListener.java
License:Apache License
@Override public void onRecoveryCompleted(Channel channel) { notifyObservers(RabbitMQConnectionStatus.RECOVERY_COMPLETED, LOGGER.translate("CHANNEL_RECOVERY_COMPLETED", channel.getChannelNumber()), channel); }