2012-08-22 3 views
0

빠른 생성자 ESB (CSV를 XML로 변환) 및 느린 소비자 ESB (XML의 zip/base64/SOAP 배치 수행)가 있습니다. ESB는 JMS 주제를 통해 통신합니다. 이 디자인은 유산이며 변경할 수 없습니다. 대용량 CSV 파일을 처리 할 때 JBoss AS (5.2)는 생산자가 소비자를 범람하면서 중단됩니다. 이는 힙 크기가 4096M 인 경우에도 마찬가지입니다. JBoss/JMS가 처음인데 용서할 필요가 없다는 것을 용서하십시오.JBoss/JMS 메시지 속도 제한/흐름 제어 구성 방법

프로듀서 전송 설정

<action class="com.example.FooAction" name="ProcessFoo"> 
    <property name="springJndiLocation" value="FooEsbSpring" /> 
    <property name="exceptionMethod" value="exceptionHandler" /> 
    <property name="okMethod" value="processSuccess" /> 
    <property name="jndiName" value="topic/FooTopic" /> 
    <property name="connection-factory" value="ConnectionFactory" /> 
    <property name="unwrap" value="true" /> 
    <property name="security-principal" value="guest" /> 
    <property name="security-credential" value="guest" /> 
</action> 

프로듀서 보내는 코드 :

Message msg = MessageFactory.getInstance().getMessage(MessageType.JAVA_SERIALIZED); 
msg.getBody().add(foo); // foo is the business specific message 
new JMSRouter(config).process(msg); 

소비자 수신 설정 :

<jms-jca-provider connection-factory="ConnectionFactory" name="FooMessaging"> 
    <jms-bus busid="fooChannel"> 
     <jms-message-filter dest-name="topic/FooTopic" 
      dest-type="TOPIC" transacted="false" /> 
    </jms-bus> 
    <activation-config> 
     <property name="dLQMaxResent" value="1" /> 
    </activation-config> 
</jms-jca-provider> 

주제 설정

<server> 
<mbean code="org.jboss.jms.server.destination.TopicService" 
    name="jboss.esb.quickstart.destination:service=Topic,name=FooTopic" 
    xmbean-dd="xmdesc/Queue-xmbean.xml"> 
    <depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer 
    </depends> 
    <depends>jboss.messaging:service=PostOffice</depends> 
</mbean> 
</server> 

내가 지금까지 시도한 것들.

  • 소비자 ESB없이 게시자 ESB를 실행하십시오. 예상대로 문제가 없습니다.
  • 많은 질문이 있습니다. stackoverflow에 대한 기존 질문을 찾으십시오.
  • rate limiting에 대한 참조가 있지만 내 설정에 맞게 표시되지 않습니다.
  • 나는 내 자신의 백 오프 전략을 구현할 수 있기를 희망하면서 얼마나 많은 메시지가 아직 처리되지 않은 주제에 있는지 알아 내려고 API를 찾으려고 노력했다.
  • 여기를 보니 documentation입니다.
+0

찾고있는 백 오프 전략을 구축 할 수있는 MAXSIZE (이전 MAXDEPTH) 주제 설정을위한 속성 - 순간 테스트 : HTTP : //docs.jboss .org/jbossmessaging/docs/userguide-1.4.5.GA/html/configuration.html – Adam

답변

1

이 섹션 6.3.17.2. org.jboss.mq.server.jmx.Topic을보고 JMX를 사용하여 '깊이'관련 속성을 사용하십시오.

그것은 당신이 그냥 발견했습니다

+0

코드를 통해 어떻게 액세스 할 수 있습니까? – Adam

+0

답변 주셔서 감사 합니다만 JBoss MQ가 아닌 "JBoss 메시징"을 사용하고 있습니다 ... – Adam