독립형 ActiveMQ가있는 wildfly의 ActiveMQ Artemis

마르코 드 아 브루

MDB내장 ActiveMQ Artemis를 사용하여 버전 5.13.3을 실행하는 독립 실행 형 ActiveMQ-Server에 연결하는 데 사용하려고합니다 . Artemis가 지원되는 ActiveMQ 프로토콜과 통신 할 수없는 것 같습니다.


ActiveMQ 독립 실행 형 브로커 에는 다음이 있습니다 transportConnectors.

<transportConnectors>
    <transportConnector name="auto" uri="auto://localhost:5671?protocolDetectionTimeOut=5000&amp;wireFormat.maxFrameSize=104857600"/>
    <transportConnector name="http" uri="http://0.0.0.0:8180?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/>
    <transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600" />
    <transportConnector name="amqp" uri="amqp://0.0.0.0:5672?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/> 
    <transportConnector name="stomp" uri="stomp://0.0.0.0:61613?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/> 
    <transportConnector name="mqtt" uri="mqtt://0.0.0.0:1883?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/> 
    <transportConnector name="ws" uri="ws://0.0.0.0:61614?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/>
</transportConnectors>

Wildfly MessageBean 에는 다음이 있습니다 Annotation.

@MessageDriven(activationConfig =
{
        @ActivationConfigProperty(propertyName="destinationType", propertyValue="javax.jms.Queue"),
        @ActivationConfigProperty(propertyName="destination", "TestDestination"),
        @ActivationConfigProperty(propertyName="clientID", propertyValue = "test"),
        @ActivationConfigProperty(propertyName="connectionParameters", propertyValue = "host=127.0.0.1;port=5671"),  
        @ActivationConfigProperty(propertyName="connectorClassName", propertyValue = "org.apache.activemq.artemis.core.remoting.impl.netty.NettyConnectorFactory"),
        @ActivationConfigProperty(propertyName="acknowledgeMode", propertyValue="Auto-acknowledge")
}, mappedName = "TestDestination")
public class MessageProcessingBean implements MessageListener {

연결하기로 선택한 커넥터에 따라 ActiveMQ-Server에서 다른 오류 메시지를받습니다.

auto-endpoint에 연결 하면 다음 메시지가 생성됩니다.

오류 | 연결을 수락 할 수 없습니다 : java.lang.IllegalStateException : 연결 형식을 감지 할 수 없습니다.

wildfly-side에 오류가 없습니다.


Openwire-endpoint에 연결 하면 다음 메시지가 생성됩니다.

경고 | 전송 연결 : tcp : //127.0.0.1 : 45000 실패 : java.io.IOException : 알 수없는 데이터 유형 : 77

이것은 또한 wildfly 측에 오류를 생성합니다.

17 : 04 : 23,384 오류 [org.apache.activemq.artemis.core.client] (Thread-16 (ActiveMQ-client-netty-threads-1716275972))> AMQ214013 : 패킷 디코딩 실패 : java.lang.IllegalArgumentException : AMQ119032 : 잘못된 유형 : 1 at org.apache.activemq.artemis.core.protocol.core.impl.PacketDecoder.decode (PacketDecoder.java:413) at org.apache.activemq.artemis.core.protocol.ClientPacketDecoder.decode (ClientPacketDecoder .java : 60) at org.apache.activemq.artemis.core.protocol.ClientPacketDecoder.decode (ClientPacketDecoder.java:39) at org.apache.activemq.artemis.core.protocol.core.impl.RemotingConnectionImpl.bufferReceived (RemotingConnectionImpl .java : 324) at org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl $ DelegatingBufferHandler.bufferReceived (ClientSessionFactoryImpl.java:1105) at org.apache.activemq.artemis.core.remoting.impl.netty.io.netty.handler의 io.netty.channel.AbstractChannelHandlerContext.fireChannelRead (AbstractChannelHandlerContext.java:294)의 io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead (AbstractChannelHandlerContext.java:308)의 ActiveMQChannelHandler.channelRead (ActiveMQChannelHandler.java:68) .codec.ByteToMessageDecoder.channelRead (ByteToMessageDecoder.java:265) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead (AbstractChannelHandlerContext.java:308) at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead (AbstractChannelHandlerContext.java:294) at io. netty.channel.DefaultChannelPipeline.fireChannelRead (DefaultChannelPipeline.java:846) at io.netty.channel.nio.AbstractNioByteChannel $ NioByteUnsafe.read (AbstractNioByteChannel.java:131) at io.netty.channel.nio.NioEventLoop.processSelectedKey (NioEventLoop. 자바:511) at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized (NioEventLoop.java:468) at io.netty.channel.nio.NioEventLoop.processSelectedKeys (NioEventLoop.java:382) at io.netty.channel.nio.NioEventLoop io.netty.util.concurrent.SingleThreadEventExecutor $ 2.run (SingleThreadEventExecutor.java:112)의 .run (NioEventLoop.java:354) java.lang.Thread.run (Thread.java:745)

계속해서 모든 엔드 포인트에서 오류 메시지를받을 수 있습니다. 그 결과 ActiveMQ-Artemis는 ActiveMQ에서 지원하지 않는 데이터 형식으로 전송합니다.

ActiveMQ-Artemis를 독립형 ActiveMQ-Server와 연결하려면 어떤 단계를 수행해야합니까?

저스틴 버트 램

Wildfly 10은 ActiveMQ Artemis와 함께 제공되며 기본적으로 모든 MDB는 ActiveMQ Artemis JCA RA를 사용합니다. ActiveMQ Artemis JCA RA는 coreActiveMQ Artemis 브로커에서만 지원 하는 프로토콜을 사용합니다 . ActiveMQ 5.x 브로커는이 프로토콜을 이해하지 못합니다.

따라서 Wildfly 10에서 실행되는 MDB가 ActiveMQ 5.x 브로커의 메시지를 사용하도록하려면 ActiveMQ 5.x JCA RA ( OpenWireActiveMQ 5.x 브로커가 이해 하는 프로토콜을 말함)를 배포해야합니다. 이를 사용하도록 MDB를 구성합니다 (예 : 활성화 구성 속성을 통해).

그만한 가치는 ActiveMQ Artemis 브로커가 OpenWire프로토콜을 지원 하므로 레거시 ActiveMQ 5.x 클라이언트가 ActiveMQ Artemis 브로커에 연결할 수 있습니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

ActiveMQ Artemis 웹 콘솔

분류에서Dev

ActiveMQ Artemis 스레드 덤프

분류에서Dev

jmsMessageId가있는 ActiveMQ 지속 구독자

분류에서Dev

ActiveMQ Artemis의 부정적인 메시지 수

분류에서Dev

ActiveMQ Artemis 모니터링을위한 JMX 키를 찾고 정의하는 방법

분류에서Dev

ActiveMQ Artemis ActiveMQSecurityManager4 ClientID / Subscription 확인

분류에서Dev

ActiveMQ Artemis 업그레이드 질문 : HornetQ에서 Artemis 2.0으로

분류에서Dev

Artemis의 ActiveMQ 5.x sendFailIfNoSpace 설정에 해당하는 것은 무엇입니까?

분류에서Dev

ActiveMQ Artemis는 대기열 통계를 가져올 수 없습니다.

분류에서Dev

Apache ActiveMQ Artemis 주소가 이미 사용 중입니다.

분류에서Dev

임베디드 ActiveMQ Artemis를 깨끗하게 닫는 방법

분류에서Dev

Artemis-jms-client로 ActiveMQ Artemis에서 수신하면 InvalidDestinationException이 발생합니다.

분류에서Dev

CMakeLists가있는 ActiveMQ CMS

분류에서Dev

ActiveMQ의 Stringbuilder

분류에서Dev

ActiveMQ의 모든 구독자에게 알리는 방법

분류에서Dev

HA 클러스터 ActiveMQ Artemis에 대한 올바른 구성

분류에서Dev

ActiveMQ Artemis-메시지를 순차적으로 처리

분류에서Dev

ActiveMQ Artemis 장애 조치 대 클러스터링

분류에서Dev

ActiveMQ Artemis Java JPMS (Java Platform Module System)와 호환됩니까?

분류에서Dev

Boomi JMS 커넥터를 ActiveMQ Artemis로 구성

분류에서Dev

ActiveMQ Artemis는 STOMP 클라이언트에 전달되지 않은 메시지를 재생할 수 있습니까?

분류에서Dev

UINavigationController가있는 독립 실행 형 UINavigationBar의 뒤로 버튼

분류에서Dev

activemq Artemis에 연결할 때 nodejs stompit을 사용한 연결 시간 초과

분류에서Dev

ActiveMQ Artemis에서 JMX에 대한 사용자 비밀번호 인증 요구

분류에서Dev

ActiveMQ가 Camel의 Enum 헤더가있는 메시지를 수락 할 수 있습니까?

분류에서Dev

ActiveMQ Artemis 오류-AMQ224088 : LB와 핸드 셰이 킹하는 동안 시간 초과 (10 초)

분류에서Dev

구독자 대기열의 다중 인스턴스 | ActiveMQ

분류에서Dev

프로그래밍 방식으로 wildfly 10 (activemq)의 메시지 플러시

분류에서Dev

사용자 지정 jmx 포트가있는 브로커의 ActiveMQ 5.8 네트워크

Related 관련 기사

  1. 1

    ActiveMQ Artemis 웹 콘솔

  2. 2

    ActiveMQ Artemis 스레드 덤프

  3. 3

    jmsMessageId가있는 ActiveMQ 지속 구독자

  4. 4

    ActiveMQ Artemis의 부정적인 메시지 수

  5. 5

    ActiveMQ Artemis 모니터링을위한 JMX 키를 찾고 정의하는 방법

  6. 6

    ActiveMQ Artemis ActiveMQSecurityManager4 ClientID / Subscription 확인

  7. 7

    ActiveMQ Artemis 업그레이드 질문 : HornetQ에서 Artemis 2.0으로

  8. 8

    Artemis의 ActiveMQ 5.x sendFailIfNoSpace 설정에 해당하는 것은 무엇입니까?

  9. 9

    ActiveMQ Artemis는 대기열 통계를 가져올 수 없습니다.

  10. 10

    Apache ActiveMQ Artemis 주소가 이미 사용 중입니다.

  11. 11

    임베디드 ActiveMQ Artemis를 깨끗하게 닫는 방법

  12. 12

    Artemis-jms-client로 ActiveMQ Artemis에서 수신하면 InvalidDestinationException이 발생합니다.

  13. 13

    CMakeLists가있는 ActiveMQ CMS

  14. 14

    ActiveMQ의 Stringbuilder

  15. 15

    ActiveMQ의 모든 구독자에게 알리는 방법

  16. 16

    HA 클러스터 ActiveMQ Artemis에 대한 올바른 구성

  17. 17

    ActiveMQ Artemis-메시지를 순차적으로 처리

  18. 18

    ActiveMQ Artemis 장애 조치 대 클러스터링

  19. 19

    ActiveMQ Artemis Java JPMS (Java Platform Module System)와 호환됩니까?

  20. 20

    Boomi JMS 커넥터를 ActiveMQ Artemis로 구성

  21. 21

    ActiveMQ Artemis는 STOMP 클라이언트에 전달되지 않은 메시지를 재생할 수 있습니까?

  22. 22

    UINavigationController가있는 독립 실행 형 UINavigationBar의 뒤로 버튼

  23. 23

    activemq Artemis에 연결할 때 nodejs stompit을 사용한 연결 시간 초과

  24. 24

    ActiveMQ Artemis에서 JMX에 대한 사용자 비밀번호 인증 요구

  25. 25

    ActiveMQ가 Camel의 Enum 헤더가있는 메시지를 수락 할 수 있습니까?

  26. 26

    ActiveMQ Artemis 오류-AMQ224088 : LB와 핸드 셰이 킹하는 동안 시간 초과 (10 초)

  27. 27

    구독자 대기열의 다중 인스턴스 | ActiveMQ

  28. 28

    프로그래밍 방식으로 wildfly 10 (activemq)의 메시지 플러시

  29. 29

    사용자 지정 jmx 포트가있는 브로커의 ActiveMQ 5.8 네트워크

뜨겁다태그

보관