Java и MSMQ
Мне было любопытно, есть ли у кого-нибудь предложения в библиотеке Java, которая предоставляет доступ к MSMQ? Я загрузил пробную версию J-Integra Java-COM-библиотеки и создал и запускал пример приложения MSMQ, но мне было любопытно, есть ли какие-либо хорошие (бесплатные:)) альтернативы. Я столкнулся с несколькими реализациями JNI, такими как jMSMQ и несколькими другими, но я предпочел бы избегать JNI, если это возможно.
Мы также исследовали некоторые решения .NET ↔ JMS, такие как JNBridge (с ActiveMQ). Я думаю, что наша компания решила централизовать нашу очередность в MSMQ, так что это будет наше идеальное решение.
Мы надеемся использовать WCF (netMsmq или msmqIntegration) на стороне .NET. Я немного обеспокоен тем, как сторона java будет обрабатывать сообщения WCF (двоичное кодирование), но там должны быть варианты (customBinding с текстовым кодированием и транспортом MSMQ?), Поэтому я не слишком беспокоюсь об этом. В основном беспокоит получение доступа к MSMQ на Java.
Другим вариантом является просто наложить тонкий слой веб-сервиса на входной конец каждой очереди и добиться взаимодействия таким образом. Однако производительность здесь немного беспокоит.
Любые предложения? Большое спасибо за любое время.
Ответы
Ответ 1
Насколько я понимаю, J-Integra является единственной чистой Java-реализацией MSMQ, т.е. это единственная альтернатива, если вы не работаете в Windows. (Пожалуйста, дайте мне знать, есть ли другие альтернативы!)
Apache Camel и другие используют JNI для доступа к Windows API (DLL файлам), что, очевидно, означает, что он работает только в Windows.
В настоящее время я пытаюсь выполнить приведенный здесь код http://www.codeplex.com/MsmqJava, который кажется простым в использовании, но я не уверен, как работают транзакции.
Ответ 2
В CodePlex есть библиотека с открытым исходным кодом: MsmqJava. Свободный.
Ответ 3
Я автор jni4net, межпроцессный мост с открытым исходным кодом между JVM и CLR. Он построен на вершине JNI и PInvoke. Не требуется код C/С++. Надеюсь, это поможет вам.
Ответ 4
Вы также можете попробовать http://javamsmq.codeplex.com/, который также предоставляет полное решение совместимости MSMQ JAVA. В целом это имеет Unicode ASCII все Функциональность. В другом открытом источнике с dll, имеющем проблемы с утечкой памяти, такие как сбой приложения. Но этот открытый источник не имеет проблемы с утечкой памяти.
Ответ 5
Обновить. Этот ответ больше не применяется для комментария:
Компонент msmq Camel прекращен: fusesource.com/forums/thread.jspa?messageID=6040
Вы можете посмотреть, как это делает Apache Camel: Apache Camel: msmq