Inference Agent could hang when the cursor name for the database query is not unique using catalog function Database.createQuery().

Inference Agent could hang when the cursor name for the database query is not unique using catalog function Database.createQuery().

book

Article ID: KB0088662

calendar_today

Updated On:

Products Versions
TIBCO BusinessEvents Enterprise Edition -
Not Applicable -

Description

Resolution:
Description:
===========
Inference Agent could hang when the cursor name for each database query is not unique using catalog function Database.createQuery().

Environment:
===========
TIBCO BusinessEvents 3.0/4.0/5.0
All Operating Systems

Symptoms:
=========
InferenceAgent hang, thread dump shows database deadlock.

State : BLOCKED  on oracle.jdbc.driver.T4CConnection@11f111234  owned
by $default.be.mt$.Worker.2

Cause:
======
static cursor name (String) defined in database query catalog function Database.createQuery(&ltjdbc>,&ltcursorName>,&ltresultTypeURI>,&ltsqlquery>,&ltpageSize>,&ltarr>)

Resolution:
========
Use a unique cursorname for each query (example: event@id_&ltcurrent_timestamp>)

NOTE: The engine caches the query results with cursorname as its key. The cursorname is required to browse the query results in pages, that is why you need to pass cursorname to getNextPage function. If the same key is used the cached query results will be shared by multiple threads and it will result in blockage.

Issue/Introduction

Inference Agent could hang when the cursor name for the database query is not unique using catalog function Database.createQuery().