TIBCO BusinessEvents (BE) does not validate the payload in an event. It fails to throw an exception even if the payload does not confirm to the schema.

TIBCO BusinessEvents (BE) does not validate the payload in an event. It fails to throw an exception even if the payload does not confirm to the schema.

book

Article ID: KB0088639

calendar_today

Updated On:

Products Versions
TIBCO BusinessEvents Enterprise Edition -
Not Applicable -

Description

Resolution:
Description:
============
By default, BE will not validate the payload in an event and it does not throw any exception even if the payload is not confirming with the schema defined.


Environment:
==========
TIBCO BusnessEvents Version 3.0.1 and up
All Operating Systems


Symptoms:
=========
BE will not throw any warning or exception for an invalid payload to an event, which leads to loss of functionality.


Cause:
=====
This was identified as a defect in early versions of BE 3.0.1 release and it is fixed in BE 3.0.1, hotfix release 8 onwards.


Resolution:
=========
1). Download and apply BE 3.0.1 HF8 from TIBCO Hotfix download site.

2). Add the following property in the BE engine TRA:
    java.property.com.tibco.cep.runtime.channel.payload.validation=true

3). Restart the engine.


Caution
=======
Once the BE engine is started with the above mentioned settings in the TRA file,  it  will throw an exception for bad payload at Channel layer (before the event reaches any preprocessor). Hence this exception could not be caught by any BE code.


Note:
=====
Currently, if you want to delete the wrong messages from the queue, you could set a proper Time To Live (TTL ) value in the channel. After the messages exceeds TTL it will be deleted. If you want  extra steps to deal with the wrong message you may need turn off the payload validation and do validation manually in preprocessor.

Issue/Introduction

TIBCO BusinessEvents (BE) does not validate the payload in an event. It fails to throw an exception even if the payload does not confirm to the schema.