Hot-deployment failed with NullPointerException for in-memory projects

Hot-deployment failed with NullPointerException for in-memory projects

book

Article ID: KB0081701

calendar_today

Updated On:

Products Versions
TIBCO BusinessEvents Enterprise Edition 5.5.0

Description

Beginning with TIBCO BusinessEvents 5.5.0 we support hot deployment of artifacts from Web Studio for In-Memory projects. When user attempts this deployment from Web Studio a NullPointer exception is reported on LoadAndDeploy in WebStudio (Worklist) when hotdeployment is enabled and Object Management is "Memory Only" for deployed TIBCO BusinessEvents application.

Exception in RMS server log:
<timestamp> <machine> Error [$default.be.mt$.Worker.8] - [WebStudio.Core.Rules.Lifecycle.WS_R_StatusChangeActivitiesRule] [WS-Inference-class] Exception during status change
com.tibco.cep.runtime.model.exception.impl.BEExceptionImpl: java.lang.NullPointerException: <no message>
    at be.gen.WebStudio.Core.RuleFunctions.Actions.Lifecycle.BuildAndDeploy.WS_RF_DeployAnArtifact$oversizeName.WS_RF_DeployAnArtifact(WS_RF_DeployAnArtifact$oversizeName.java:59)
    at be.gen.WebStudio.Core.RuleFunctions.Actions.Lifecycle.Review.nullWS_RF_PerformPostStatusChangeActivities$oversizeName.WS_RF_PerformPostStatusChangeActivities(nullWS_RF_PerformPostStatusChangeActivities$oversizeName.java:25)
    at be.gen.WebStudio.Core.RuleFunctions.Actions.Lifecycle.Review.nullWS_RF_PerformStatusChangeInWSForWS$oversizeName.WS_RF_PerformStatusChangeInWSForWS(nullWS_RF_PerformStatusChangeInWSForWS$oversizeName.java:95)
    at be.gen.WebStudio.Core.Rules.Lifecycle.WS_R_StatusChangeActivitiesRule$WS_R_StatusChangeActivitiesRule_a.execute(WS_R_StatusChangeActivitiesRule.java:101)
    at com.tibco.cep.kernel.core.rete.ReteWM.resolveConflict(SourceFile:401)
    at com.tibco.cep.kernel.core.rete.ReteWM$6.doTxnWork(SourceFile:1569)
    at com.tibco.cep.kernel.core.rete.BeTransaction.run(SourceFile:141)
    at com.tibco.cep.kernel.core.rete.BeTransaction.execute(SourceFile:101)
    at com.tibco.cep.kernel.core.rete.ReteWM.executeRules(SourceFile:1586)
    at com.tibco.cep.runtime.session.impl.RuleSessionImpl$1.doTxnWork(RuleSessionImpl.java:763)
    at com.tibco.cep.kernel.core.rete.BeTransaction.run(SourceFile:156)
    at com.tibco.cep.kernel.core.rete.BeTransaction.execute(SourceFile:101)
    at com.tibco.cep.runtime.session.impl.RuleSessionImpl.invokeFunction(RuleSessionImpl.java:767)
    at com.tibco.cep.runtime.session.impl.RuleSessionImpl.invokeFunction(RuleSessionImpl.java:731)
    at com.tibco.cep.runtime.session.impl.RuleSessionImpl.invokeFunction(RuleSessionImpl.java:727)
    at com.tibco.cep.driver.http.server.impl.servlet.PageFlowServlet$RuleFunctionExecTask.run(SourceFile:419)
    at com.tibco.cep.runtime.session.BEManagedThread.execute(BEManagedThread.java:457)
    at com.tibco.cep.runtime.session.BEManagedThread.run_from_queue(BEManagedThread.java:397)
    at com.tibco.cep.runtime.session.BEManagedThread.run(BEManagedThread.java:294)

Issue/Introduction

Hot-deployment failed with NullPointerException for in-memory projects

Environment

All Operating Systems

Resolution

The error is caused by configuration issue. 
To hot-deploy artifacts for in-memory projects add property "<project name>.<environment name>.ws.jmx.inMemory"  to the RMS server and set it to true for the specific project/environment.
see, Chapter "New Features",  "Rule Management Server (RMS)": 
https://docs.tibco.com/pub/businessevents-enterprise/5.5.0/TIB_businessevents-enterprise_5.5.0_relnotes.pdf

eg. (For deployed BE project "DTHotDeploy, "QA" environment, deployed and started on "localhost", JMX Port "5555", agent name: "Inference-class"):
<property name="DTHotDeploy.ws.applicableEnvironments" type="string" value="QA,PROD"/>
<property name="DTHotDeploy.QA.ws.jmx.hotDeploy.enable" type="boolean" value="true"/>
<property name="DTHotDeploy.QA.ws.jmx.host" type="string" value="localhost"/>
<property name="DTHotDeploy.QA.ws.jmx.port" type="integer" value="5555"/>
<property name="DTHotDeploy.QA.ws.jmx.inMemory" value="true"/>
<property name="DTHotDeploy.QA.ws.jmx.agentName" value="inference-class"/>

Additional Information

RMS, hot-deploy