|
RSS Feed - WebSphere MQ Support
|
RSS Feed - Message Broker Support
|
 |
|
[SOLVED] Problem calling ESQL procedure in separate project |
« View previous topic :: View next topic » |
Author |
Message
|
gbbailey |
Posted: Wed Jul 25, 2007 4:36 am Post subject: [SOLVED] Problem calling ESQL procedure in separate project |
|
|
 Apprentice
Joined: 12 May 2006 Posts: 27 Location: London, UK
|
I've just created a new development environment, and imported all my existing projects from CVS. I have three "system" projects that reference each other, called Core, Exception and Audit. All other message flow projects reference these projects.
Each message flow project is full of errors similar to the following example from my Core project:
Quote: |
Incorrect function or procedure name "ThrowException" or argument count. |
This would be given for the following code:
Code: |
BROKER SCHEMA com.xxx.esb.system.core.generateESBID
PATH com.xxx.esb.system.core.generateESBID,
com.xxx.esb.system.exception,
com.xxx.esb.system.core.headers;
...
CALL ThrowException('GENERATE_ESBID_ERROR', '', '', '', '', TRUE, msgRef, envRef); |
I have commented out all the errors in the Exception projects, but even though the broker schema for ThrowException is in the path, and the Exception project in referenced, and without errors, the Core project cannot find the procedure.
However, if I explicitly put the path in the procedure call, there are no errors. E.g.
Code: |
CALL com.xxx.esb.system.exception.ThrowException('GENERATE_ESBID_ERROR', '', '', '', '', TRUE, msgRef, envRef); |
I am running Windows XP SP2, and broker toolkit 6.0.2.0 fixpack 8.
I have tried numerous cleans and refreshes and rebuilds and opening of ESQL files, and resaving files after cosmetic changes, and although this seems to have fixed things historically, none of these work.
I have also tried recreating the problem with simpler projects, and have a similar (though subtly different) problem.
Project 1: GBB1
One ESQL file, com.gbb1.GBB1.esql
Code: |
BROKER SCHEMA com.gbb1
PATH com.gbb1, com.gbb2;
CREATE PROCEDURE gbb1Proc1(IN message CHARACTER)
BEGIN
RETURN;
END;
CREATE PROCEDURE gbb1Proc2(IN message CHARACTER)
BEGIN
CALL gbb1Proc1("HELLO WORLD");
CALL gbb2Proc1("HELLO WORLD");
RETURN;
END; |
Project 2: GBB2
One ESQL file, com.gbb2.GBB2.esql
Code: |
BROKER SCHEMA com.gbb2
PATH com.gbb1, com.gbb2;
CREATE PROCEDURE gbb2Proc1(IN message CHARACTER)
BEGIN
RETURN;
END;
CREATE PROCEDURE gbb2Proc2(IN message CHARACTER)
BEGIN
CALL gbb1Proc1("HELLO WORLD");
CALL gbb2Proc1("HELLO WORLD");
RETURN;
END; |
Even though these procedures are mirror images of each other I am having errors in one project (GBB2), but not the other (GBB1).
There is a subtle difference in the error I see here. I only get the error if the call to the procedure is not prefixed by the schema of the external function being called, and the local broker schema is not in the path.
This is different from the problem I appear to be experiencing in the more complicated project in that having the local schema in the path appears to make no difference to whether or not I receive the error.
What is going on?
Last edited by gbbailey on Mon Jul 30, 2007 1:57 am; edited 1 time in total |
|
Back to top |
|
 |
fjb_saper |
Posted: Wed Jul 25, 2007 2:48 pm Post subject: |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
My experience is following:
You put the global functions project on your path and you can call functions/procedures without prefix from your flow project.
However any call from the global functions project still needed to reference the full path. (Maybe because I did not include . into the Path of the global functions project)?
Enjoy  _________________ MQ & Broker admin |
|
Back to top |
|
 |
gbbailey |
Posted: Mon Jul 30, 2007 1:55 am Post subject: |
|
|
 Apprentice
Joined: 12 May 2006 Posts: 27 Location: London, UK
|
I reinstalled the toolkit and upgraded to an earlier version (if001). A colleague upgraded to if007 and the problem disappeared.
My guess then is that the problem is with interim fix 008. |
|
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
|
|
|
|