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 » Line of ESQL being skipped (not being executed)

Post new topic  Reply to topic
 Line of ESQL being skipped (not being executed) « View previous topic :: View next topic » 
Author Message
chrisc
PostPosted: Wed Jan 30, 2008 4:07 pm    Post subject: Line of ESQL being skipped (not being executed) Reply with quote

Voyager

Joined: 19 Mar 2006
Posts: 77

Hi everyone,

I am having a weird, weird problem at the moment with a MB v5 flow.

I have a compute node with some ESQL in it, and one of the final things it does is to call a procedure to remove a record from the database.

However, it just seems to point blank refuse to execute this line!

I have tried it in normal mode and debug mode, rebuilt and redeployed multiple times, added additional lines of ESQL after the procedure call to ensure that the whole flow doesn't break (it just skips the line in question and moves on to the next).

It's also worth mentioning that the procedure being called works fine - I use it in another flow without problems.

Has anyone seen anything like this before? (Continued in the next message...)
Back to top
View user's profile Send private message
chrisc
PostPosted: Wed Jan 30, 2008 4:10 pm    Post subject: Reply with quote

Voyager

Joined: 19 Mar 2006
Posts: 77

Sorry for having to split my post, this forum was giving me "service unavailable" messages if I tried posting the whole thing at once...

Anyway, the main ESQL snippet is:
Code:
      -- Set the destination to be the target system
      SET OutputLocalEnvironment.Destination.MQ.DestinationData[1].queueName =
         Environment.temp.results[1].TARG_SYS_Q;
         
      -- Try removing the transaction from the transaction table. If it fails for some reason,
      -- such as there being no transaction record for it, this will do nothing.
      CALL removeTransaction(Environment, tid);
      
      RETURN TRUE;


The procedure being called is:
Code:

CREATE PROCEDURE removeTransaction
(
   IN Environment REFERENCE,
   IN tid CHAR
)
BEGIN

   DECLARE databaseCommand CHAR
      'DELETE FROM DB_PREFIX.MBP_TRANSACTION WHERE ID_TXN = ?';

   PASSTHRU ( databaseCommand, tid);

END;



When I debug, it will highlight the DECLARE statement, then jump back out of the procedure without going to the PASSTHRU. I've confirmed that the Environment reference and tid value are both populated correctly when it steps into the procedure.

Any ideas? This is just bizarre!

Many thanks,
Chris


Last edited by chrisc on Wed Jan 30, 2008 4:18 pm; edited 1 time in total
Back to top
View user's profile Send private message
jefflowrey
PostPosted: Wed Jan 30, 2008 4:17 pm    Post subject: Reply with quote

Grand Poobah

Joined: 16 Oct 2002
Posts: 19981

I've never seen this kind of behavior.

This flow seems like a good candidate for your migration to v6 process, given that v5 goes out of support in September...
_________________
I am *not* the model of the modern major general.
Back to top
View user's profile Send private message
chrisc
PostPosted: Wed Jan 30, 2008 5:08 pm    Post subject: Reply with quote

Voyager

Joined: 19 Mar 2006
Posts: 77

This forum was preventing me from posting the procedure code, and I finally narrowed it down to the PASSTHRU line... I thought this might be a clue (some weird character that LOOKS like the normal character but isn't?), but I just retried it by retyping the whole procedure from scratch, and no luck.

Believe me, we'd love to move to v6 for this solution (MQGet nodes... that alone would make it worth the transition for this project!) but unfortunately we're the code monkeys not the decision makers. It'll happen eventually, but not in time for this project to go live.
Back to top
View user's profile Send private message
seeknee
PostPosted: Wed Jan 30, 2008 8:14 pm    Post subject: Reply with quote

Apprentice

Joined: 08 Aug 2002
Posts: 41
Location: Melbourne, Australia

Hi

Have you tried

CREATE PROCEDURE removeTransaction
(
IN Environment REFERENCE,
IN tid CHAR
)
BEGIN

DECLARE databaseCommand CHAR
'DELETE FROM DB_PREFIX.MBP_TRANSACTION WHERE ID_TXN = ' || tid;

PASSTHRU ( databaseCommand);

END;
_________________
IBM Certified Specialist MQSeries
IBM Certified Specialist WebSphere MQ Integrator
IBM Certified Solution Designer WebSphere Business Integration Message Broker V5

"Good judgement comes from experience, and experience comes from poor judgement"
Back to top
View user's profile Send private message
chrisc
PostPosted: Wed Jan 30, 2008 10:40 pm    Post subject: Reply with quote

Voyager

Joined: 19 Mar 2006
Posts: 77

Seeknee, I tried your suggestion as well and the behaviour seems to be the same - it just skips the database statement completely.

I'm wondering if it's just some bizarre combination of timings and other things which are leading to it - a "perfect storm" so to speak...
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 » Line of ESQL being skipped (not being executed)
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.