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 » WebSphere Message Broker (ACE) Support » problem with an user defined node from a subflow

Post new topic  Reply to topic Goto page 1, 2  Next
 problem with an user defined node from a subflow « View previous topic :: View next topic » 
Author Message
john01
PostPosted: Tue Dec 28, 2010 7:27 am    Post subject: problem with an user defined node from a subflow Reply with quote

Novice

Joined: 16 Jun 2010
Posts: 21
Location: PT

Hi,

I'm using the WMB v7.0.0.2.

I have a user defined node from a subflow that has a MQ input node linked to a output node.

However, when I drag and drop my UDN into a flow the toolkit doesn't reconize that flow is now "runnable".
I've tried clean project but the problem mantains.

Any suitable suggestion?

Btw, I've found a workaround with a combination of drag, drop and delete with other nodes and worked. But this is not a suitable way...

Thanks.


Last edited by john01 on Wed Dec 29, 2010 8:45 am; edited 1 time in total
Back to top
View user's profile Send private message
lancelotlinc
PostPosted: Tue Dec 28, 2010 10:00 am    Post subject: Reply with quote

Jedi Knight

Joined: 22 Mar 2010
Posts: 4941
Location: Bloomington, IL USA

Could I ask you a couple of questions, John?

1. What is the UDN doing?
2. What functions have you used in the UDN? (ie. are you compiling the UDN with third party libraries?)
3. What advantage are you obtaining by using a UDN rather than a Java Compute Node (JCN)?
4. If you do not include your UDN in the subflow, and put a JCN in its place, do you get the same or different behaviour from the toolkit?
_________________
http://leanpub.com/IIB_Tips_and_Tricks
Save $20: Coupon Code: MQSERIES_READER
Back to top
View user's profile Send private message Send e-mail
john01
PostPosted: Tue Dec 28, 2010 12:31 pm    Post subject: Reply with quote

Novice

Joined: 16 Jun 2010
Posts: 21
Location: PT

First of all, thanks for your reply lancelotlinc.
Second, my apologies if I didn't understand some questions meaning.

lancelotlinc wrote:

1. What is the UDN doing?

For now is just a POC. Later will be like a generic initializer. I would like to promote the MQ name and then read some settings from DB.
As I've said, in this POC I have just put a MQ input node and a output node.

lancelotlinc wrote:

2. What functions have you used in the UDN? (ie. are you compiling the UDN with third party libraries?)

I've used the toolkit wizards and I haven't added any kind os external libraries.

lancelotlinc wrote:

3. What advantage are you obtaining by using a UDN rather than a Java Compute Node (JCN)?

Mainly because is more simple and reliable to construct what I want. And If you are talking about a Java user-defined input node, that's not so trivial to implement than a subflow as a UDN.

lancelotlinc wrote:

4. If you do not include your UDN in the subflow, and put a JCN in its place, do you get the same or different behaviour from the toolkit?

As far as I know the JavaCompute node supported by toolkit palette doesn't work as a input node. Maybe with Java user-defined input node approach, right?
Back to top
View user's profile Send private message
Vitor
PostPosted: Tue Dec 28, 2010 12:38 pm    Post subject: Reply with quote

Grand High Poobah

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

IMHO there are 2 distinct topics here:

1) Why doesn't your flow show as "runnable" with your UDN?

WMB clearly doesn't believe your UDN has a valid input method (top level "runnable" flows must have a means by which data can enter). If you believe that this is not the case, review your UDN's coding & configuration.

2) Why use a UDN?

Well this splits down a bit as well. Sometimes you talk about a subflow, sometimes you talk about a UDN. These are 2 different constructs. If you have a subflow that reads a DB for good & sufficient reason so be it. If you have a UDN that's reading a DB, why bother? What does the UDN do that one of the built-in nodes does not?

Also where does "promoting the MQ name" fit into this? Does this subflow / UDN read a queue as well?

I suppose it summarises as "what concept are you trying to prove?". Better information, better advice.
_________________
Honesty is the best policy.
Insanity is the best defence.
Back to top
View user's profile Send private message
mqjeff
PostPosted: Tue Dec 28, 2010 1:01 pm    Post subject: Reply with quote

Grand Master

Joined: 25 Jun 2008
Posts: 17447

Vitor wrote:
2) Why use a UDN?

Well this splits down a bit as well. Sometimes you talk about a subflow, sometimes you talk about a UDN.


Except in v7, one can compile a Subflow *into* a UDN. So the two topics can collapse again.
Back to top
View user's profile Send private message
Vitor
PostPosted: Tue Dec 28, 2010 1:22 pm    Post subject: Reply with quote

Grand High Poobah

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

mqjeff wrote:
Vitor wrote:
2) Why use a UDN?

Well this splits down a bit as well. Sometimes you talk about a subflow, sometimes you talk about a UDN.


Except in v7, one can compile a Subflow *into* a UDN. So the two topics can collapse again.


Ah!

This explains a lot, and justifies my signature once more.

(Too busy reading up on SVN to go through the WMBv7 docs in any detail)
_________________
Honesty is the best policy.
Insanity is the best defence.
Back to top
View user's profile Send private message
john01
PostPosted: Tue Dec 28, 2010 1:37 pm    Post subject: Reply with quote

Novice

Joined: 16 Jun 2010
Posts: 21
Location: PT

Vitor wrote:
IMHO there are 2 distinct topics here:

1) Why doesn't your flow show as "runnable" with your UDN?

WMB clearly doesn't believe your UDN has a valid input method (top level "runnable" flows must have a means by which data can enter). If you believe that this is not the case, review your UDN's coding & configuration.


It doesn't appear "runnable" at first attemp. But if I did this kind of combination it works: put a dummy MQ input > save > put my UDN > save > delete the dummy MQ input > save. I've already deployed using this workaround and works fine.
But doing this type of combination steps is not suitable/ pretty.

Vitor wrote:

2) Why use a UDN?

Well this splits down a bit as well. Sometimes you talk about a subflow, sometimes you talk about a UDN. These are 2 different constructs. If you have a subflow that reads a DB for good & sufficient reason so be it. If you have a UDN that's reading a DB, why bother? What does the UDN do that one of the built-in nodes does not?

Also where does "promoting the MQ name" fit into this? Does this subflow / UDN read a queue as well?

I suppose it summarises as "what concept are you trying to prove?". Better information, better advice.



Why this POC?
I want to distribute my 'starter' subflow to another developer team. I've supposed that make my UDN from a subflow was the simplest way to distribute my code ensuring the integrity of it!

http://publib.boulder.ibm.com/infocenter/wmbhelp/v7r0m0/index.jsp?topic=/com.ibm.etools.mft.doc/bs37330_.htm

http://mqseries.net/phpBB2/viewtopic.php?p=271493

I've already implemented a simple 'starter' subflow, and a new flow always appears "runnable" when I d&d my subflow into it.
My subflow has the "MQ name" promoted.
Back to top
View user's profile Send private message
Vitor
PostPosted: Tue Dec 28, 2010 1:40 pm    Post subject: Reply with quote

Grand High Poobah

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

Given my extensive knowledge of this subject (!) it sounds like a bug in the tooling to me.
_________________
Honesty is the best policy.
Insanity is the best defence.
Back to top
View user's profile Send private message
john01
PostPosted: Tue Dec 28, 2010 1:41 pm    Post subject: Reply with quote

Novice

Joined: 16 Jun 2010
Posts: 21
Location: PT

Vitor wrote:
mqjeff wrote:
Vitor wrote:
2) Why use a UDN?

Well this splits down a bit as well. Sometimes you talk about a subflow, sometimes you talk about a UDN.


Except in v7, one can compile a Subflow *into* a UDN. So the two topics can collapse again.


Ah!

This explains a lot, and justifies my signature once more.

(Too busy reading up on SVN to go through the WMBv7 docs in any detail)


I've noticed that
No problem!
Back to top
View user's profile Send private message
lancelotlinc
PostPosted: Wed Dec 29, 2010 5:19 am    Post subject: Reply with quote

Jedi Knight

Joined: 22 Mar 2010
Posts: 4941
Location: Bloomington, IL USA

john01 wrote:

Vitor wrote:

2) Why use a UDN?

Why this POC?
I want to distribute my 'starter' subflow to another developer team. I've supposed that make my UDN from a subflow was the simplest way to distribute my code ensuring the integrity of it!

http://publib.boulder.ibm.com/infocenter/wmbhelp/v7r0m0/index.jsp?topic=/com.ibm.etools.mft.doc/bs37330_.htm

http://mqseries.net/phpBB2/viewtopic.php?p=271493

I've already implemented a simple 'starter' subflow, and a new flow always appears "runnable" when I d&d my subflow into it.
My subflow has the "MQ name" promoted.


I call this the "Can't Touch This" paradigm.

What would be more useful to your team members, in my opinion, is a selection of template patterns to choose from.

Making yourself a god (little g) to other people is too self serving and creates a fallible dependency on you. We all want to feel important, but the age of closed source code has long since past.

"Join the movement." NFL Play 60 ESB commercial

We are "open source" now. Share the wealth. Don't hoard. Besides, some of your team mates might have some great insight to share with you and if you close the implementation where they can't see whats going on, then you limit your ability to learn from them.

Not to say that UDNs dont have a place. Just saying your motivation, as you've described it, is off-base.

I'm sure I'll hear from my friend Vitor.
_________________
http://leanpub.com/IIB_Tips_and_Tricks
Save $20: Coupon Code: MQSERIES_READER
Back to top
View user's profile Send private message Send e-mail
Vitor
PostPosted: Wed Dec 29, 2010 5:40 am    Post subject: Reply with quote

Grand High Poobah

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

lancelotlinc wrote:
I'm sure I'll hear from my friend Vitor.


You want to start a poll "Should Vitor stop posting" I'll abide by the will of a simple majority.

lancelotlinc wrote:
We are "open source" now. Share the wealth. Don't hoard. Besides, some of your team mates might have some great insight to share with you and if you close the implementation where they can't see whats going on, then you limit your ability to learn from them.


Unless you are or work for a consultancy/software firm & wish to retain IP/copyright/etc, then a black box solution might be attractive.

lancelotlinc wrote:
Making yourself a god (little g) to other people is too self serving and creates a fallible dependency on you. We all want to feel important, but the age of closed source code has long since past.


Have you got the code for WMQ? Or WMB? Or all the commercial solutions you've developed & sold?

john01 wrote:
I want to distribute my 'starter' subflow to another developer team. I've supposed that make my UDN from a subflow was the simplest way to distribute my code ensuring the integrity of it!


I'd say it's a viable way to distribute code, even within team members with no IP issues. Ideal for common code like logging, error handling, the sorts for things I (and I imagine a good many others) have been using sub flows for for years. This (from my extensive research!!) just appears to be a packaging thing.

As to ensuring the integrity, I'm a great believer in control.

lancelotlinc wrote:
"Join the movement." NFL Play 60 ESB commercial


I have no comment, except that I find American Football incomprehensible.

lancelotlinc wrote:
I call this the "Can't Touch This" paradigm.


And a valuable strategy I've employed. There are always parts of the system you don't want touched.
_________________
Honesty is the best policy.
Insanity is the best defence.
Back to top
View user's profile Send private message
lancelotlinc
PostPosted: Wed Dec 29, 2010 5:43 am    Post subject: Reply with quote

Jedi Knight

Joined: 22 Mar 2010
Posts: 4941
Location: Bloomington, IL USA

john01 wrote:
As far as I know the JavaCompute node supported by toolkit palette doesn't work as a input node. Maybe with Java user-defined input node approach, right?


I would try this pattern first, before going with the UDN:

[Input Node] -> JCN -> [Output Node]

Not sure why you want to read a database to find out initialization data each and every message? Does the data in the database change every time a new message arrives? Seems like a bottleneck to me.
_________________
http://leanpub.com/IIB_Tips_and_Tricks
Save $20: Coupon Code: MQSERIES_READER
Back to top
View user's profile Send private message Send e-mail
lancelotlinc
PostPosted: Wed Dec 29, 2010 5:45 am    Post subject: Reply with quote

Jedi Knight

Joined: 22 Mar 2010
Posts: 4941
Location: Bloomington, IL USA

Vitor wrote:
lancelotlinc wrote:
I'm sure I'll hear from my friend Vitor.


You want to start a poll "Should Vitor stop posting" I'll abide by the will of a simple majority.

lancelotlinc wrote:
We are "open source" now. Share the wealth. Don't hoard. Besides, some of your team mates might have some great insight to share with you and if you close the implementation where they can't see whats going on, then you limit your ability to learn from them.


Unless you are or work for a consultancy/software firm & wish to retain IP/copyright/etc, then a black box solution might be attractive.

lancelotlinc wrote:
Making yourself a god (little g) to other people is too self serving and creates a fallible dependency on you. We all want to feel important, but the age of closed source code has long since past.


Have you got the code for WMQ? Or WMB? Or all the commercial solutions you've developed & sold?

john01 wrote:
I want to distribute my 'starter' subflow to another developer team. I've supposed that make my UDN from a subflow was the simplest way to distribute my code ensuring the integrity of it!


I'd say it's a viable way to distribute code, even within team members with no IP issues. Ideal for common code like logging, error handling, the sorts for things I (and I imagine a good many others) have been using sub flows for for years. This (from my extensive research!!) just appears to be a packaging thing.

As to ensuring the integrity, I'm a great believer in control.

lancelotlinc wrote:
"Join the movement." NFL Play 60 ESB commercial


I have no comment, except that I find American Football incomprehensible.

lancelotlinc wrote:
I call this the "Can't Touch This" paradigm.


And a valuable strategy I've employed. There are always parts of the system you don't want touched.


I like your posts Vitor. Since this philosophical discussion is larger than the current OP topic, I'll start a discussion in General Discussion group.
_________________
http://leanpub.com/IIB_Tips_and_Tricks
Save $20: Coupon Code: MQSERIES_READER
Back to top
View user's profile Send private message Send e-mail
smdavies99
PostPosted: Wed Dec 29, 2010 6:17 am    Post subject: Reply with quote

Jedi Council

Joined: 10 Feb 2003
Posts: 6076
Location: Somewhere over the Rainbow this side of Never-never land.

lancelotlinc wrote:

Not sure why you want to read a database to find out initialization data each and every message? Does the data in the database change every time a new message arrives? Seems like a bottleneck to me.


If all the flows use this common UDN then this is a bottleneck and can (depending upon the message rate) have a very detremental affect on throughput.
This is a very common problem.
One solution is as follows:-

Read the data into shared Variables and do regular refreshed via timer nodes.
Use BEGIN ATOMIC ... END to restrict the read/update access to the variables.

One system I worked on implemented this and the throughput went from 20/sec to 34/sec. The DB in this case was a remote SQLServer system.
We were experiencing DB Locks. Once this was implemented, there were no more locks.
_________________
WMQ User since 1999
MQSI/WBI/WMB/'Thingy' User since 2002
Linux user since 1995

Every time you reinvent the wheel the more square it gets (anon). If in doubt think and investigate before you ask silly questions.
Back to top
View user's profile Send private message
lancelotlinc
PostPosted: Wed Dec 29, 2010 6:25 am    Post subject: Reply with quote

Jedi Knight

Joined: 22 Mar 2010
Posts: 4941
Location: Bloomington, IL USA

smdavies99 wrote:
lancelotlinc wrote:

Not sure why you want to read a database to find out initialization data each and every message? Does the data in the database change every time a new message arrives? Seems like a bottleneck to me.


If all the flows use this common UDN then this is a bottleneck and can (depending upon the message rate) have a very detremental affect on throughput.
This is a very common problem.
One solution is as follows:-

Read the data into shared Variables and do regular refreshed via timer nodes.
Use BEGIN ATOMIC ... END to restrict the read/update access to the variables.

One system I worked on implemented this and the throughput went from 20/sec to 34/sec. The DB in this case was a remote SQLServer system.
We were experiencing DB Locks. Once this was implemented, there were no more locks.


That is sort of the solution I was walking towards. I was trying to get john to be more interactive in this discussion. As you discovered, caching the data can be a huge benefit.

I would have ended up using a Singleton with a daemon background thread doing the refreshes. Same solution as you, just using simple Java rather than a message flow.
_________________
http://leanpub.com/IIB_Tips_and_Tricks
Save $20: Coupon Code: MQSERIES_READER
Back to top
View user's profile Send private message Send e-mail
Display posts from previous:   
Post new topic  Reply to topic Goto page 1, 2  Next Page 1 of 2

MQSeries.net Forum Index » WebSphere Message Broker (ACE) Support » problem with an user defined node from a subflow
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.