2009-02-03 17 views
16

Tenía curiosidad si alguien tenía alguna sugerencia sobre una biblioteca Java que proporciona acceso a MSMQ? He descargado la versión de prueba de la biblioteca Java-COM de J-Integra y he creado y ejecuto su aplicación de ejemplo MSMQ, pero tenía curiosidad de si había algunas alternativas buenas (gratis :)). Me he encontrado con algunas implementaciones de JNI como jMSMQ y algunas otras, pero prefiero evitar JNI si es posible.Java y MSMQ

También hemos investigado algunos .NET < -> soluciones de interconexión JMS como JNBridge (con ActiveMQ). Creo que nuestra empresa ha decidido centralizar nuestras colas en MSMQ, por lo que sería nuestra solución ideal.

Esperamos utilizar WCF (netMsmq o msmqIntegration) en el lado .NET. Estoy un poco preocupado acerca de cómo el lado java se ocupará de los mensajes WCF (codificación binaria), pero debería haber opciones allí (CustomBinding con codificación de texto y transporte MSMQ?), Así que no estoy demasiado preocupado por eso. Mayormente preocupado por obtener acceso a MSMQ en Java.

Nuestra otra opción es simplemente poner una fina capa de servicio web en el extremo de entrada de cada cola, y lograr la interoperación de esa manera. Sin embargo, el rendimiento es un poco preocupante.

¿Alguna sugerencia? Muchas gracias por el tiempo de cualquier persona.

Respuesta

11

Por lo que tengo entendido, J-Integra es la única implementación pura de Java de MSMQ, es decir, esta es la única alternativa ative si no se está ejecutando en Windows. (Por favor, hágamelo saber si hay otras alternativas!)

Apache Camel y otros usos JNI para acceder a la API de Windows (archivos DLL), lo que obviamente significa que solo funciona en Windows.

Actualmente estoy probando el código proporcionado aquí http://www.codeplex.com/MsmqJava que parece fácil de usar, pero no estoy muy seguro de cómo funcionan las transacciones.

+0

No hice nada con las transacciones en la cosa MsmqJava. MsmqJava también confía en JNI para las api de MSMQ Win32. No sé una mejor manera de hacerlo.MSMQ no presenta una interfaz remota (documentada). – Cheeso

+0

J-Integra tampoco es completamente puro, ya que no se comunica directamente con MSMQ utilizando su puerto y protocolo. El cliente puede ejecutarse en una caja que no sea de Windows, pero se conecta a DCOM que luego se conecta a MSMQ. –

+0

_ "Apache Camel y otros usan JNI para acceder a la API de Windows (archivos DLL) lo que obviamente significa que ** solo funciona en Windows **" _ - MSMQ es solo Windows – MickyD

1

actualización: Esta respuesta ya no se aplica por comentario:

componente

Camel msmq se interrumpe: fusesource.com/forums/thread.jspa?messageID=6040

que te pueden echar un vistazo a cómo Apache Camel hace: Apache Camel: msmq

+0

Gracias por la respuesta, lo comprobaré –

+0

Esta página ya no está disponible. –

+0

¡Drat! Lo actualicé al único enlace que puedo encontrar en el sitio web de Camel sobre MSMQ. – laz

3

Hay una biblioteca de código abierto en CodePlex: MsmqJava. Gratis.

2

Soy el autor de jni4net, puente de intraproceso de fuente abierta entre JVM y CLR. Se basa en JNI y PInvoke. No se necesita código C/C++. Espero que te ayude.

2

También puede probar el http://javamsmq.codeplex.com/ que también proporciona una solución completa de interoperabilidad MSMQ JAVA.Además de tener todas las funciones ASCII Unicode.En otro dll basado en código abierto que tiene un problema de fuga de memoria como el bloqueo de la aplicación.Pero esta fuente abierta no tiene ningún problema de pérdida de memoria