.NET WMQ API를 사용하여 .NET 응용 프로그램에서 WebSphere MQ (WebSphere MQ Server v7)를 통해 JMS 메시지를 보내려고합니다. WebSphere MQ Client v7.5 및 amqmdnet.dll 버전 7.5.0.0을 사용하고 있습니다..NET WMQ API에서 JMSDeliveryMode 속성을 읽을 수 있습니까?
JMSDeliveryMode
속성 (Dlv
속성, jms
RFH2 폴더)을 읽을 때 매우 이상한 동작이 있습니다. JMS 응용 프로그램 (WebSphere Application Server v7에서 호스트되는 서블릿)이 전송하는 등록 정보 값은 Persistent
(2)로 설정되지만 .NET 클라이언트는 항상 1 (즉 Non_persistent
)을 읽습니다. 내 .NET 응용 프로그램이 라우터/전달자로 작동하고 올바른 구성으로 메시지를 전달해야하므로 올바른 값을 읽어야합니다.
RFHUtils을 사용하여 JMS 메시지를 시뮬레이션하려고했습니다. 배달 모드를 1로 설정하고 .NET 클라이언트에 보내면 다시 읽습니다.하지만 MQMD에서 MQ 메시지의 지속성을 변경하면 0을 읽습니다. JMSDeliveryMode
의 값이 전혀 사용되지 않고 .NET 클라이언트 항상 Persistence
속성에서 값을 읽지 만 잘못된 동작입니다! DeliveryMode.NON_PERSISTENT
DeliveryMode.PERSISTENT
Persistence
정확한 값 (발
- 1 (jms.jar)에서
JMSDeliveryMode
정확한 값이 두 성질은 올바른 다른 범위의 값을 가지고 amqmdnet.dll) :- 0-
MQC.MQPER_NOT_PERSISTENT
- 1-
MQC.MQPER_PERSISTENT
- 2-
MQC.MQPER_PERSISTENCE_AS_Q_DEF
/MQC.MQPER_PERSISTENCE_AS_TOPIC_DEF
- 0-
MQ .NET API는 메시지에 포함 된 내용을 제공하지 않습니다. 그것은 심지어 올바른 값을 보내는 것을 허용하지 않습니다. MQ.NET API가 "기본"구현 인 경우 완전한 제어를 제공해야합니다. 상위 계층 (JMS)이 전송 계층 (MQ)에서 직접 하드 코딩 된 동작을하는 이유를 이해할 수 없습니다. 일부 브리지에서는 별도로 정의해야합니다. –