Создать очередь просмотра только в Redhat MRG / Apache QPID - PullRequest
1 голос
/ 22 ноября 2011

Как заставить принудительно просматривать очередь только в Red Hat MRG / Apache QPID, чтобы клиенты могли только просматривать очередь.Даже если какой-либо клиент попытается получить сообщение из очереди, он не сможет это сделать.

1 Ответ

2 голосов
/ 25 ноября 2011

Я не думаю, что есть такая опция для настройки посредника, но ваши клиенты могут подключаться к очереди в режиме только просмотра.

direct://amq.direct//myqueue?browse=true

- РЕДАКТИРОВАТЬ-

Другой способ заставить клиентов использовать очереди browse_only.

package foo.bar;

import java.util.Hashtable;
import java.util.Map;

import org.apache.qpid.client.AMQDestination;
import org.apache.qpid.jndi.PropertiesFileInitialContextFactory;
import org.apache.qpid.jndi.ReadOnlyContext;

public class CustomPropertiesFileInitialContextFactory extends PropertiesFileInitialContextFactory {

    @SuppressWarnings({ "rawtypes", "unchecked" })
    @Override
    protected ReadOnlyContext createContext(Map data, Hashtable environment) {
        makeDestinationsReadOnly(data);
        return super.createContext(data, environment);
    }
    protected void makeDestinationsReadOnly(Map<String, AMQDestination> dests) {
        for(AMQDestination dest : dests.values()) {
            dest.setBrowseOnly(true);
        }
    }
}
...