2009-11-20 8 views
6

Sto tentando di inviare un messaggio a un server java su un MQ Websphere che utilizza JMS come protocollo di trasporto. Posso tranquillamente rilasciare messaggi sul MQ utilizzando le librerie fornite da IBM, ma il server li rifiuta. Suppongo (si spera correttamente) che ciò avvenga perché mi mancano varie intestazioni/proprietà specifiche JMS sul messaggio MQ.Utilizzo di Websphere MQ con JMS da un'applicazione .NET

Mi sono assicurato che i payload per i messaggi siano gli stessi controllando la coda (sono entrambi i messaggi della mappa se ciò aiuta), ma non si vuole implementare completamente lo JMS Websphere MQ protocol solo per farlo funzionare.

Mi chiedo se qualcuno è riuscito a farlo funzionare e, in caso affermativo, qual è la quantità minima di informazioni che è necessario specificare nell'intestazione JMS? Ci sono alternative al fare questo direttamente sul MQ (ne ho viste alcune sull'utilizzo di java interop, ma questo è qualcosa che penso sarebbe eccessivo).

Qualsiasi aiuto sarebbe molto apprezzato!

+0

Potrebbe inviare il messaggio di errore che si ottiene, controllare anche i log MQ per i dettagli. Hai un motivo e un codice di errore? – Karl

+0

Il messaggio di errore dice solo che il messaggio non è un MapMessage. – jonnii

risposta

2

È possibile incollare il codice Java che si sta utilizzando per leggere il messaggio. È quel codice supponendo che il messaggio sia un "MapMessage". Normalmente qualcosa inserito in una coda da un client non java verrà visualizzato come TextMessage o BytesMessage.

Il WebsphereMQ JMS api normalmente funziona correttamente leggendo quei messaggi senza le intestazioni JMS se si legge come TextMessage/BytesMessage come put.

Nel mio codice server, il mio contenuto è normalmente messo in coda come byte, e quindi appare come BytesMessage, ma nel caso in cui ottengo un messaggio che è stato messo manualmente in coda, prendo il classcastexception, e test per vedere se è in realtà un TextMessage.

+0

Il codice java sta aspettando un MapMessage. Penso che sarebbe bello cambiarlo in una versione futura per utilizzare TextMessage e decodificare il contenuto in modo esplicito. Mettere un messaggio mappa sul cavo fa qualcos'altro riguardo le intestazioni JMS extra? – jonnii

1

WebSphere MQ non ha messaggi di errore molto chiari. Le cose che suggerisco di verificare quando qualcosa è andato storto sono:

  1. Dettagli eccezione e le loro cause ricorsive.
  2. Registri errori MQ.
  3. Registri eventi generati da MQ.
  4. .FDC file.
1

Si sta tentando di utilizzare MQI per inviare messaggi JMS? Dai un'occhiata alle librerie XMS di IBM. Forniranno tutto ciò di cui hai bisogno. Le librerie forniscono un'implementazione .NET di JMS che funziona con WebsphereMQ. Ho usato queste librerie molte volte nell'ultimo anno, parlando tra i sistemi java e .net, e sono stato molto contento della funzionalità.

XMS .NET Library Download

+0

Grazie, darò un'occhiata a questo. – jonnii

0

Penso di aver avuto lo stesso problema e non ho potuto ottenere XMS al lavoro. Nel caso in cui è ancora un problema per voi, this might help

saluti Kristoffer

Problemi correlati