Author |
Message
|
pvemuri |
Posted: Wed Nov 10, 2004 1:52 pm Post subject: Multiple Compute nodes cauisng error |
|
|
 Voyager
Joined: 05 Jan 2004 Posts: 83 Location: CA, USA
|
Hello all,
My System: Win XP, WBIMB CSD 4, MQ 5.3 CSD 6, DB2 8.1
I have a simple flow, with two compute nodes in it. When I tryto deploy the flow , I have this error in the even viewer. I have just two statements in the first compute node and a OutputRoot=InputRoot in the second one.
The error :
Code: |
( MQSI_BROKER.SVU_EG ) An attempt was made to define the function or procedure 'MAIN' but a function or procedure with this name already exists.
An attempt was made to define the function or procedure 'MAIN' but a function or procedure with this name already exists. Function and procedure names are case insensitive, occupy the same name space and must be unique regardless of the number or type of their parameters
Examine and correct the SQL program
|
Any idea?
Thanks,
pvemuri |
|
Back to top |
|
 |
Nizam |
Posted: Wed Nov 10, 2004 3:20 pm Post subject: |
|
|
Disciple
Joined: 10 Feb 2004 Posts: 160
|
Do you see any errors in your tasks window or in the esql editor? |
|
Back to top |
|
 |
JT |
Posted: Wed Nov 10, 2004 5:51 pm Post subject: |
|
|
Padawan
Joined: 27 Mar 2003 Posts: 1564 Location: Hartford, CT.
|
Quote: |
An attempt was made to define the function or procedure '<insert_0>' but a function or procedure with this name already exists. Function and procedure names are case insensitive, occupy the same name space and must be unique regardless of the number or type of their parameters |
Please post all of your ESQL code here. |
|
Back to top |
|
 |
kirani |
Posted: Thu Nov 11, 2004 12:31 am Post subject: |
|
|
Jedi Knight
Joined: 05 Sep 2001 Posts: 3779 Location: Torrance, CA, USA
|
Make sure your Main function in a compute node is spelled correctly. _________________ Kiran
IBM Cert. Solution Designer & System Administrator - WBIMB V5
IBM Cert. Solutions Expert - WMQI
IBM Cert. Specialist - WMQI, MQSeries
IBM Cert. Developer - MQSeries
|
|
Back to top |
|
 |
pvemuri |
Posted: Thu Nov 11, 2004 11:31 am Post subject: |
|
|
 Voyager
Joined: 05 Jan 2004 Posts: 83 Location: CA, USA
|
I tried using a single compute node and uncommented the CopyEntireMessage() routine. when I tried to deploy it, the error now is
: InputRoot is not in the scope.
I think there is some thing worng with the parser. It was working fine previously.
Thanks,
pvemuri. |
|
Back to top |
|
 |
jefflowrey |
Posted: Thu Nov 11, 2004 11:41 am Post subject: |
|
|
Grand Poobah
Joined: 16 Oct 2002 Posts: 19981
|
pvemuri wrote: |
I tried using a single compute node and uncommented the CopyEntireMessage() routine. when I tried to deploy it, the error now is
: InputRoot is not in the scope.
I think there is some thing worng with the parser. It was working fine previously.
Thanks,
pvemuri. |
I think there is something wrong with your code, like you are trying to put two Main functions inside the same Compute module.
But since you haven't posted your code, I can't be sure. _________________ I am *not* the model of the modern major general. |
|
Back to top |
|
 |
pvemuri |
Posted: Thu Nov 11, 2004 12:05 pm Post subject: |
|
|
 Voyager
Joined: 05 Jan 2004 Posts: 83 Location: CA, USA
|
Jeff,
1. I created a message flow project and a message flow in it
2. I attached a MQInput , Compute and a MQOutput node.
3. The ESQL code
Code: |
CREATE COMPUTE MODULE TESTFL_Compute
CREATE FUNCTION Main() RETURNS BOOLEAN
BEGIN
-- CALL CopyMessageHeaders();
CALL CopyEntireMessage();
RETURN TRUE;
END;
CREATE PROCEDURE CopyMessageHeaders() BEGIN
DECLARE I INTEGER 1;
DECLARE J INTEGER CARDINALITY(InputRoot.*[]);
WHILE I < J DO
SET OutputRoot.*[I] = InputRoot.*[I];
SET I = I + 1;
END WHILE;
END;
CREATE PROCEDURE CopyEntireMessage() BEGIN
SET OutputRoot = InputRoot;
END;
END MODULE;
|
4. And I created a BAR file, added my message flow and deployedit onto the default exec group.
5. The error logs :
Quote: |
BIP2432E: (.CopyEntireMessage, 2.7) : The correlation name 'OutputRoot' is not valid. Those in scope are: .
The first element of a field reference must be a valid correlation name, from those in scope. This message may sometimes be due to an incorrectly formed or spelled expression which is not intended to be a field reference being parsed as if it were a field reference because the parser does not recognize it.
Correct the syntax of the expression and redeploy the message flow.
|
Quote: |
BIP4121E: Syntax error in SQL statements in compute node 'TESTFL.'.
The configuration of compute node TESTFL. failed due to errors in the SQL expression. See the following messages for details of the error. The statement text was ' CREATE SCHEMA "" CREATE COMPUTE MODULE TESTFL_Compute CREATE FUNCTION Main() RETURNS BOOLEAN BEGIN -- CALL CopyMessageHeaders(); CALL CopyEntireMessage(); RETURN TRUE; END; CREATE PROCEDURE CopyMessageHeaders() BEGIN DECLARE I INTEGER 1; DECLARE J INTEGER CARDINALITY(InputRoot.*[]); WHILE I < J DO SET OutputRoot.*[I] = InputRoot.*[I]; SET I = I + 1; END WHILE; END; CREATE PROCEDURE CopyEntireMessage() BEGIN SET OutputRoot = InputRoot; END; END MODULE; CREATE PROCEDURE CopyEntireMessage() BEGIN SET OutputRoot = InputRoot; END; CREATE FUNCTION Main() RETURNS BOOLEAN BEGIN -- CALL CopyMessageHeaders(); CALL CopyEntireMessage(); RETURN TRUE; END; CREATE PROCEDURE CopyMessageHeaders() BEGIN DECLARE I INTEGER 1; DECLARE J INTEGER CARDINALITY(InputRoot.*[]); WHILE I < J DO SET OutputRoot.*[I] = InputRoot.*[I]; SET I = I + 1; END WHILE; END; '.
The next error message will give specific details of where the error occurred in the statement text. Check the correct syntax for compute node SQL statements in the WebSphere MQ Integrator publications. Correct the statements configuring the node and redeploy the configuration.
|
Quote: |
BIP4041E: Execution group 'default' received an invalid configuration message. See the following messages for details of the error.
The message broker received an invalid configuration message and has not updated its configuration. This can arise as a result of errors in the specification of either message flows or message sets which the configuration manager was unable to detect. It can also result from a message flow requiring a type of node that is not supported by the broker installation, from the broker having become out of step with the configuration database or from other applications sending extraneous messages to the broker's configuration queues (SYSTEM.BROKER.ADMIN.QUEUE & SYSTEM.BROKER.EXECUTIONGROUP.QUEUE).
Check the relevant message flow and message set definitions, check that all necessary plug-ins are installed, perform a complete redeploy of the broker's configuration and ensure that no applications are writing to the broker's configuration queues.
|
|
|
Back to top |
|
 |
chenulu |
Posted: Thu Nov 11, 2004 12:19 pm Post subject: |
|
|
Voyager
Joined: 27 Mar 2002 Posts: 87 Location: Research Triangle Park, NC
|
From the error it appears that there is a syntax error. Can you check where the CREATE SCHEMA is coming from? I had cut and pasted your ESQL code into a compute node and it deployed fine. If you still are having ussues, check the contents of the bar file using winzip and examine the contents of the CMF and see what ESQL you have in there. |
|
Back to top |
|
 |
pvemuri |
Posted: Thu Nov 11, 2004 12:32 pm Post subject: |
|
|
 Voyager
Joined: 05 Jan 2004 Posts: 83 Location: CA, USA
|
chenulu,
I looked into the BAR file read the .cmf file, I can see the CREATE SCHEMA "" in that file. I dont know where it comes from. Also, the CopyEntireMessage() and CopyMessageHeaders() functions appear twice.
No idea about whats going on. Probaly, I have to install MB again.
Thanks,
pvemuri. |
|
Back to top |
|
 |
bolek |
Posted: Fri Nov 12, 2004 2:38 am Post subject: |
|
|
Apprentice
Joined: 25 Jul 2002 Posts: 35 Location: Germany
|
pvemuri wrote: |
chenulu,
I looked into the BAR file read the .cmf file, I can see the CREATE SCHEMA "" in that file. I dont know where it comes from. Also, the CopyEntireMessage() and CopyMessageHeaders() functions appear twice.
No idea about whats going on. Probaly, I have to install MB again.
Thanks,
pvemuri. |
Try to update your Tooling using update manager - install new version of IY62722 (IFix 011), I think it will help ! |
|
Back to top |
|
 |
edtguy |
Posted: Tue Nov 16, 2004 7:13 am Post subject: |
|
|
Novice
Joined: 28 Oct 2004 Posts: 13 Location: Hoboken, NJ, USA
|
By any chance is this problem releated to Windows XP? My machine was just upgraded to XP and I had to re-install WBI, MQ, DB2. I created a simple message flow: MQInput Node -> Compute Node (uncomment CopyEntireMessage) -> MQOutput Node. I created a bar file & when I tried to deploy it, got the exact same error set as pvemuri.
I took bolek's advice and ran the update manager. There were four items listed, and I installed them all. I restarted the workbench, created a new bar file, but the same error is still occurring. I am going to re-boot my machine just to be sure, but I assume I will get the same result.
-Ed |
|
Back to top |
|
 |
edtguy |
Posted: Tue Nov 16, 2004 7:50 am Post subject: |
|
|
Novice
Joined: 28 Oct 2004 Posts: 13 Location: Hoboken, NJ, USA
|
I stand corrected!
After installing the WBI upgrades, I rebooted my machine. When I restarted the workbench, I ran the Help->Software Updates->New Updates option to confirm that I was completely up to date, which I am. I deleted all my existing projects, created a new simple message flow and corresponding bar file. This time, the bar file deploys successfully.
Apparently, restarting just the workbench without rebooting the computer is not enough.
Cheers,
Ed |
|
Back to top |
|
 |
|