2013-04-08 4 views
1

HornetQClient에서 ServerLocator를 생성하기 위해 HornetQ core API를 사용하고 있습니다. ServerLocator는 큐를 생성하는 데 사용됩니다.HornetQClient에서 max-size-bytes 및 address-full-policy 설정

TransportConfiguration connectorConfig = new TransportConfiguration(InVMConnectorFactory.class.getName()); 

ServerLocator locator = HornetQClient.createServerLocatorWithoutHA(connectorConfig); 

int ackBatchSize = ConfigWrapperHelper.getIntParameter(ProductMarkingConfigParamEnum.ACK_BATCH_SIZE_FOR_JMS_QUEUES); 
locator.setAckBatchSize(ackBatchSize); 
locator.setConsumerWindowSize(CONSUMER_WINDOW_SIZE); 
locator.setClientFailureCheckPeriod(Long.MAX_VALUE); 
locator.setConnectionTTL(-1); 

ClientSessionFactory clientSessionFactory = locator.createSessionFactory(connectorConfig); 

ClientSession clientSession = _clientSessionFactory.createSession(XA, AUTO_COMMIT_SENDS, AUTO_COMMIT_ACKS); 
clientSession.createQueue(queueName, queueName, IS_DURABLE); 

문제가 우리가 큐의 각각에 대해 최대 크기 바이트와 테 주소 풀 정책을 구성 할 필요가있다 : 여기에 코드입니다.

XML을 통해이 작업을 수행하는 방법을 알고 있지만 대기열을 구성하기 위해 hornetq core를 사용하고 있으므로 이러한 매개 변수도 코드를 통해 구성해야합니다. . 방법이 AddressSettings이 ServerLocator으로 개체를 구성하는 -

나는 이러한 매개 변수를 설정할 수 있습니다 AddressSettings라는 클래스가있다

내 질문은 보았다?

또는 HornetQCLient에서 생성 된 ServerLocator에서 이러한 매개 변수를 구성하는 또 다른 방법이 있습니까?

답변

1

AddressSettings는 서버의 속성이므로 클라이언트에서 설정할 수 없습니다. HornetQServer에서이를 사용하거나 동등한 XML을 변경할 수 있습니다.

AddressSettings는 와일드 카드를 기반으로합니다. 따라서 규칙에 따라 대기열의 이름과 일치하는 주소 설정을 생성 할 수 있습니다.

이 포함 된 서버로 작업하는 경우, 당신은이를 사용할 수 있습니다

server.getAddressSettingsRepository().addMatch("<your-expression-matchin your queue(s)", setting); 

는 XML을 사용하여 구성하려면 문서의이 부분을보고 :

http://docs.jboss.org/hornetq/2.2.14.Final/user-manual/en/html/queue-attributes.html#queue-attributes.address-settings

보스 7 standalone-all.xml (또는 hornetq/messaging이 포함 된 독립형 * .xml)에서 동일한 XML 스 니펫을 찾을 수 있습니다.

+0

Horn을 사용하고 있기 때문에 이해합니다. etQCLient, 나는 AddressSettings를 사용할 수 없다. 하지만 현재는 XML을 사용하여 HornetQClient를 구성하지는 않습니다. 어떻게 그런 XML을 추가 할 수 있습니까? 이 XML은 어디에 있어야합니까? –

+0

(게시물에 나와있는 정보로 답변을 수정하십시오) –