|
RSS Feed - WebSphere MQ Support
|
RSS Feed - Message Broker Support
|
 |
|
Application with subflow can't reference ESQL in static lib |
« View previous topic :: View next topic » |
Author |
Message
|
avieira |
Posted: Wed May 17, 2017 11:43 pm Post subject: Application with subflow can't reference ESQL in static lib |
|
|
Newbie
Joined: 11 Aug 2016 Posts: 5
|
Using IIB 10.0.0.7 I've got an application composed of a main msgflow, which references a subflow.
This subflow has a compute node, which references a function not defined in this application. This function is defined in an ESQL file within a static library, which is reference by the application. The subflow's compute node is using top level PATH to locate the function's package.
- application
-- msgflow
--- subflow
---- esql
referencing
- static lib
-- esql
Strangely, when I build a bar file within the Toolkit, which has ticked the "Compile and in-line resources", I end up with an error upon deployment, stating that the function I am calling is Undefined: "The program is attempting to call a function which is not defined or is not in the schema path". Using the library's function in the message flow directly works fine, but not in the subflow.
What makes it even more unusual is that, if I build a bar file unticking the "compile" option, the bar deploys fine, even though in both scenarios both the subflow and esql files are included directly in the bar file.
This leads me to believe that this is related with the fact that msgflows are compiled into .cmf files, but subflows aren't, which is described in the infocenter, but should this affect references to libraries?
Am I missing something here?
Thank you |
|
Back to top |
|
 |
fjb_saper |
Posted: Thu May 18, 2017 3:02 am Post subject: |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
Yes you are missing the fact that your subflows need to be "old school" to compile in line...  _________________ MQ & Broker admin |
|
Back to top |
|
 |
avieira |
Posted: Thu May 18, 2017 7:05 am Post subject: |
|
|
Newbie
Joined: 11 Aug 2016 Posts: 5
|
fjb_saper wrote: |
Yes you are missing the fact that your subflows need to be "old school" to compile in line...  |
I didn't forget that, which is why I included it in the original thread. Sorry if that part wasn't clear:
Quote: |
This leads me to believe that this is related with the fact that msgflows are compiled into .cmf files, but subflows aren't |
What I'm failing to understand is why my subflow's ESQL can't locate my function's ESQL function. |
|
Back to top |
|
 |
fjb_saper |
Posted: Thu May 18, 2017 11:05 am Post subject: |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
Is your function path relative or absolute?
And the functions better be in an ESQL Schema. IIB does not like them to be in the default schema...
Have fun  _________________ MQ & Broker admin |
|
Back to top |
|
 |
rekarm01 |
Posted: Thu May 18, 2017 1:58 pm Post subject: Re: Application with subflow can't reference ESQL in static |
|
|
Grand Master
Joined: 25 Jun 2008 Posts: 1415
|
avieira wrote: |
I didn't forget that, which is why I included it in the original thread. |
"old school", in this case, means subflows in .msgflow files, rather than in .subflow files.
It is generally a good idea to avoid mixing and matching old-style barfile resources with new-style resources. That means:- Either message flows compiled in-line, subflows in .msgflow files, no libraries, no applications, old Mapping node with .msgmap files, etc.,
- or message flows deployed as source, subflows in .subflow files, libraries, applications, new Mapping node with .map files, etc.
They're not always interchangeable, so the results can sometimes be unexpected.
avieira wrote: |
What I'm failing to understand is why my subflow's ESQL can't locate my function's ESQL function. |
Functions inside a .cmf are not visible outside the .cmf .
That's sort of what "in-line" means. |
|
Back to top |
|
 |
fjb_saper |
Posted: Thu May 18, 2017 7:34 pm Post subject: |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
 _________________ MQ & Broker admin |
|
Back to top |
|
 |
avieira |
Posted: Thu May 18, 2017 11:28 pm Post subject: |
|
|
Newbie
Joined: 11 Aug 2016 Posts: 5
|
@fjb_saper, I've tried relative and absolute paths and all resources have their own schema.
@rekarm01, my function is declared in an esql file, part of a library, and it is requested from an esql file used in a .subflow, i.e. the function is not inside a .cmf.
Quote: |
It is generally a good idea to avoid mixing and matching old-style barfile resources with new-style resources. That means:
Either message flows compiled in-line, subflows in .msgflow files, no libraries, no applications, old Mapping node with .msgmap files, etc.,
or message flows deployed as source, subflows in .subflow files, libraries, applications, new Mapping node with .map files, etc. |
Thanks for clarifying this. I didn't know message flows compiled in-line were considered old school.
As mentioned previously, my interface works fine if deployed as source. I'm just trying to understand why it doesn't work when the message flow is compiled in-line.
Thank you all |
|
Back to top |
|
 |
fjb_saper |
Posted: Fri May 19, 2017 10:53 am Post subject: |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
avieira wrote: |
As mentioned previously, my interface works fine if deployed as source. I'm just trying to understand why it doesn't work when the message flow is compiled in-line.
Thank you all |
To compile in-line change the extension of the .subflow to .msgflow and try again...
Note: there is no guarantee that this works with compile in line at all as you are using IIB 10 functionality.
If it weren't working with deploy as source, I'd be worried.
Note that changing the .subflow to .msgflow will break the deploy as source...
 _________________ MQ & Broker admin |
|
Back to top |
|
 |
rekarm01 |
Posted: Sun May 21, 2017 5:23 pm Post subject: |
|
|
Grand Master
Joined: 25 Jun 2008 Posts: 1415
|
avieira wrote: |
my function is declared in an esql file, part of a library, and it is requested from an esql file used in a .subflow, i.e. the function is not inside a .cmf. |
The barfile is in zip/jar format. You can unzip/unjar it, and examine the .cmf directly, to confirm what is or is not inside it. |
|
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
|
|
|
|