Project Deploy Configuration may conflict with Run Configuration in Studio

Project Deploy Configuration may conflict with Run Configuration in Studio

book

Article ID: KB0083088

calendar_today

Updated On:

Products Versions
TIBCO Streaming 10

Description

This applies to StreamBase 10 HOCON deploy configurations.

It is normally a convenience that when launching an EventFlow application fragment using a Run Configuration that the "default" container is assumed. However when using a deployment engine configuration in the project, since the default container is automatically configured, the engine configuration cannot reference the default container without conflict. This means that deployment configuration properties cannot be applied to the default container when using a Run Configuration.

Issue/Introduction

Explanation of conflict and corrective actions.

Resolution

Normally an EventFlowDeployment configuration file is not used in a fragment project, but instead only used in an application project. However, it is allowed and will be used when launching applications from Studio and using the Test/Debug perspective.

A simple deployment file example which causes a problem is (simple_deploy.conf):
 name = "simple_deploy" type = "com.tibco.ep.streambase.configuration.sbengine" version = "1.0.0" configuration = {   EventFlowDeployment = {     modules = [       {         moduleName = "com.sb.support.myapp.MyApp"         containerName = "default"         moduleParameters = {           REP1 = ${SUB1:-'defaultValue1'}         }       }     ]	   } }
This deployment file will conflict with running any fragment in this project because it references the "default" container.

The launch error is:
 error (fragment deploy): nodename.clustername - Caused by: com.kabira.platform.component.ComponentException:\  EventFlow deployment configuration defines container "default", which is also being used as a deploy container name error (fragment deploy): nodename.clustername - com.kabira.platform.management.Exit:Fragment deploy failed with exit code 1 failed (fragment deploy): returnCode = 1

Remove the conflict by:
a) editing the Run Configuration to un-select from Main tab, Configuration files:, src/main/configurations/{deploy.conf}.
b) editing the deployment configuration by changing the containerName setting to something other than "default". This will run the specified module in another container at the same time the Run Configuration launches its configured module in the "default" container.

If you get the "Fragment deploy failed" error above, then delete the failed node directory at {workspace}\.nodes\{nodename.clustername}.
If you do not remove the failed node, then Studio will prompt you to confirm whether to delete this directory at the next launch (dialog example):
Delete node Yes-No dialog.

Reply "Yes" to this dialog.
 

Background

All existing configurations in src/main/configurations are automatically selected when Studio creates a new Run Configuration when initially launching a new EventFlow fragment. This means that if an existing deploy configuration launches additional fragments into other containers, these will be automatically included in the server instance which is started. Additional containers started this way will not be connected by Studio for manual input or showing stream output. Only the one EventFlow fragment specified in the Run Configuration, Main tab, "Main EventFlow module (.sbapp)" will be connected to the Test/Debug perspective. That application is run in the container named "default".

This behavior is described in the SB 10.2 "Known Limitations" release notes section as items SB-42324, SB-30773, and SB-30846. This limitation does not occur when running the application from the epadmin command-line.