Resolving mixed version issues in TIBCO Streaming projects

Resolving mixed version issues in TIBCO Streaming projects

book

Article ID: KB0073850

calendar_today

Updated On:

Products

TIBCO Streaming

Description

A project originally developed in an earlier version of TIBCO Streaming cannot run in a newer version, but fails with errors (example):
 WARNING: RegisterNatives failed: class: com/tibco/ep/dtm/tunable/EngineAPI method: getEngineState signature: '(Ljava/lang/String;)Ljava/lang/String;'
or
 failed C++ assertion 'SW_BOMB' Send to node failed : Connection reset by peer: socket write error Fragment deploy failed with exit code 1

Issue/Introduction

Mixed Streaming versions prevent startup. Correct this to a single version using SB Studio.

Resolution

If a node using a newer TIBCO Streaming version attempts to run an application archive built with an older version, or the StreamBase Studio IDE is used to run a module from a project which still references the older version of TIBCO Streaming in its configuration, then the launch may fail with the above errors.

The most recent releases of TIBCO Streaming, when a project is imported into the workspace, check whether there are references to other versions and report this in a dialog:
Maven POM Updates Required dialog after project import
and in the Problems view:
 Maven dependency version mismatch (Quick Fix available)	pom.xml	/chirp	project chirp: com.tibco.sb.version	StreamBase Typecheck Problem
You may right-click the problem item and choose " Quick Fix" from the menu.

Note that this is offered only when the project is newly imported and is otherwise unavailable. If the user has deleted this problem from the view, or has run the project context menu: Maven > Update, or other actions that reset problems, then this is no longer offered for this project.

The " Maven POM Updates Required" dialog, or the "Maven dependency version mismatch" problem entry's Quick Fix, find all POM version references and change them to the current Studio version. The Problems view is cleared and the project is typechecked using the new versions of the POM. 

To restore the ability to use the dialog if Studio is not showing it to you, you may re-import the project if it can be loaded from a ZIP file. You may export the projects to a ZIP archive (right-click the project and use menu: Export > General > Archive File), delete them from the workspace and disk, stop and re-start SB Studio, and re-import them. Otherwise you can change the POM versions manually. 

To find wrong versions manually in SB Studio, for each referenced fragment project:
  1. Open the pom.xml
  2. Go to the " Effective POM" tab
  3. In the editor, use Find (Ctrl-F) for the old wrong version, for example: 10.2
If found, note what type of item has the reference to the older version and see if you can correct this on the " Dependencies" tab or by directly editing the POM on the " pom.xml" tab. You will not be able to change this in the Effective POM tab.

For example, change in the pom.xml file:
 <parent>         <groupId>com.tibco.ep.sb.parent</groupId>         <artifactId>ep-eventflow-fragment</artifactId>         <version>10.5.0</version>     </parent>
to:
 <parent>         <groupId>com.tibco.ep.sb.parent</groupId>         <artifactId>ep-eventflow-fragment</artifactId>         <version>10.6.1</version>     </parent>
Then save the change, then right-click the project folder in the Project Explorer view and choose: Maven > Update, and click OK to close the dialog. This will rebuild and typecheck the application and resolve this issue.

When the correct version of the parent POM is referenced, the new platform POMs which are included by reference to create the Effective POM will change numerous Maven library references. To ensure that the correct version of the Streaming platform libraries are available in the local Maven repository, do the following:
  1. Open the StreamBase Command Prompt
  2. Make sure the desired version is reported from running:   epdev --version
  3. Run:   epdev install maven
You may need to restart SB Studio if ' epdev' reports that changes were made to the repository.