|
RSS Feed - WebSphere MQ Support
|
RSS Feed - Message Broker Support
|
 |
|
BIP3947E : Mapping node is unable to invoke ESQL procedure. |
« View previous topic :: View next topic » |
Author |
Message
|
Cogito-Ergo-Sum |
Posted: Mon Nov 19, 2012 4:49 am Post subject: BIP3947E : Mapping node is unable to invoke ESQL procedure. |
|
|
 Master
Joined: 07 Feb 2006 Posts: 293 Location: Bengaluru, India
|
I have a simple ESQL procedure to generate UUID. This ESQL procedure is called in a Mapping node via a Custom ESQL transform where the output of this transform (i.e. UUID) is moved to an XML element.
Code: |
BROKER SCHEMA schema1
Create Procedure generateUuid() Returns Character Language ESQL
Begin
Declare uuidChar Character UUIDASCHAR ;
Return uuidChar ;
End ;
|
I am building the BAR with 'Compile and in-line resources' option as I am unable to deploy otherwise. When the message flow is invoked, it fails with BIP3947E as seen in the user trace below.
Code: |
2012-11-19 07:07:01.916406 25 RecoverableException BIP3947E: The map processing for QName ''{schema1}:SampleFlow_MAP01'' has failed, with the following details: ''com.ibm.broker.xci.BrokerXCIException: <com.ibm.broker.plugin.MbRecoverableException class:JNI method:ImbESQLEngineInterface::callRoutine source:BIPmsgs key:4188 >''.
The processing of the map has failed.
Review and resolve the problems indicated in the message from the map processing.
2012-11-19 07:07:01.916409 25 RecoverableException BIP3949E: An error occurred during the processing of a message. The error message is ''<com.ibm.broker.plugin.MbRecoverableException class:JNI method:ImbESQLEngineInterface::callRoutine source:BIPmsgs key:4188 >
''.
An error occurred during message processing. Additional diagnostic information might be written to the user trace.
Inspect the diagnostic information, and check the user trace for further information.
2012-11-19 07:07:01.916412 25 RecoverableException BIP4188E: Failed to call ESQL routine ''SCHEMA1#GENERATEUUID'' because it has not been deployed.
The specified ESQL routine does not exist within the application or execution group that the message flow is running in.
Ensure that the correct ESQL routine is deployed.
|
Now, apparently, this is a known problem as seen in this link. The problem resolution is described as follows:
Quote: |
In WebSphere Message Broker V8.0.0.1 and later, there is an option to build a BAR file "as ESQL Source". Use this option when building BAR files that include custom ESQL modules that are called by message maps. Selecting this option allows the message map (.map file) to correctly reference the custom ESQL modules after they are deployed. |
I am unable to locate that 'option to build a BAR file "as ESQL Source"' in the ToolKit or in the Infocenter. Where does it exist ?
This is WMB 8.0.0.0 on Linux 64-bit. _________________ ALL opinions are welcome.
-----------------------------
Debugging tip:When you have eliminated all which is impossible, then whatever remains, however improbable, must be the truth.
---Sherlock Holmes |
|
Back to top |
|
 |
Cogito-Ergo-Sum |
Posted: Mon Nov 19, 2012 6:22 pm Post subject: |
|
|
 Master
Joined: 07 Feb 2006 Posts: 293 Location: Bengaluru, India
|
Quote: |
I am unable to locate that 'option to build a BAR file "as ESQL Source"' in the ToolKit or in the Infocenter. Where does it exist ? |
The resolution is mentioned for 8.0.0.1 whereas we are at 8.0.0.0. So, perhaps, that resolution is inapplicable in this case. In other words, what could be the resolution ? _________________ ALL opinions are welcome.
-----------------------------
Debugging tip:When you have eliminated all which is impossible, then whatever remains, however improbable, must be the truth.
---Sherlock Holmes |
|
Back to top |
|
 |
goffinf |
Posted: Mon Dec 03, 2012 5:29 am Post subject: |
|
|
Chevalier
Joined: 05 Nov 2005 Posts: 401
|
Cogito-Ergo-Sum wrote: |
Quote: |
I am unable to locate that 'option to build a BAR file "as ESQL Source"' in the ToolKit or in the Infocenter. Where does it exist ? |
The resolution is mentioned for 8.0.0.1 whereas we are at 8.0.0.0. So, perhaps, that resolution is inapplicable in this case. In other words, what could be the resolution ? |
I assume you mean the 'Compile and in-line resources' option on the 'prepare' tab of the BAR file editor (if DEselected (which is the default), source code is deployed).
I seem also to have encountered this problem even outside of the mapping node. Specifically I have a library which contains a lot of ESQL functions and procedures grouped into different schemas.
For example I have a schema 'com.mycompany.messagebroker.soacommon.misc' for miscellaneous functions/procs.
If in another ESQL file (in the SAME library) I attempt to use a function/proc from 'misc', even though I have the schema declared in the PATH of the calling ESQL file, whilst the library project compiles without error, when attempting to deploy a BAR a deployment exception (BIP2558E) occurs, something like :-
Code: |
('com.mycompany.messagebroker.soacommon.exceed.cfw.CallExceedAdaptorHTTP_addAdaptorStructureAndSOAPProtocol.Main', '15.41') : Undefined function '''.'getCorrelationID''.
[b]The program is attempting to call a function which is not defined or is not in the schema path. [/b]
Correct the syntax of your ESQL expression in node ''com.mycompany.messagebroker.soacommon.exceed.cfw.CallExceedAdaptorHTTP_addAdaptorStructureAndSOAPProtocol.Main'', around line and column ''15.41'', then redeploy the message flow.
|
So here the the function 'getCorrelationID' is apparently not found even though at the top of the calling ESQL file the PATH statement includes the schema in which it resides :-
Code: |
PATH com.mycompany.messagebroker.soacommon.misc;
|
As was noted above, if I switch to deploying the BAR as source (by NOT selecting the 'Compile and in-line resources' option on the 'prepare' tab of the BAR file editor, the BAR *does* deploy successfully.
I'm not sure if IBM intend to fix this 'feature' or whether they have decided that it is working 'as designed'. I want in some circumstances to be able to use 'Compile and in-line resources' for libraries.
I will raise it as a PMR unless someone is aware that this has already been spotted as is slated for a fix ?
Fraser. |
|
Back to top |
|
 |
lancelotlinc |
Posted: Mon Dec 03, 2012 6:01 am Post subject: |
|
|
 Jedi Knight
Joined: 22 Mar 2010 Posts: 4941 Location: Bloomington, IL USA
|
goffinf wrote: |
So here the the function 'getCorrelationID' is apparently not found even though at the top of the calling ESQL file the PATH statement includes the schema in which it resides :-
Code: |
PATH com.mycompany.messagebroker.soacommon.misc;
|
|
Try putting the package name in the path at the end and see if that fixes the issue. _________________ http://leanpub.com/IIB_Tips_and_Tricks
Save $20: Coupon Code: MQSERIES_READER |
|
Back to top |
|
 |
goffinf |
Posted: Mon Dec 03, 2012 7:48 am Post subject: |
|
|
Chevalier
Joined: 05 Nov 2005 Posts: 401
|
lancelotlinc wrote: |
Try putting the package name in the path at the end and see if that fixes the issue. |
Interesting idea, I assume there is some method in this madness
I did try it at the start, at the end, and in the middle, ... same result (deploy exception).
Fraser. |
|
Back to top |
|
 |
lancelotlinc |
Posted: Mon Dec 03, 2012 7:54 am Post subject: |
|
|
 Jedi Knight
Joined: 22 Mar 2010 Posts: 4941 Location: Bloomington, IL USA
|
|
Back to top |
|
 |
Cogito-Ergo-Sum |
Posted: Mon Dec 03, 2012 8:00 am Post subject: |
|
|
 Master
Joined: 07 Feb 2006 Posts: 293 Location: Bengaluru, India
|
Quote: |
I assume you mean the 'Compile and in-line resources' option on the 'prepare' tab of the BAR file editor (if DEselected (which is the default), source code is deployed). |
Nnnnnooo...
The cause as described in this link is:
Quote: |
The deployed message map contains a reference to an ESQL module that was compiled as part of the broker archive (BAR) file.
ESQL files that contain referenced ESQL modules must be deployed as "ESQL source".
ESQL modules that are contained in "In-line ESQL" or "compiled message flows" (.cmf files) cannot be identified by a message map.
|
And, the resolution mentioned is probably pointing to the italicised part above.
Nevertheless, are you at 8.0.0.1 ? I encountered this on 8.0.0.0 and we are in process of upgrading to 8.0.0.1. _________________ ALL opinions are welcome.
-----------------------------
Debugging tip:When you have eliminated all which is impossible, then whatever remains, however improbable, must be the truth.
---Sherlock Holmes |
|
Back to top |
|
 |
goffinf |
Posted: Mon Dec 03, 2012 8:28 am Post subject: |
|
|
Chevalier
Joined: 05 Nov 2005 Posts: 401
|
Cogito-Ergo-Sum wrote: |
Nnnnnooo...
The cause as described in this link is:
Quote: |
The deployed message map contains a reference to an ESQL module that was compiled as part of the broker archive (BAR) file.
ESQL files that contain referenced ESQL modules must be deployed as "ESQL source".
ESQL modules that are contained in "In-line ESQL" or "compiled message flows" (.cmf files) cannot be identified by a message map.
|
And, the resolution mentioned is probably pointing to the italicised part above.
Nevertheless, are you at 8.0.0.1 ? I encountered this on 8.0.0.0 and we are in process of upgrading to 8.0.0.1. |
Yes I'm at 8.0.0.1
... and I was responding to the quote that you included earlier in this thread ... 'there is an option to build a BAR file "as ESQL Source" ... and suggesting that what that means is ... make sure that the 'Compile and in-line resources' option on the prepare tab of the BAR file editor is DEselected.
That aside ...
The first part of that quote :-
Quote: |
ESQL files that contain referenced ESQL modules must be deployed as "ESQL source |
Is exactly what I'm getting at. When the 'Compile and in-line resources' option is NOT selected, you are deploying resources as source code.
When I have an ESQL file referencing another ESQL func/proc in a different schema, if I attempt to deploy that 'compiled' it fails with the exception I have shown above.
So it looked to me like a similar issue to the one you are seeing. |
|
Back to top |
|
 |
Cogito-Ergo-Sum |
Posted: Mon Dec 03, 2012 8:32 am Post subject: |
|
|
 Master
Joined: 07 Feb 2006 Posts: 293 Location: Bengaluru, India
|
goffinf wrote: |
Yes I'm at 8.0.0.1 |
eeeps...PMR time, I guess.
goffinf wrote: |
So it looked to me like a similar issue to the one you are seeing. |
hmm...yes, agree. _________________ ALL opinions are welcome.
-----------------------------
Debugging tip:When you have eliminated all which is impossible, then whatever remains, however improbable, must be the truth.
---Sherlock Holmes |
|
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
|
|
|
|