Author |
Message
|
bindu |
Posted: Mon Oct 16, 2006 11:26 pm Post subject: Database configuration in v6 MB -----Resolved |
|
|
Voyager
Joined: 07 May 2004 Posts: 97
|
Hi,
I have a flow like
I/P -> Compute -> O/T
In compute the ESQL Code is
CREATE COMPUTE MODULE ESQK_Compute
CREATE FUNCTION Main () RETURNS BOOLEAN
BEGIN
INSERT INTO Database.VIDEOR.AKASH.INFORMATION (FIRSTNAME, LASTNAME, HOUSENO, CITY) values (’firstname’, 'lastName', 007, USA');
RETURN TRUE;
END;
END MODULE;
But i am getting the following error after saving the message flow
Unable to find function or procedure named "Main" in module ESQK_Compute in default broker schema
Any help on this.
Last edited by bindu on Wed Oct 18, 2006 9:13 am; edited 1 time in total |
|
Back to top |
|
 |
elvis_gn |
Posted: Mon Oct 16, 2006 11:47 pm Post subject: |
|
|
 Padawan
Joined: 08 Oct 2004 Posts: 1905 Location: Dubai
|
Hi bindu,
Is the toolkit on automatic rebulid...even if it is, I would suggest you do a clean and try again.
Regards. |
|
Back to top |
|
 |
bindu |
Posted: Tue Oct 17, 2006 12:07 am Post subject: Database configuration in v6 MB |
|
|
Voyager
Joined: 07 May 2004 Posts: 97
|
Hi,
I did clean and tried then also got the same ERROR |
|
Back to top |
|
 |
edarasumanth |
Posted: Tue Oct 17, 2006 1:08 am Post subject: |
|
|
Novice
Joined: 15 Jun 2006 Posts: 21
|
go to Broker Application Perspective. Right click on Message flow project there is an option close. Just close the project and reopen the project.
Actually it is a tool kit bug. Some times if u clean and rebulid the project also it will appear again. just close and open the project 2 to 3 times. I hope it will disappear. |
|
Back to top |
|
 |
jbanoop |
Posted: Tue Oct 17, 2006 1:08 am Post subject: |
|
|
Chevalier
Joined: 17 Sep 2005 Posts: 401 Location: SC
|
disable the build automatically.
close the project
open the project again
build the project
alternatively start the toolkit with the clean option.
or you could try changing node position in the flow and saving etc..
it is a toolkit problem and keeps happening intermitantly.
if nothign seems to be working create a new workspace and import the project from the old to the new.
Regards,
Anoop |
|
Back to top |
|
 |
wschutz |
Posted: Tue Oct 17, 2006 1:26 am Post subject: |
|
|
 Jedi Knight
Joined: 02 Jun 2005 Posts: 3316 Location: IBM (retired)
|
I've seen this,, and have fixed it by opening the "Properites" dialog of the ESQL Compute node and reselecting the "ESQL Module" with the Browse button. _________________ -wayne |
|
Back to top |
|
 |
bindu |
Posted: Tue Oct 17, 2006 7:46 pm Post subject: Database configuration in v6 MB |
|
|
Voyager
Joined: 07 May 2004 Posts: 97
|
Hi Wayne,
It worked....but i am getting the following exception
I/P -> Compute -> O/T
Connected trace node to catch & failure terminals of I/P node so i got this exception on trace file......Any help will be appreciated
ESQL Code:
CREATE COMPUTE MODULE Ram_Compute
CREATE FUNCTION Main() RETURNS BOOLEAN
BEGIN
-- CALL CopyMessageHeaders();
-- CALL CopyEntireMessage();
SET OutputRoot=InputRoot;
-- INSERT INTO Database.VIDEOR.AKASH.INFORMATION (FIRSTNAME, LASTNAME, HOUSENO, CITY) values (’firstname’, 'lastName', 007, USA');
RETURN TRUE;
END;
CREATE PROCEDURE CopyMessageHeaders() BEGIN
DECLARE I INTEGER;
DECLARE J INTEGER;
SET I = 1;
SET J = 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;
Exception:
(
(0x01000000):RecoverableException = (
(0x03000000):File = 'F:\build\S000_P\src\DataFlowEngine\ImbMqOutputNode.cpp'
(0x03000000):Line = 769
(0x03000000):Function = 'ImbMqOutputNode::evaluate'
(0x03000000):Type = 'ComIbmMQOutputNode'
(0x03000000):Name = 'Ram#FCMComposite_1_2'
(0x03000000):Label = 'Ram.MQOutput'
(0x03000000):Catalog = 'BIPv600'
(0x03000000):Severity = 3
(0x03000000):Number = 2230
(0x03000000):Text = 'Caught exception and rethrowing'
(0x01000000):MessageException = (
(0x03000000):File = 'F:\build\S000_P\src\DataFlowEngine\ImbMqOutputNode.cpp'
(0x03000000):Line = 635
(0x03000000):Function = 'ImbMqOutputNode::evaluate'
(0x03000000):Type = 'ComIbmMQOutputNode'
(0x03000000):Name = 'Ram#FCMComposite_1_2'
(0x03000000):Label = 'Ram.MQOutput'
(0x03000000):Catalog = 'BIPv600'
(0x03000000):Severity = 3
(0x03000000):Number = 2660
(0x03000000):Text = 'Message contains no data'
(0x01000000):Insert = (
(0x03000000):Type = 2
(0x03000000):Text = '-1'
)
(0x01000000):Insert = (
(0x03000000):Type = 5
(0x03000000):Text = 'MQW001'
)
(0x01000000):Insert = (
(0x03000000):Type = 2
(0x03000000):Text = '0'
)
(0x01000000):Insert = (
(0x03000000):Type = 5
(0x03000000):Text = ''
)
)
)
) |
|
Back to top |
|
 |
elvis_gn |
Posted: Tue Oct 17, 2006 8:30 pm Post subject: Re: Database configuration in v6 MB |
|
|
 Padawan
Joined: 08 Oct 2004 Posts: 1905 Location: Dubai
|
Hi bindu,
bindu wrote: |
(0x03000000):Text = 'Message contains no data' |
Take a trace of the output after the Input and the Compute node...
Are u debugging your flow ? Where is the exception thrown ?
Regards. |
|
Back to top |
|
 |
bindu |
Posted: Tue Oct 17, 2006 9:00 pm Post subject: Database configuration in v6 MB |
|
|
Voyager
Joined: 07 May 2004 Posts: 97
|
Hi,
After I/P trace looks fine but after compute node i am loosing the message and it throughing back ...is there anything wrong in my ESQL for INSERT statement...Can we use the INSERT in compute right....I am planning to insert data into DB2 database...
Thank You,
Bindu |
|
Back to top |
|
 |
elvis_gn |
Posted: Tue Oct 17, 2006 9:22 pm Post subject: Re: Database configuration in v6 MB |
|
|
 Padawan
Joined: 08 Oct 2004 Posts: 1905 Location: Dubai
|
Hi bindu,
bindu wrote: |
After I/P trace looks fine but after compute node i am loosing the message and it throughing back |
Thats why I asked for the trace...plz provide the trace output after compute AND the actual code that us being used....I doubt the one above is the actual one ur using.
bindu wrote: |
...is there anything wrong in my ESQL for INSERT statement... |
You have commented it...why would that be an error.
bindu wrote: |
Can we use the INSERT in compute right....I am planning to insert data into DB2 database... |
Yes u can.
Regards. |
|
Back to top |
|
 |
bindu |
Posted: Tue Oct 17, 2006 9:37 pm Post subject: Database configuration in v6 MB |
|
|
Voyager
Joined: 07 May 2004 Posts: 97
|
Hi,
i am sorry i didnt commented out that INSERT Statement in my ESQL
if i commentted out that one then the flow is working fine when i remove the comment then only i am getting problem and not inserting into database. Please have a look at the follwoing Trace after compute node
***************************
(
(0x01000000):RecoverableException = (
(0x03000000):File = 'F:\build\S000_P\src\DataFlowEngine\ImbMqInputNode.cpp'
(0x03000000):Line = 1768
(0x03000000):Function = 'ImbCommonInputNode::eligibleForBackout'
(0x03000000):Type = 'ComIbmMQInputNode'
(0x03000000):Name = 'AMF#FCMComposite_1_1'
(0x03000000):Label = 'AMF.MQInput'
(0x03000000):Catalog = 'BIPv600'
(0x03000000):Severity = 3
(0x03000000):Number = 2652
(0x03000000):Text = 'Dequeued failed message. Propagating a message to the failure terminal'
)
)
----------------------------
Thank you,
Bindu |
|
Back to top |
|
 |
Mercury |
Posted: Tue Oct 17, 2006 9:51 pm Post subject: |
|
|
 Apprentice
Joined: 24 Jun 2006 Posts: 32 Location: Hyderabad
|
Better u modify the code in this way.Because u have to send sth to output node.U cannot send an empty message to Output node.So uncomment those procedures according to ur requirement and execute sql stmt in one the procedures
CREATE COMPUTE MODULE Ram_Compute
CREATE FUNCTION Main() RETURNS BOOLEAN
BEGIN
-- CALL CopyMessageHeaders();
CALL CopyEntireMessage();
SET OutputRoot=InputRoot;
RETURN TRUE;
END;
CREATE PROCEDURE CopyMessageHeaders() BEGIN
DECLARE I INTEGER;
DECLARE J INTEGER;
SET I = 1;
SET J = 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;
INSERT INTO Database.VIDEOR.AKASH.INFORMATION (FIRSTNAME, LASTNAME, HOUSENO, CITY) values (’firstname’, 'lastName', 007, 'USA')
END;
END MODULE;
Last edited by Mercury on Tue Oct 17, 2006 10:03 pm; edited 1 time in total |
|
Back to top |
|
 |
elvis_gn |
Posted: Tue Oct 17, 2006 9:59 pm Post subject: Re: Database configuration in v6 MB |
|
|
 Padawan
Joined: 08 Oct 2004 Posts: 1905 Location: Dubai
|
Hi bindu,
bindu wrote: |
(0x03000000):Text = 'Dequeued failed message. Propagating a message to the failure terminal'
|
This does not seem to be because of an error with the insert statement, please provide the final tree in the ExceptionList...please stop dragging the post, if u simply provide all the details together, it will be easier for us to help you...partial information is not taking us anywhere.
bindu wrote: |
INSERT INTO Database.VIDEOR.AKASH.INFORMATION (FIRSTNAME, LASTNAME, HOUSENO, CITY) values (’firstname’, 'lastName', 007, USA'); |
What is VIDEOR, AKASH and INFORMATION ? Your firstname variable seems to be in the wrong quotes, USA is not in starting quote...PLEASE PASTE THE ACTUAL REBUILT CODE.
Regards. |
|
Back to top |
|
 |
elvis_gn |
Posted: Tue Oct 17, 2006 10:05 pm Post subject: |
|
|
 Padawan
Joined: 08 Oct 2004 Posts: 1905 Location: Dubai
|
Hi Merecury,
Merecury wrote: |
CALL CopyEntireMessage();
SET OutputRoot=InputRoot; |
The first line will do the second, no need to do it again...
Merecury wrote: |
CREATE PROCEDURE CopyEntireMessage() BEGIN
SET OutputRoot = InputRoot;
INSERT INTO Database.VIDEOR.AKASH.INFORMATION (FIRSTNAME, LASTNAME, HOUSENO, CITY) values (’firstname’, 'lastName', 007, USA')
END;
END MODULE; |
Its bad coding standard to put you code in the CopyEntireMessage and CopyMessageHeaders...these are standard methods and should not be touched...helps in better understanding of code.
Regards. |
|
Back to top |
|
 |
bindu |
Posted: Tue Oct 17, 2006 10:08 pm Post subject: Database configuration in v6 MB |
|
|
Voyager
Joined: 07 May 2004 Posts: 97
|
Hi,
I changed my ESQL to like below
CREATE COMPUTE MODULE AMF_Compute
CREATE FUNCTION Main() RETURNS BOOLEAN
BEGIN
CALL CopyMessageHeaders();
-- CALL CopyEntireMessage();
SET OutputRoot.XML=null;
DECLARE MID CHAR;
SET MID = SUBSTRING(InputRoot.XML.NAME.MIDDLENAME FROM 1 FOR 1);
SET OutputRoot.XML.INFORMATION.NAME=UPPER(InputRoot.XML.NAME.FIRSTNAME || ' ' || MID ||' '|| InputRoot.XML.NAME.LASTNAME);
SET OutputRoot.XML.INFORMATION.POSITION=UPPER(InputRoot.XML.NAME.POSITION);
RETURN TRUE;
END;
CREATE PROCEDURE CopyMessageHeaders() BEGIN
DECLARE I INTEGER;
DECLARE J INTEGER;
SET I = 1;
SET J = CARDINALITY(InputRoot.*[]);
WHILE I < J DO
SET OutputRoot.*[I] = InputRoot.*[I];
SET I = I + 1;
END WHILE;
INSERT INTO Database.VIDEOR.AKASH.INFORMATION (FIRSTNAME, LASTNAME, HOUSENO, CITY) values (’firstname’, 'lastName', 007, 'USA');
END;
CREATE PROCEDURE CopyEntireMessage() BEGIN
SET OutputRoot = InputRoot;
END;
END MODULE;
then after Compute node i got the trace like below
***************************
----------------------------
(
(0x01000000):Properties = (
(0x03000000):MessageSet = NULL
(0x03000000):MessageType = NULL
(0x03000000):MessageFormat = NULL
(0x03000000):Encoding = NULL
(0x03000000):CodedCharSetId = NULL
(0x03000000):Transactional = NULL
(0x03000000):Persistence = NULL
(0x03000000):CreationTime = NULL
(0x03000000):ExpirationTime = NULL
(0x03000000):Priority = NULL
(0x03000000):ReplyIdentifier = NULL
(0x03000000):ReplyProtocol = 'MQ'
(0x03000000):Topic = NULL
(0x03000000):ContentType = NULL
)
)
********************* &&&&& *********
I/P failure trace has the following information
***************************
(
(0x01000000):RecoverableException = (
(0x03000000):File = 'F:\build\S000_P\src\DataFlowEngine\ImbMqInputNode.cpp'
(0x03000000):Line = 1768
(0x03000000):Function = 'ImbCommonInputNode::eligibleForBackout'
(0x03000000):Type = 'ComIbmMQInputNode'
(0x03000000):Name = 'AMF#FCMComposite_1_1'
(0x03000000):Label = 'AMF.MQInput'
(0x03000000):Catalog = 'BIPv600'
(0x03000000):Severity = 3
(0x03000000):Number = 2652
(0x03000000):Text = 'Dequeued failed message. Propagating a message to the failure terminal'
)
)
----------------------------
what do i need to change on my ESQL to insert data into my DB2
Thank You,
Bindu |
|
Back to top |
|
 |
|