You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@nifi.apache.org by "ta.fiat.belastingdienst.nl via users" <us...@nifi.apache.org> on 2024/11/29 12:30:30 UTC
JMS with IBM MQ
Hello,
Trying to migrate from Nifi 1.x to 2.0.0 with a IBM MQ client setup for JMS.
I got errors like:
java.lang.IllegalStateException: java.lang.ClassCastException: class
com.ibm.mq.jms.MQConnectionFactory cannot be cast to class
jakarta.jms.ConnectionFactory (com.ibm.mq.jms.MQConnectionFactory is in
unnamed module of loader org.apache.nifi.nar.InstanceClassLoader @328ac087;
jakarta.jms.ConnectionFactory is in unnamed module of loader
org.apache.nifi.nar.NarClassLoader @e3994ef)
So I moved tot jakarta MQ Client jar.
Now trying to connect, but i tries to connect to localhost insted of the given
broker URI in the parameter.
JMSWMQ0018: Failed to connect to queue manager 'xxxxxx' with connection mode
'Client' and host name 'localhost(1414)'
Looked up the code and saw in JMSConnectionFactoryHandler.java
if (connectionFactoryValue.startsWith("com.ibm.mq.jms")) {
List<String> ibmConList = new ArrayList<String>();
for (String broker : brokerList) {
String[] hostPort = broker.split(":");
if (hostPort.length == 2) {
ibmConList.add(hostPort[0] + "(" + hostPort[1] + ")");
} else {
ibmConList.add(broker);
}
}
But the library used now starts with: com.ibm.mq.jakarta.jms
Is this a bug or do I do something wrong ?
Tiemen Fiat
DTCA
\------------------------------------------------------------------------
De Belastingdienst stelt e-mail niet open voor aanvragen, aangiften,
bezwaarschriften, verzoeken, klachten, ingebrekestellingen en soortgelijke
formele berichten.
Dit bericht is uitsluitend bestemd voor de geadresseerde. Het bericht kan
vertrouwelijke informatie bevatten waarvoor de fiscale geheimhoudingsplicht
geldt. Als u dit bericht per abuis hebt ontvangen, wordt u verzocht het te
verwijderen en de afzender te informeren.
The Dutch Tax Administration does not accept filings, requests, appeals,
complaints, notices of default or similar formal notices, sent by email.
This message is solely intended for the addressee. It may contain information
that is confidential and legally privileged. If you are not the intended
recipient please delete this message and notify the sender.
Re: JMS with IBM MQ
Posted by "ta.fiat.belastingdienst.nl via users" <us...@nifi.apache.org>.
After some research in the code the <broker-fqdn>:<port> parameter worked. So
in my case explicitly define :1414 sfter the hostname. A bit strange, because
<broker-fqdn>(port) did not work and just <broker-fqdn> reverts to
localhost:1414.
For me it works ok for now.
Kind regards,
Tiemen Fiat
> \----- Oorspronkelijk bericht -----
> Van: "ta.fiat.belastingdienst.nl via users" <us...@nifi.apache.org>
> Aan: users@nifi.apache.org
> Cc:
> Onderwerp: JMS with IBM MQ
> Datum: vr 29 nov. 2024 13:30
>
>
>
> [EXTERNE E-MAIL] Dit bericht is afkomstig van een externe afzender. Wees
> voorzichtig met het openen van linkjes en bijlagen.
>
>
>
> Hello,
>
>
>
>
>
> Trying to migrate from Nifi 1.x to 2.0.0 with a IBM MQ client setup for JMS.
>
>
>
> I got errors like:
>
> java.lang.IllegalStateException: java.lang.ClassCastException: class
> com.ibm.mq.jms.MQConnectionFactory cannot be cast to class
> jakarta.jms.ConnectionFactory (com.ibm.mq.jms.MQConnectionFactory is in
> unnamed module of loader org.apache.nifi.nar.InstanceClassLoader @328ac087;
> jakarta.jms.ConnectionFactory is in unnamed module of loader
> org.apache.nifi.nar.NarClassLoader @e3994ef)
>
>
>
> So I moved tot jakarta MQ Client jar.
>
> Now trying to connect, but i tries to connect to localhost insted of the
> given broker URI in the parameter.
>
>
>
> JMSWMQ0018: Failed to connect to queue manager 'xxxxxx' with connection mode
> 'Client' and host name 'localhost(1414)'
>
>
> Looked up the code and saw in JMSConnectionFactoryHandler.java
>
> if (connectionFactoryValue.startsWith("com.ibm.mq.jms")) {
> List<String> ibmConList = new ArrayList<String>();
> for (String broker : brokerList) {
> String[] hostPort = broker.split(":");
> if (hostPort.length == 2) {
> ibmConList.add(hostPort[0] + "(" + hostPort[1] +
> ")");
> } else {
> ibmConList.add(broker);
> }
> }
>
>
>
> But the library used now starts with: com.ibm.mq.jakarta.jms
>
> Is this a bug or do I do something wrong ?
>
>
> Tiemen Fiat
> DTCA
>
>
>
>
>
>
> \------------------------------------------------------------------------
> De Belastingdienst stelt e-mail niet open voor aanvragen, aangiften,
> bezwaarschriften, verzoeken, klachten, ingebrekestellingen en soortgelijke
> formele berichten.
> Dit bericht is uitsluitend bestemd voor de geadresseerde. Het bericht kan
> vertrouwelijke informatie bevatten waarvoor de fiscale geheimhoudingsplicht
> geldt. Als u dit bericht per abuis hebt ontvangen, wordt u verzocht het te
> verwijderen en de afzender te informeren.
>
> The Dutch Tax Administration does not accept filings, requests, appeals,
> complaints, notices of default or similar formal notices, sent by email.
> This message is solely intended for the addressee. It may contain
> information that is confidential and legally privileged. If you are not the
> intended recipient please delete this message and notify the sender.
\------------------------------------------------------------------------
De Belastingdienst stelt e-mail niet open voor aanvragen, aangiften,
bezwaarschriften, verzoeken, klachten, ingebrekestellingen en soortgelijke
formele berichten.
Dit bericht is uitsluitend bestemd voor de geadresseerde. Het bericht kan
vertrouwelijke informatie bevatten waarvoor de fiscale geheimhoudingsplicht
geldt. Als u dit bericht per abuis hebt ontvangen, wordt u verzocht het te
verwijderen en de afzender te informeren.
The Dutch Tax Administration does not accept filings, requests, appeals,
complaints, notices of default or similar formal notices, sent by email.
This message is solely intended for the addressee. It may contain information
that is confidential and legally privileged. If you are not the intended
recipient please delete this message and notify the sender.