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 » BIP3947E : Mapping node is unable to invoke ESQL procedure.

Post new topic  Reply to topic
 BIP3947E : Mapping node is unable to invoke ESQL procedure. « View previous topic :: View next topic » 
Author Message
Cogito-Ergo-Sum
PostPosted: Mon Nov 19, 2012 4:49 am    Post subject: BIP3947E : Mapping node is unable to invoke ESQL procedure. Reply with quote

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
View user's profile Send private message
Cogito-Ergo-Sum
PostPosted: Mon Nov 19, 2012 6:22 pm    Post subject: Reply with quote

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
View user's profile Send private message
goffinf
PostPosted: Mon Dec 03, 2012 5:29 am    Post subject: Reply with quote

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
View user's profile Send private message
lancelotlinc
PostPosted: Mon Dec 03, 2012 6:01 am    Post subject: Reply with quote

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
View user's profile Send private message Send e-mail
goffinf
PostPosted: Mon Dec 03, 2012 7:48 am    Post subject: Reply with quote

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
View user's profile Send private message
lancelotlinc
PostPosted: Mon Dec 03, 2012 7:54 am    Post subject: Reply with quote

Jedi Knight

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

Another thing to try is to declare a FUNCTION:

Code:
CREATE FUNCTION xyz

_________________
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
Cogito-Ergo-Sum
PostPosted: Mon Dec 03, 2012 8:00 am    Post subject: Reply with quote

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
View user's profile Send private message
goffinf
PostPosted: Mon Dec 03, 2012 8:28 am    Post subject: Reply with quote

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
View user's profile Send private message
Cogito-Ergo-Sum
PostPosted: Mon Dec 03, 2012 8:32 am    Post subject: Reply with quote

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
View user's profile Send private message
Display posts from previous:   
Post new topic  Reply to topic Page 1 of 1

MQSeries.net Forum Index » WebSphere Message Broker (ACE) Support » BIP3947E : Mapping node is unable to invoke ESQL procedure.
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.