APAR status
Closed as program error.
Error description
An abend may be seen in an ESQL node when it tries to evaluate a flow or node level property, eg SQL.MessageFlowLabel when run inside a condition hander or as part of a database select/insert/update/delete statement. For the condition handler the ESQL function/module which contains the condition handler must be referenced by more than 1 ESQL node. For example the following ESQL could lead to the abends: CREATE COMPUTE MODULE module2 CREATE FUNCTION Main() RETURNS BOOLEAN BEGIN DECLARE CONTINUE HANDLER FOR SQLSTATE LIKE'%' BEGIN SET OutputRoot.XMLNSC.Test.label = SQL.MessageFlowLabel; END; THROW USER EXCEPTION MESSAGE 2951 VALUES('An exception.'); END END MODULE; For the database statements then the statement must reference a dynamic database name/schema. For example the following ESQL could lead to the abends: CREATE COMPUTE MODULE computeModule CREATE FUNCTION Main() RETURNS BOOLEAN BEGIN UPDATE Database.{DataSource}.MYDSN.bob.TABLE AS T SET COLUMN1 = 'TEST' WHERE T.COLUMN2 = SQL.ApplicationLabel; END; END MODULE; CREATE COMPUTE MODULE computeModule CREATE FUNCTION Main() RETURNS BOOLEAN BEGIN SET OutputRoot.XMLNSC.TEST] = SELECT P.COLUMN1 FROM Database.{DataSource}.TABLE AS P; END; END MODULE; The abend stacks will show SqlFieldReference::constantValue or SqlFieldReference::evaluate at or near the top. For example: SqlFieldReference::constantValue(SqlInterface const&) SqlFieldReference::evaluate(SqlEvalEnviron&, ImbValue&) SqlExternalDbStmt::executeStatement(SqlEvalEnviron&, SqlUpdateStatement::execute(SqlStatementResult&) SqlRuntimeStatementDatabase::execute(SqlStatementResult&) SqlStatementGroup::execute(SqlStatementResult&) SqlCompoundStmt::execute(SqlStatementResult&) SqlRoutine::execute(SqlStatementResult&) SqlModule::execute(SqlStatementResult&) SqlComputeInterface::evaluate(ImbMessageAssembly const&, ImbESQLComputeSession::evaluate(ImbMessageAssembly const&, ImbComputeNode::evaluate(ImbMessageAssembly const&, or SqlFieldReference::constantValue(SqlInterface const&) SqlFieldReference::evaluate(SqlEvalEnviron&, ImbValue&) SqlRoutine::setupChildEnv(SqlEvalEnviron&, SqlRoutine::invoke(SqlStatementResult&, SqlCallableFunctionFnCall::evaluate(SqlResult&) SqlExpressionNode::evaluate(SqlEvalEnviron&, ImbValue&) SqlAssignment::assignToVariable(SqlEvalEnviron&) SqlAssignment::execute(SqlStatementResult&) SqlStatementGroup::execute(SqlStatementResult&) SqlCompoundStmt::execute(SqlStatementResult&) SqlConditionHandler::execute(SqlStatementResult&, SqlStatementGroup::handleException(SqlStatementResult&, SqlStatementGroup::execute(SqlStatementResult&) SqlCompoundStmt::execute(SqlStatementResult&) SqlRoutine::execute(SqlStatementResult&) SqlModule::execute(SqlStatementResult&) SqlComputeInterface::evaluate(ImbMessageAssembly const&, ImbESQLComputeSession::evaluate(ImbMessageAssembly const&, ImbComputeNode::evaluate(ImbMessageAssembly const&,
Local fix
Problem summary
**************************************************************** USERS AFFECTED: All users of IBM Integration Bus V10.0.0.1 and above, V9.0.0.4 and above, and WebSphere Message Broker V8.0.0.7 and above, who use ESQL condition handlers or database statements. Platforms affected: z/OS, MultiPlatform **************************************************************** PROBLEM DESCRIPTION: An abend may be seen in an ESQL node when it tries to evaluate a flow or node level property, eg SQL.MessageFlowLabel when run inside a condition hander or as part of a database select/insert/update/delete statement. For the condition handler the ESQL function/module which contains the condition handler must be referenced by more than 1 ESQL node. There are a number of resource name changes between WebSphere Message Broker and IBM Integration Bus Version 9.0. For details visit http://pic.dhe.ibm.com/infocenter/wmbhelp/v9r0m0/topic/com.ibm.e tools.mft.doc/bb23814_.htm
Problem conclusion
The product now correctly resolves ESQL condition handlers and database statements which reference flow or node level properties when they are used for more than 1 ESQL node. --------------------------------------------------------------- The fix is targeted for delivery in the following PTFs: Version Maintenance Level v10.0 10.0.0.9 v8.0 8.0.0.9 v9.0 9.0.0.8 The latest available maintenance can be obtained from: http://www-01.ibm.com/support/docview.wss?rs=849&uid=swg27006041 If the maintenance level is not yet available,information on its planned availability can be found on: http://www-1.ibm.com/support/docview.wss?rs=849&uid=swg27006308 ---------------------------------------------------------------
Temporary fix
Comments
APAR Information
APAR number
IT17829
Reported component name
WEB MESSAGE BRO
Reported component ID
5724J0520
Reported release
800
Status
CLOSED PER
PE
NoPE
HIPER
NoHIPER
Special Attention
NoSpecatt / Xsystem
Submitted date
2016-11-07
Closed date
2017-05-25
Last modified date
2017-05-25
APAR is sysrouted FROM one or more of the following:
APAR is sysrouted TO one or more of the following:
Fix information
Fixed component name
WEB MESSAGE BRO
Fixed component ID
5724J0520
Applicable component levels
[{"Business Unit":{"code":"BU053","label":"Cloud & Data Platform"},"Product":{"code":"SSKM8N","label":"WebSphere Message Broker"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"8.0","Edition":"","Line of Business":{"code":"LOB36","label":"IBM Automation"}}]
Document Information
Modified date:
25 May 2017