|
RSS Feed - WebSphere MQ Support
|
RSS Feed - Message Broker Support
|
 |
|
Exception Handling |
« View previous topic :: View next topic » |
Author |
Message
|
mc01285 |
Posted: Thu Aug 26, 2010 6:27 am Post subject: Exception Handling |
|
|
Novice
Joined: 11 May 2009 Posts: 11
|
Wondering if anyone else has run into this . . .
I have MQInput -> ComputeNode -> propagates to a subflow that contains a ComputeNode that accesses a Stored Procedure. I'm trying to handle any exceptions within the Stored Procedure ComputeNode . . . I have turned off the "throw exception on database error" on the ComputeNode, but it is still throwing the exceptions (ie. stored procedure name not found, or DSN not defined). |
|
Back to top |
|
 |
smdavies99 |
Posted: Thu Aug 26, 2010 6:59 am Post subject: |
|
|
 Jedi Council
Joined: 10 Feb 2003 Posts: 6076 Location: Somewhere over the Rainbow this side of Never-never land.
|
I first ran into this back in the 2.1 days.
Broker (bless its cotton socks...) tries to be clever and think ahead.
So it seets that you are heading for a ComputeNode with a DSN defined.
During the node initialisation and before you execute and of the ESQL inside, it logically tries the connection.
What you are seeing is this.
The errors are happeining before any of your ESQL in the node is being executed. This is as I was told at the time in respose to the PMR, expected behaviour.
Things improved a lot with V5 as thie 'look ahead' was done close to the actual node that used it.
IMHO, this is outside the realms (unless you are coding in C/C++ etc) of letting the use control the error handling. These events are pretty serious and again IMHO represent a fatal condition. _________________ WMQ User since 1999
MQSI/WBI/WMB/'Thingy' User since 2002
Linux user since 1995
Every time you reinvent the wheel the more square it gets (anon). If in doubt think and investigate before you ask silly questions. |
|
Back to top |
|
 |
mc01285 |
Posted: Thu Aug 26, 2010 7:07 am Post subject: |
|
|
Novice
Joined: 11 May 2009 Posts: 11
|
I can actually debug the compute node and get to the Stored Procedure call . . .
CALL terminate_entered_in_error (blah, blah, blah) IN Database.{UpdateMUDI_UpdateMUDI_DSN}.{UpdateMUDI_UpdateMUDI_Schema};
IF (SQLCODE < 0 ) THEN
SET envRef.ErrorCode = 4;
SET envRef.ErrorMessage = 'Unable to call terminate_employment'
|| ' XCP_TYPE{Server}'
|| ' XCP_FAULTCODE{BackendProcessFailure}'
|| ' XCP_FAULTSTRING{Failed Call to Backend Resource}'
|| ' XCP_FAULTACTOR{com.hli.gbd.gbdpartydataintegrationprocess.v100.process.UpdateMUDI_UpdateMUDI}'
|| ' XCP_ERRORMSG{' || SQLERRORTEXT || '}'
|| ' XCP_ERRORDTL{SPACK_MUDI_VETTING.terminate_employment,SQLSTATE=' || COALESCE(CAST(SQLSTATE AS CHARACTER Encoding inEncoding), 'NULL') || ',SQLCODE=' || COALESCE(CAST(SQLCODE AS CHARACTER Encoding inEncoding), 'NULL') || ',SQLNATIVEERROR=' || COALESCE(CAST(SQLNATIVEERROR AS CHARACTER Encoding inEncoding), 'NULL') || '}';
END IF;
If I give it a bogus schema name, I get a "procedure not found" exception that throws me all they way back to the MQInput Node. |
|
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
|
|
|
|