Как послать не JMS message через JMS?

Brat
Уже с Приветом
Posts: 1300
Joined: 30 Jun 2002 17:50
Location: IA -> CT -> NJ

Как послать не JMS message через JMS?

Post by Brat »

Задача: посылать messagе из JMS приложения в легаси систем, которая о никаком JMS и слыхом не слыхивала. Все конечно через MQ Series.

Проблема: MQ снабжает все JMS мессаджи своими JMS заголовками.

Как можно заставить MQ не включать JMS заголовок?

Аппликейшн не должен при этом использовать ничего кроме JMS.

Зараннее, супер-спасибо!!!!
Lazy44
Уже с Приветом
Posts: 525
Joined: 01 May 2002 20:29
Location: CT->MA->TX->UT

Post by Lazy44 »

Все ИМХО, так как я небольшой спец по MQSeries. По аналогу с Oracle AQ. Ключевое слово - transformation. Существует два способа - 1 Организовать transformation при enqueueing JMS message в non-JMS queue. 2 Организовать 2 queues - JMS and non-JMS и организовать propagation между этими двумя queues с использованием transformation.
Brat
Уже с Приветом
Posts: 1300
Joined: 30 Jun 2002 17:50
Location: IA -> CT -> NJ

Post by Brat »

Спасибо!!!
А можно ли обойдить без создания промежуточной queue? Может можно как-то заставить MQ клиента не включать JMS headers?
Lazy44
Уже с Приветом
Posts: 525
Joined: 01 May 2002 20:29
Location: CT->MA->TX->UT

Post by Lazy44 »

Brat wrote:Спасибо!!!
А можно ли обойдить без создания промежуточной queue? Может можно как-то заставить MQ клиента не включать JMS headers?

Опять таки ИМХО - заголовки опредляются типом queue и не зависят от клиента. Попробуйте найти пример, как enqueue JMS message into non-JMS queue. Хотя помоему так сделать нельзя в силу архитектуры любого queue менеджера.
Brat
Уже с Приветом
Posts: 1300
Joined: 30 Jun 2002 17:50
Location: IA -> CT -> NJ

Post by Brat »

Для входящих сообщений MQ client сам распознает что пришло - обычное MQ сообщение или JMS. Для JMS приложения это прозрачно. Это позволяет
легаси системз и Java JMS аппликейшинам писать в одну и ту же Queue, которую читает мое JMS аппликейшн.

Однако ПОСЫЛАЯ сообщения в Queue, которая ничего не знает о JMS, я получаю все тот же JMS заголовок.
trinidad
Уже с Приветом
Posts: 228
Joined: 18 Jul 2002 18:14
Location: FL

Post by trinidad »

...if you send a message from a JMS Client
application to a traditional MQSeries application which has no knowledge of
MQRFH2 headers... administrator indicates that the JMS Client is communicating with such an
application by setting the MQSeries Destination’s TargetClient value to
JMSC.MQJMS_CLIENT_NONJMS_MQ. This indicates that no MQRFH2 field is to
be produced. Note that if this is not done, the receiving application must be able to
handle the MQRFH2 field.


Грубо говоря, либо очередь должна быть сконфигурирована с учетом типа клиента (non-JMS), либо этот клиент должен уметь выбрасывать MQRFH2 из тела сообщения. Не помню, как получить размер этого заголовка, но наверняка это возможно. Ищите спасение в Redbooks...
Банзай!!!
User avatar
Blake
Уже с Приветом
Posts: 1102
Joined: 16 Sep 2003 04:41
Location: Out Of Blue

Re: Как послать не JMS message через JMS?

Post by Blake »

Brat wrote:Задача: посылать messagе из JMS приложения в легаси систем, которая о никаком JMS и слыхом не слыхивала. Все конечно через MQ Series.

Проблема: MQ снабжает все JMS мессаджи своими JMS заголовками.

Как можно заставить MQ не включать JMS заголовок?

Аппликейшн не должен при этом использовать ничего кроме JMS.

Зараннее, супер-спасибо!!!!


You could cast your queue to MQQueue
((com.ibm.mq.jms.MQQueue)queue).setTargetClient(1);
However it's not a pure jms anymore. The code snippet above make your app vendor specific.

It's better to create jndi bindings for your queues with all the properties you want
(create q(jms/YourQueueBinding) queue(PHYSICAL.QUEUE.NAME) tc(MQ))
either with JMSAdmin tool or with websphere app server admin console
and use jndi lookup to get the queue
javax.jms.Queue q = (javax.jms.Queue) ctx.lookup("jms/YourQueueBinding");
Brat
Уже с Приветом
Posts: 1300
Joined: 30 Jun 2002 17:50
Location: IA -> CT -> NJ

Post by Brat »

Спасибо всем огромное!!! Попробую поковыряться завтра с этим!

Return to “Вопросы и новости IT”