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 » IBM MQ API Support » Help With C# 4 Parallel Prog. and MQ Async Connection Archit

Post new topic  Reply to topic Goto page Previous  1, 2, 3  Next
 Help With C# 4 Parallel Prog. and MQ Async Connection Archit « View previous topic :: View next topic » 
Author Message
Vitor
PostPosted: Wed Sep 01, 2010 7:01 am    Post subject: Reply with quote

Grand High Poobah

Joined: 11 Nov 2005
Posts: 26093
Location: Texas, USA

codemonkey wrote:
Can you tell me why I should be using the XMS assembly from the client install rather than the supportpac?


Because there's no point in using the support pac if you're using v7 that has XMS support built it.

Because the support pac (despite some slightly dubious wording) isn't supported for v7.

Because the inbuilt XMS support in v7 will be developed & get bug fixes. The support pac will not.

There are undoubtably other reasons. I'm also surprised & interested to discover they're the same; I was given to understand v7 differed from the v6 (support pac) offering internally.
_________________
Honesty is the best policy.
Insanity is the best defence.
Back to top
View user's profile Send private message
mqjeff
PostPosted: Wed Sep 01, 2010 7:44 am    Post subject: Reply with quote

Grand Master

Joined: 25 Jun 2008
Posts: 17447

Also, just because the version # is the same, doesn't mean that the actual code is quite the same.

You might, for example, find that there are more IBM.XMS.<*>.DLL files in the product install than in the supportPac. For example, I'd be a bit surprised if the supportPac came with IBM.XMS.WCF.dll..

Everything else my esteemable colleague said is correct, that the one that ships with the product is supported and subject to PMRs and etc.
Back to top
View user's profile Send private message
codemonkey
PostPosted: Wed Sep 01, 2010 8:45 am    Post subject: Reply with quote

Novice

Joined: 20 Jul 2010
Posts: 11

mqjeff wrote:
Also, just because the version # is the same, doesn't mean that the actual code is quite the same.

You might, for example, find that there are more IBM.XMS.<*>.DLL files in the product install than in the supportPac. For example, I'd be a bit surprised if the supportPac came with IBM.XMS.WCF.dll..

Everything else my esteemable colleague said is correct, that the one that ships with the product is supported and subject to PMRs and etc.


Ok. I see. This is really getting pretty funny and ridiculous to me because I can't imagine releasing an messenger client (the SupportPac) that I didn't want my users to use. I'm sure you can see how confusing this might be.

Anyway. Yes there are lots of assemblies in the bin directory of the client install that are not in the SupportPac install. I hadn't bothered looking at those. This is good to know. The WCF assembly is especially interesting.

@Vitor You can download a freeware app called BitDiffer (http://www.bitwidgets.com/) and compare the assemblies and see that there are no differences between them. There is actually one difference, it's a guid value. Everything else is exactly the same.
Back to top
View user's profile Send private message
Vitor
PostPosted: Wed Sep 01, 2010 9:05 am    Post subject: Reply with quote

Grand High Poobah

Joined: 11 Nov 2005
Posts: 26093
Location: Texas, USA

codemonkey wrote:
I can't imagine releasing an messenger client (the SupportPac) that I didn't want my users to use. I'm sure you can see how confusing this might be.


Well the support pac isn't a client. It's a support pac, which includes client libs.

But if you mean "why did IBM release a support pac that isn't supposed to be used", then a) it was essential if you wanted to use XMS in those days before v7 was released & b) it's still essential for those sites who are starting to use XMS but haven't yet upgraded to v7.

(And you might be surprised how many sites do new development on old and/or out of support levels. Strange but true)

codemonkey wrote:
@Vitor You can download a freeware app called BitDiffer (http://www.bitwidgets.com/) and compare the assemblies and see that there are no differences between them.


That's nice. If I cared especially I'd run them through my copy of DiffDog.

In this instance I'm more interested in what it does than how it does it, and will assume I misunderstood what I was told. Or they were referring to these other assemblies you've found.

As a wise man once said, "I'm one of those people who are happy to wear cotton, but have no idea how it works".

Extra points for anyone identifying the reference.
_________________
Honesty is the best policy.
Insanity is the best defence.
Back to top
View user's profile Send private message
mqjeff
PostPosted: Wed Sep 01, 2010 9:14 am    Post subject: Reply with quote

Grand Master

Joined: 25 Jun 2008
Posts: 17447

Yes, to be clear, the supportPac is to be used on Version 6.0 Server and Client installs, and not on version 7.0 Server and Client installs.

It wasn't made a part of the product until version 7.

And when I say that the 'version might be the same but not necessarily the code', I mean the GAC assembly version only.
Back to top
View user's profile Send private message
codemonkey
PostPosted: Wed Sep 01, 2010 11:59 am    Post subject: Reply with quote

Novice

Joined: 20 Jul 2010
Posts: 11

Thanks for the replies guys. Though it may not seem like, its been helpful.

Do either of you know the difference between these two factory assemblies?

"IBM.XMS.Impl.WmqiFactoryFactoryImpl";
"IBM.XMS.Impl.WpmFactoryFactoryImpl";

From what I can tell the documentation doesn't provide any information about the XMSFactoryFactory class. It seems the only way to figure out what the factories parameter options mean is to disassemble the XMS library and follow the chain of activity. If you happen to know the differences between these two and don't mind sharing, that would save me some time.

Thanks again.
Back to top
View user's profile Send private message
fjb_saper
PostPosted: Wed Sep 01, 2010 2:18 pm    Post subject: Reply with quote

Grand High Poobah

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

codemonkey wrote:
Thanks for the replies guys. Though it may not seem like, its been helpful.

Do either of you know the difference between these two factory assemblies?

"IBM.XMS.Impl.WmqiFactoryFactoryImpl";
"IBM.XMS.Impl.WpmFactoryFactoryImpl";

From what I can tell the documentation doesn't provide any information about the XMSFactoryFactory class. It seems the only way to figure out what the factories parameter options mean is to disassemble the XMS library and follow the chain of activity. If you happen to know the differences between these two and don't mind sharing, that would save me some time.

Thanks again.

Don't know but off the top of my head you have 3 types of factories:
  • QueueConnectionFactory
  • TopicConnectionFactory
  • ConnectionFactory (generic, depending on parms will create either a JMS 1.2 factory, or a qcf, or a tcf)


Have fun
_________________
MQ & Broker admin
Back to top
View user's profile Send private message Send e-mail
mqjeff
PostPosted: Wed Sep 01, 2010 3:01 pm    Post subject: Reply with quote

Grand Master

Joined: 25 Jun 2008
Posts: 17447

XMS tries to be provider neutral, like JMS, even though it is shipped as a WMQ supportPac/part of the WMQ product.

WpmFactoryImpl may be the implementation factory for WebSphere SIBus.

It's really a far better idea to focus on the external documentation rather than trying to code from the assemblies or from the DLLS.
Back to top
View user's profile Send private message
codemonkey
PostPosted: Wed Sep 01, 2010 4:20 pm    Post subject: Reply with quote

Novice

Joined: 20 Jul 2010
Posts: 11

mqjeff wrote:
XMS tries to be provider neutral, like JMS, even though it is shipped as a WMQ supportPac/part of the WMQ product.

WpmFactoryImpl may be the implementation factory for WebSphere SIBus.

It's really a far better idea to focus on the external documentation rather than trying to code from the assemblies or from the DLLS.


I agree. The only problem is that the samples and corresponding documentation actually say not to use the sample code because it could introduce an issue with buffering.

I have a successful prototype running right now. It does all sorts of cool parallel connections and we frequently hit the max number of threads on the queue server, or at least that's what the queue server is reporting back to us. It essentially says it has run out of available resources. I know that's not because of unclosed connections.

So, what I've got right now is probably more than adequate. What I'm most interested in at this point is figuring out how to establish a peer-to-peer connection with MQ to have a sort of real-time connection to publish and consume. I really want to push the throughput to the fastest possible state. I've read that this is done with some binding settings? but I haven't been able to figure out how to get this working yet or find where this is documented. I'm really struggling with the lack of documentation.

Do you guys know where I can find some code samples or docs that explain how to do this?
Back to top
View user's profile Send private message
mqjeff
PostPosted: Wed Sep 01, 2010 6:11 pm    Post subject: Reply with quote

Grand Master

Joined: 25 Jun 2008
Posts: 17447

In order to do bindings, you have to run on the same machine as the queue manager.

And then you stop specifying any connection information at all other than the name of the qmgr.

You can otherwise tune your qmgr to provide more available resources to client applications without taking that step.

If you're confused about that part, you may want to engage a consultant.
Back to top
View user's profile Send private message
codemonkey
PostPosted: Thu Sep 02, 2010 6:11 am    Post subject: Reply with quote

Novice

Joined: 20 Jul 2010
Posts: 11

mqjeff wrote:
If you're confused about that part, you may want to engage a consultant.


lol, which is exactly why this is documented so poorly.

Ok. Clearly I'm not going to get what I need from here.

Back to top
View user's profile Send private message
mqjeff
PostPosted: Thu Sep 02, 2010 6:39 am    Post subject: Reply with quote

Grand Master

Joined: 25 Jun 2008
Posts: 17447

codemonkey wrote:
mqjeff wrote:
If you're confused about that part, you may want to engage a consultant.


lol, which is exactly why this is documented so poorly.

Ok. Clearly I'm not going to get what I need from here.



Performance tuning in MQ is fairly well documented, particularly in the Performance report SupportPacs.

It's just a complicated topic.
Back to top
View user's profile Send private message
Vitor
PostPosted: Thu Sep 02, 2010 6:54 am    Post subject: Reply with quote

Grand High Poobah

Joined: 11 Nov 2005
Posts: 26093
Location: Texas, USA

codemonkey wrote:
Ok. Clearly I'm not going to get what I need from here.


No, you'll get it from here which describes the different .NET connection models.

It also explicitly describes the difference between a client connection (over network) and a bindings connection (via direct call) which explains the increase in speed.

There are also any number of redbooks that talk about tuning both code & queue manager to increase speed.

I think the base problem is that what you need is for the software to work the way you think it should, and for the documentation to be laid out the way you think it should be. Regretably neither of these things are true, nor are they likely to be in the short term. Which is why the suggestion was made that someone more experienced may be able to short circuit the process for me.

It certainly doesn't imply that you're in any way wrong about the software not being constructed correctly (we've discussed my weakness in .NET) nor that the documenation has shortcommings (which everyone has discussed).
_________________
Honesty is the best policy.
Insanity is the best defence.
Back to top
View user's profile Send private message
shashikanth_in
PostPosted: Wed Sep 08, 2010 12:31 am    Post subject: Reply with quote

Centurion

Joined: 26 Feb 2009
Posts: 123

1) IBM Message Service Clients IA9H aka XMS .NET is a category 3 SupportPac and is fully supported. You get bug fixes also. This you can see in the SupporPac website in section "What is new in this release" and that lists the fixes went into a perticular release.

2) It is shipped as part of WebSphere MQ v7.0.1 and also available as a standalone. Both are forms are fully supported.

3) XMS .NET supports connections to WebSphere MQ, WebSphere Application Server and WebSphere Message Broker.

4) You can choose one of the form based on your requirement. If you application just connects to WebSphere MQ, then you could just install WMQ. Connections to WMQ requires WMQ client installation also. Hence it makes sense to install WMQ which will install XMS also.

On the other hand if you are connecting to WAS or WMB and not to WMQ, then you could just install the XMS supportPac.

5) To use XMS .NET API, you include IBM.XMS as a reference in your project. You could see IBM.XMS listed in your GAC.

6) AMQMDNET is for MQ .NET and hence can't be used in XMS .NET applications.

7) XMS .NET provides receiveing message asynchronously using message listerners. Please look at SampleConsumer sample.

9) You should be using any inner interfaces of XMS .NET like IBM.XMS.Impl.WmqiFactoryFactoryImpl";
"IBM.XMS.Impl.WpmFactoryFactoryImpl";
You always use IBM.XMS.

9) On MQ WCF, this is a custom channel functionality provided WMQ and a typical usage pattern scenario is as an interface to web services hosted over WebSphere MQ (SOAP/JMS). There are samples provided with WMQ 7.0.1 and you can have a look at them.


Just to clear the confusion: IA9H supportPac and IBM Message Service Clients shipped with WebSphere MQ v7.0.1 are one and same. Depending on your requirement, you can choose to install any one of them.

Hope this helps to clear most of the confusion/doubts.
Back to top
View user's profile Send private message
shashikanth_in
PostPosted: Wed Sep 08, 2010 8:40 pm    Post subject: Reply with quote

Centurion

Joined: 26 Feb 2009
Posts: 123

Correcting my previos update.

9) You should NOT be using any inner interfaces of XMS .NET like IBM.XMS.Impl.WmqiFactoryFactoryImpl";
"IBM.XMS.Impl.WpmFactoryFactoryImpl";

You should always use IBM.XMS.

Another point to note: ISession instance is what you will be using for sending and receiving messages. ISession objects can't be used across threads. It is recommended you use thread specific ISession instances.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic  Reply to topic Goto page Previous  1, 2, 3  Next Page 2 of 3

MQSeries.net Forum Index » IBM MQ API Support » Help With C# 4 Parallel Prog. and MQ Async Connection Archit
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.