ASG
IBM
Zystems
Cressida
Icon
Netflexity
 
  MQSeries.net
Search  Search       Tech Exchange      Education      Certifications      Library      Info Center      SupportPacs      LinkedIn  Search  Search                                                                   FAQ  FAQ   Usergroups  Usergroups
 
Register  ::  Log in Log in to check your private messages
 
RSS Feed - WebSphere MQ Support RSS Feed - Message Broker Support

MQSeries.net Forum Index » General IBM MQ Support » Omitting the RFH2 header in a WCF custom channel?

Post new topic  Reply to topic
 Omitting the RFH2 header in a WCF custom channel? « View previous topic :: View next topic » 
Author Message
gs
PostPosted: Mon Sep 05, 2011 12:32 am    Post subject: Omitting the RFH2 header in a WCF custom channel? Reply with quote

Master

Joined: 31 May 2007
Posts: 254
Location: Sweden

Hi all,

We're currently doing a PoC on MQ access from BizTalk using a WCF custom channel.
BizTalk successfully outputs messages onto the queue using this URI:
Code:
jms:/queue?destination=myQueue@myQmgr&connectionFactory=connectQueueManager(myQmgr)
binding(client)clientChannel(myChannel)clientConnection(myHost)
&initialContextFactory=com.ibm.mq.jms.Nojndi

// above definition is one line split for readability (admin)


However, the messages contain an RFH2 header which i'd like to omit. It's not mentioned in the documentation, but is there a way of controlling this in the URI? In other words, is there a targetClient equivalent to use in this case?

We're on BizTalk 2009 using MQ client 7.0.1.6.
Back to top
View user's profile Send private message
fjb_saper
PostPosted: Mon Sep 05, 2011 3:13 am    Post subject: Reply with quote

Grand High Poobah

Joined: 18 Nov 2003
Posts: 20756
Location: LI,NY

As I understand it "myqueue" is a JNDI construct. In the corresponding JNDI you need to specify targetClient=MQ.
You might also want to play with the file context JNDI, instead of using the NoJNDI context factory...

You could try (without any implication that it might work at all) the uri form for myqueue as "queue:///<queue name here>?targetClient=1" but that would only work if you are using XMS behind the scene... and I don't know that the WCF channel actually is...

Have fun
_________________
MQ & Broker admin
Back to top
View user's profile Send private message Send e-mail
exerk
PostPosted: Mon Sep 05, 2011 3:30 am    Post subject: Reply with quote

Jedi Council

Joined: 02 Nov 2006
Posts: 6339

fjb_saper wrote:
...and I don't know that the WCF channel actually is...

Apologies if I'm stating the bleeding obvious here, but, WCF is Windows Communication Foundation. It's integrated onto the top of the Message Service Client for DotNet.
_________________
It's puzzling, I don't think I've ever seen anything quite like this before...and it's hard to soar like an eagle when you're surrounded by turkeys.
Back to top
View user's profile Send private message
gs
PostPosted: Mon Sep 05, 2011 4:36 am    Post subject: Reply with quote

Master

Joined: 31 May 2007
Posts: 254
Location: Sweden

Don't know if I misunderstood your reasoning, but "myQueue" is just my placeholder for the actual queue name.

The "jms://" as part of the URI seems a bit confusing as WCF interfaces to XMS.NET...as exerk mentions.
For the initial context, the manual states that it must be set to Nojndi.
See the URI syntax here: http://publib.boulder.ibm.com/infocenter/wmqv7/v7r0/topic/com.ibm.mq.csqzau.doc/ts20640_.htm

The XMS URI specification contains a targetClient parameter but the WCF uses another URI format. I'll ask the BizTalk developer to try though, thanks.
Back to top
View user's profile Send private message
fjb_saper
PostPosted: Mon Sep 05, 2011 9:19 am    Post subject: Reply with quote

Grand High Poobah

Joined: 18 Nov 2003
Posts: 20756
Location: LI,NY

if the Nojndi connection factory is the equivalent to using the QMGR as a JNDI provider, then I stand by my old principle: It is way better for you to use the file based JNDI (level of indirection, more professional, etc...)

The documentation does not say you have to use this JNDI. It just says that a JNDI is mandatory...
Of course the parameters have been described for the Nojndi provider and will be somewhat different if you use the file JNDI provider.

However I firmly believe that it would be a beneficial exercise to work with the file JNDI provider. IBM for reasons of simplicity and demonstration has used in the past the qmgr as JNDI provider far too often. I personally wish they would ban using the QMGR as JNDI provider. (10 minus points in my score if you use it for anything approaching a dev/qa/prod environment).

Have fun
_________________
MQ & Broker admin
Back to top
View user's profile Send private message Send e-mail
gs
PostPosted: Mon Sep 05, 2011 10:25 pm    Post subject: Reply with quote

Master

Joined: 31 May 2007
Posts: 254
Location: Sweden

fjb_saper wrote:
if the Nojndi connection factory is the equivalent to using the QMGR as a JNDI provider, then I stand by my old principle: It is way better for you to use the file based JNDI (level of indirection, more professional, etc...)


Fully agreed, I too prefer administered objects.

fjb_saper wrote:

The documentation does not say you have to use this JNDI. It just says that a JNDI is mandatory...
Of course the parameters have been described for the Nojndi provider and will be somewhat different if you use the file JNDI provider.


Unfortunately it does, see the documentation link above.
"contextFactory is required and must be set to com.ibm.mq.jms.Nojndi"
Back to top
View user's profile Send private message
fjb_saper
PostPosted: Tue Sep 06, 2011 1:53 pm    Post subject: Reply with quote

Grand High Poobah

Joined: 18 Nov 2003
Posts: 20756
Location: LI,NY

gs wrote:
fjb_saper wrote:
if the Nojndi connection factory is the equivalent to using the QMGR as a JNDI provider, then I stand by my old principle: It is way better for you to use the file based JNDI (level of indirection, more professional, etc...)


Fully agreed, I too prefer administered objects.

fjb_saper wrote:

The documentation does not say you have to use this JNDI. It just says that a JNDI is mandatory...
Of course the parameters have been described for the Nojndi provider and will be somewhat different if you use the file JNDI provider.


Unfortunately it does, see the documentation link above.
"contextFactory is required and must be set to com.ibm.mq.jms.Nojndi"


I am reading it with a grain of salt as in the same breath it says that the Nojndi.jar needs to be on the classpath. Translate that into using the file based JNDI, have the corresponding jar on the classpath, change the initial context factory and url, change the parameters as shown in the AXIS part of the SOAP manual and try.

OK, the manual says "must be set", but would it work with the file based JNDI? Try it out and let us know...
_________________
MQ & Broker admin
Back to top
View user's profile Send private message Send e-mail
Display posts from previous:   
Post new topic  Reply to topic Page 1 of 1

MQSeries.net Forum Index » General IBM MQ Support » Omitting the RFH2 header in a WCF custom channel?
Jump to:  



You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
Protected by Anti-Spam ACP
 
 


Theme by Dustin Baccetti
Powered by phpBB © 2001, 2002 phpBB Group

Copyright © MQSeries.net. All rights reserved.