Author |
Message
|
ravipydi |
Posted: Wed Jan 27, 2010 3:30 pm Post subject: Where is the message flow code stored |
|
|
Novice
Joined: 17 May 2006 Posts: 11
|
When I deploy a Message Flow to the runtime component, where is the code binary stored on the server? I can see the registry, config information but not the actual code.
Does it exist in the broker database or file system or both? |
|
Back to top |
|
 |
broker_new |
Posted: Wed Jan 27, 2010 3:47 pm Post subject: |
|
|
 Yatiri
Joined: 30 Nov 2006 Posts: 614 Location: Washington DC
|
I second you on that..is this limitation covered in version 7.0.
Can we recover the deployed message flows,sets,...atleast in WMBv7.0? _________________ IBM ->Let's build a smarter planet |
|
Back to top |
|
 |
mqjeff |
Posted: Thu Jan 28, 2010 5:10 am Post subject: |
|
|
Grand Master
Joined: 25 Jun 2008 Posts: 17447
|
There's no way to decompile message flows. Even if you could recover the deployed artifacts, you can't turn them back into development resources.
In version 6.1 and earlier, deployed artifacts are stored in the broker database.
In version 7, the broker database *is* the file system.
Back up your bar files. Back up your source code. Back up your brokers. |
|
Back to top |
|
 |
broker_new |
Posted: Thu Jan 28, 2010 5:28 am Post subject: |
|
|
 Yatiri
Joined: 30 Nov 2006 Posts: 614 Location: Washington DC
|
our request is why we are not focussing on saving the message flows,sets.. as we are using the file system in WMBv7.0.
I would treat it as a limitation because when we were working in WBICS, it was so easy to recover the things by drag and drop method, why not in broker as it is the advanced ESB _________________ IBM ->Let's build a smarter planet |
|
Back to top |
|
 |
mqjeff |
Posted: Thu Jan 28, 2010 5:48 am Post subject: |
|
|
Grand Master
Joined: 25 Jun 2008 Posts: 17447
|
Back up your flows. Back up your message sets.
These are development artifacts.
You CAN NOT claim to be doing ANY change control if you don't have source code.
Also, Broker is an ESB runtime engine. It's not a source control management system. Why would you expect it to act like one? |
|
Back to top |
|
 |
Vitor |
Posted: Thu Jan 28, 2010 6:00 am Post subject: |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
broker_new wrote: |
I would treat it as a limitation because when we were working in WBICS, it was so easy to recover the things by drag and drop method, why not in broker as it is the advanced ESB |
How do you recover C or Java code once it's been compiled to object? Where did you drag or drop that? _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
ravipydi |
Posted: Thu Jan 28, 2010 8:14 am Post subject: |
|
|
Novice
Joined: 17 May 2006 Posts: 11
|
May be I am not clear on my question. All I am trying to understand is where and how the deployed code gets stored in the runtime engine.
I see that the DataFlowEngine is the one which is instantiating all the Execution groups. I wanted to know where exactly these files get stored in the runtime.
From what mqjeff says, if it is stored in the database, how does the DataFlowEngine extract the code out of the database and then instantiate it as a runtime component? If it is in a filesystem, where do these files reside?
If I compiled a Java code, the class does get stored somewhere in the filesystem, then we instantiate that class with a java runtime engine.
For Message Broker I don't even see my JCN classes being instantiated from java JRE.
Just trying to understand how all this works in broker. |
|
Back to top |
|
 |
mqjeff |
Posted: Thu Jan 28, 2010 8:52 am Post subject: |
|
|
Grand Master
Joined: 25 Jun 2008 Posts: 17447
|
The DataFlowEngine is both a C++ runtime and a JVM.
It reads the compiled message flow resources from the broker database (which in broker v7 is stored on the file system rather than in a relational dbms) and then executes them.
Everything in the BAR file is stored in the broker database (which, again, on broker v7 is a private internal file repository, not a dbms). Everything piece of executeable in the BAR file is retrieved from there and executed by the DataFlowEngine process - the ExecutionGroup. In the case of Java code, the java classes are instantiated into java objects by the JVM portion of the DFE.
As to how the DFE retrieves information from the broker database - on v6.1 and earlier it does a SELECT statement. On v7 and later, it uses the internal functions of it's file repository to read from the file system.
As to where the data resides, this is clearly documented.
All you really need to know is "everything is kept in the broker database and everything is run by the ExecutionGroup". |
|
Back to top |
|
 |
mqjeff |
Posted: Thu Jan 28, 2010 8:54 am Post subject: |
|
|
Grand Master
Joined: 25 Jun 2008 Posts: 17447
|
If you're just asking because you want to know, most of what you want to know is relatively easy to either find in the documentation or infer from what the documentation says.
For example, it should seem straight forward that if you have to configure an ODBC connection for the Broker Database, that the DFE is going to use ODBC to talk to the Broker Database.
If you're asking because you want to know how and what to back up, there is again documentation on this. And I'll repeat - back up the flows, back up the bars, back up the broker. |
|
Back to top |
|
 |
ravipydi |
Posted: Thu Jan 28, 2010 10:00 am Post subject: |
|
|
Novice
Joined: 17 May 2006 Posts: 11
|
Thanks mqjeff. That is exactly what I was looking for. I am just trying to understand how all this works in broker. Thanks for the explanation.
One question on the java part though. How can I search for a running Java JCN process? I only see the DataFlowEngine processes on my unix server. I don't see any Java threads. Is java just one of the threads within the DataFlowEngine process? |
|
Back to top |
|
 |
smdavies99 |
Posted: Thu Jan 28, 2010 10:10 am Post subject: |
|
|
 Jedi Council
Joined: 10 Feb 2003 Posts: 6076 Location: Somewhere over the Rainbow this side of Never-never land.
|
ravipydi wrote: |
Is java just one of the threads within the DataFlowEngine process? |
Yes. _________________ 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 |
|
 |
mqjeff |
Posted: Thu Jan 28, 2010 10:39 am Post subject: |
|
|
Grand Master
Joined: 25 Jun 2008 Posts: 17447
|
smdavies99 wrote: |
ravipydi wrote: |
Is java just one of the threads within the DataFlowEngine process? |
Yes. |
Sort of.
The JVM is tightly coupled with the C++ runtime engine. Each message broker thread actually uses both runtimes. |
|
Back to top |
|
 |
|