This can be done by setting the query table's persistence Type to 'In Transactional Memory' in the 'Table Settings' properties tab. This option is detailed in the Help under TIBCO Streaming > Authoring Guide > Using Query Tables > Using the Query Table Data Construct > (sub-heading) Properties: Table Settings Tab:
https://docs.tibco.com/pub/str/10.4.0/doc/html/authoring/querytable.html
In addition, go to the 'Data Distribution' tab and select 'Distribute Data' and use our default Policy Name (default-dynamic-data-distribution-policy).
Once the table is configured for transactional memory, add a node configuration file to specify the different nodes that you want to run. For example..
name = "sample-NodeDeploy-document" type = "com.tibco.ep.dtm.configuration.node" version = "1.0.0" configuration = { NodeDeploy = { nodes = { "A.sbuser" = { } "B.sbuser" = { } } } }
The attached project set provides this node configuration file in the SB application project (named 'deployApp'). The deployApp archive can then be built in Studio by right-clicking on the project folder in the Project Explorer, and selecting "StreamBase > Create Application Archive".
Once the deployApp is built, both nodes can be run in Studio by creating separate launch configurations for each node. Go to Run > Run Configurations > StreamBase Application. Then select the StreamBase Application Archive from the deployApp project's 'target' directory on the 'Main' tab:
In the 'Node' tab, specify which node will be launched:
In the 'Parameters' tab, set the 'SB_PORT' value. This value needs to be different for each node, and is set in the deployApp's listener.conf file under src/main/configurations:
Once both nodes have been launched, the contents of the query table will be shared between each node. This can be confirmed by entering tuples in the ReadIn and WriteIn input streams in the Manual Input view.