|
RSS Feed - WebSphere MQ Support
|
RSS Feed - Message Broker Support
|
 |
|
RESOLVED: Broker Schema Pathing: V5 v's V6 |
« View previous topic :: View next topic » |
Author |
Message
|
whytec |
Posted: Thu Sep 20, 2007 9:22 pm Post subject: RESOLVED: Broker Schema Pathing: V5 v's V6 |
|
|
 Apprentice
Joined: 28 Nov 2005 Posts: 26 Location: Brisbane Australia
|
Hi All,
I'm in the midst of migrating from MQSI5 to MQSI6 and have stumbled upon a major problem with broker schema pathing. It seems that broker schema pathing does not work the same for V6 as it did for V5. I have a lot of code that builds different formats of XML and handles different versions of those formats. This ended up with a lot of duplicated code for each version, so I setup the projects in the following manner (this is a very simple example).
Code: |
FunctionTest
|
+- (default)
| |
| +- Main.esql
| +- Main.msgflow
|
+- V1
| |
| +- V1Map.esql
| +- V1Map.msgflow
| +- std_functions.esql
|
+- V2
|
+- V2Map.esql
+- V2Map.msgflow
+- std_functions.esql
|
The Main.msgflow is the top-level flow that calls either V1Map.msgflow or V2Map.msgflow, depending on the circumstances. The V1Map.msgflow file has a single compute node that links with a module in the V1Map.esql file. This module simply contains calls to procedures in the std_functions.esql file. The reason for doing this is so that I can easily add a 'customised' subflow to the V1 schema and simply call the same methods as the V1Map.esql files and/or add extra functionality, leaving the original V1Map.esql file as is. This is a nice way of catering for a particular customer's needs while not changing functionality for other customers using the same flow.
For the V2 schema, I am building an XML file that is the next version of the V1 XML standard and it is backward compatible. That is, V2 is the same as V1 except there are a few extra tags added. I have setup this schema the same as the V1 schema, except the std_functions.esql file contains procedures that simply call the procedures contained in the std_functions.esql file in the V1 schema. Then extra procedures are added to the V2 std_functions.esql file to cater for the extra tags. This way I am not rewriting any existing functionality, just adding new functionality for the newer version.
The V1 members only use procedures defined in the V1 schema, so no path statements were necessary. The V2 members only use procedures defined in the V2 schema except for the std_functions.esql file, which has the the following path statement so that it can call the procedures defined in V1:
PATH V1;
This all worked beautifully in MQSI5 and minimised the amount of duplicated code, and maintenance was reduced by a huge amount.
Migrating to MQSI6, I ended up with the error 'The program is attempting to call a function which is not defined or is not in the schema path' everywhere. I updated each procedure call in V1Map.esql and V2Map.esql so that the fully qualified schema path is used, but that still didn't work. I found that I also had to add the PATH statement to each file even though they are members of the same schema (this is completely ridiculous).
Does anyone know if this is a bug? Is there some kind of switch that I need on the broker or a setup configuration in the toolkit? I've tried everything to do with refreshing, rebuilding and cleaning. I've even tried copying the code from V1.std_functions to V2.std_functions and removing the reference to V1 (so there's no way the members of one schema are referencing members of the other schema) and I still get the error.
Thanks in advance,
Chris.
Last edited by whytec on Fri Sep 21, 2007 9:44 pm; edited 1 time in total |
|
Back to top |
|
 |
fjb_saper |
Posted: Fri Sep 21, 2007 2:22 am Post subject: |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
Looks like a bug to me. Which version of the toolkit are you at 6.0.2?
Have you applied ifix 09?  _________________ MQ & Broker admin |
|
Back to top |
|
 |
jefflowrey |
Posted: Fri Sep 21, 2007 5:17 am Post subject: |
|
|
Grand Poobah
Joined: 16 Oct 2002 Posts: 19981
|
Did you set the project settings to reference the projects that contain the other schemas? _________________ I am *not* the model of the modern major general. |
|
Back to top |
|
 |
whytec |
Posted: Fri Sep 21, 2007 9:42 pm Post subject: |
|
|
 Apprentice
Joined: 28 Nov 2005 Posts: 26 Location: Brisbane Australia
|
Thanks for the suggestion fjb_saper. Upgrading to the latest patch seems to have fixed the problem.
jefflowrey, all schema in my example above were in one project so there was no need to reference any other projects.
Thanks for your help guys. |
|
Back to top |
|
 |
|
|
 |
|
Page 1 of 1 |
|
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
|
|
|
|