How to avoid the error: AEADB-930001 Received SDK error Advisory on _SDK.ERROR.JMS.RECEIVE_FAILED: ADB adapter will shutdown.

How to avoid the error: AEADB-930001 Received SDK error Advisory on _SDK.ERROR.JMS.RECEIVE_FAILED: ADB adapter will shutdown.

book

Article ID: KB0073797

calendar_today

Updated On:

Products Versions
TIBCO ActiveMatrix BusinessWorks Plug-in for Database 7.2

Description

When the ADB adapter is configured with the EMS server and running EMS server is suddenly stopped then ADB adapter throws the error:
==============================================
AEADB-930001 Received SDK error Advisory on _SDK.ERROR.JMS.RECEIVE_FAILED
{, M_TREE {
{^tracking^, M_TREE {
{^id^, M_STRING, "JX0bNpmjTHfOs-tfB7/a83sEiGo"}
}}
{ADV_MSG, M_STRING, "Consumer receive failed. JMS Error: javax.jms.IllegalStateException: Consumer is closed, SesionName: ADBAgentJmsSession, Destination: Domainname.Deploymentname.adb.InstanceId.exit"}
}}

tracking=<trackingId>
AEADB-200002
ADB adapter will shutdown.
===============================================

Environment

=================================================== Product: TIBCO ActiveMatrix BusinessWorks Plug-in for Database Version: 7.2 OS: All Supported Operating Systems ====================================================

Resolution

The above error occurs because the ADB adapter is not able to connect the EMS server to insert or get the message from the EMS queue or EMS topic.
If ADB adapter keeps running without inserting data in the database when the EMS server is stopped then ADB adapter continues to poll to the database for new records and the adapter works fine but when the data/records are inserted in the database then ADB adapter poll the same data and publish the same data/message to the EMS server, but  EMS server is in the stopped situation then ADB adapter stops with the above error message.


To avoid above error , add following properties in factories.conf at EMS end and restart the EMS server.
===============
reconnect_attempt_count = 1000
reconnect_attempt_delay = 1000
reconnect_attempt_timeout = 1000
===============

In this scenario, the adapter will try to connect the EMS server 1000 times with a delay of 1 second and If the EMS server is up then the ADB adapter will work without throwing the above error message. 
But if the EMS server will not up after 1000 attempts then the ADB adapter will shut down and throw the above error. 


When the "reconnect_attempt_count" is configured then the ADB adapter is running without inserting data in the database with the EMS server down the situation and it continues polling to the database and the adapter works fine till "reconnect_attempt_count " reached. 
If the data is inserted in the database to send the message to the EMS server with the EMS server down situation or before recaching "reconnect_attempt_count " then the adapter stops with the above error message.

If multiple JMS Provider URL's are configured in factories.conf for EMS connection factory as:
====================
tcp://server1:7222;tcp://server2:7222
====================

Then need to add above reconnection properties in all the EMS servers and restart them.

Issue/Introduction

Configure given EMS re-connection properties in factories.conf