Contents
If you run multiple EventFlow fragments in StreamBase Studio, or if you explicitly specify using Any available for the listening port in a Run Configuration, the fragment launches but you may not know what StreamBase port each fragment is using.
To determine the StreamBase listening ports in use, run this epadmin command:
epadmin display services --servicetype=eventflow
This returns three lines of information about each running fragment, with the StreamBase URI on the last line. For example:
Service Name = eventflow.com_tibco_sb_sample_bestbidsandasks_BestBidsAsks0_BestBidsAsks.sbuser
Service Type = eventflow
Network Address = sb://Graemsay.local:13596
Similarly, to determine the LiveView ports in use, use the liveview
service type:
epadmin display services --servicetype=liveview
This returns:
Service Name = liveview.liveview0.sample_lv_sample_helloliveview.sbuser Service Type = liveview Network Address = sb://Graemsay.local:10000 lv://Graemsay.local:10080
In this case, the third line shows the URI of the StreamBase server that is running the LiveView application itself, as well as the LiveView URI.
On a busy subnet with many nodes running, the output of these commands can be more than you want to see. To narrow the results to the nodes running on a single machine, use grep on macOS and Linux or the find or findstr commands on Windows to narrow the results based on the machine name of interest. For example, a command like the following:
epadmin display services servicetype=eventflow | grep Graemsay
might return these results:
Network Address = sb://Graemsay.local:46279 Network Address = sb://Graemsay.local:43254 Network Address = sb://Graemsay.local:11493 Network Address = sb://Graemsay.local:62475
When using an epadmin command to connect to a running EventFlow fragment's ports, you only need to know the node's admin port, or its node name.
However, when using a legacy client access command such as sbc, or when using the StreamBase Client
API, you must know the StreamBase
URI in the form sb://hostname:port
, where the
default hostname and port are sb://localhost:10000
. For
access to an TLS-enabled StreamBase server, clients must use sbs://hostname:port
.
For example, the StreamBase client command sbc with its list option returns a report of the StreamBase objects in the running fragment. For example:
sbc -u sb://sbserver.example.com/nnnnn
list
If the machine hosting the server is the current machine, only the port needs to be specified:
sbc -p nnnnn
list
If the machine is localhost
, and the port number is the
traditional default, 10000, then neither host nor port need to be stated. Thus:
sbc list
A running LiveView server uses two ports: one for the StreamBase server that is running the LiveView application itself, and the second port for the LiveView URI. The default port for a LiveView server's StreamBase server instance is 10000, while the default LiveView port is 10080. For a security-enabled LiveView server, the default port is 10443.
The primary method for accessing a running LiveView server is through its embedded
web server using a standard browser. For a LiveView server running on the default
port, point your browser to, for example, http://localhost:10080
. When a LiveView project is
configured to provide access to a custom JavaScript interface, access the server with
a URL such as http://localhost:10080/
. If your LiveView project
is configured to provide access to TIBCO LiveView Web™ clients, access those servers
with a URL like customname
http://localhost:10080/lvweb
. In either case, use
https
and the 10443 port for
security-enabled LiveView servers.
If you are running multiple LiveView server instances, each instance must have its own port. Determine the ports in use as described in What Port Am I Using? above.
When using TIBCO LiveView Desktop™ or the LiveView Client API, you must use a
LiveView URI in the form lv://hostname:port
, where the
default hostname and port are lv://localhost:10080
. When
connecting to an TLS-enabled LiveView server, clients must use lvs://hostname:port
, where the default security-enabled port is
10443.
You can edit the Run Configuration for EventFlow fragments to specify using a particular listener port.
There is a chicken and egg problem here. You must run the fragment at least once with default settings in order to create and store a Run Configuration. When that is done, open the Run Configuration for the fragment you just ran with
> from Studio's top-level menu (or by using the drop-down menu to the right of the Run button in the Studio toolbar).In the Run Configurations dialog, open EventFlow Fragment in the contents panel on the left, and select the name of the EventFlow module you just ran. The Main tab of that module's run configuration shows the port selection options.
- StreamBase engine port
-
Specifies the Client API listening port for this EventFlow engine. Choose one of the following options:
- Configuration or default
-
Specifies that the EventFlow listening port is assigned by a configuration file of type
sbclientapilistener
in the project'ssrc/main/configurations
folder. If no configuration file sets the listening port for this project, a random, unused port is assigned. - Any available
-
Select this control to specify any port not currently in use. This control is the same for Studio as setting
portNumber = 0
in a configuration file. - Specified
-
Select this control to specify a particular listening port number for this fragment's EventFlow engine. This setting can override a port set in a configuration file for the same launch.
Learn more about using the Run Configurations dialog on Editing EventFlow Run Configurations.
You can use a HOCON configuration file to specify a StreamBase listening port. Create
such a configuration file using Studio's StreamBase HOCON Configuration Editor, and
save the file to the src/main/configurations
folder of
your Studio project. The port specification is then used when the fragment is both by
Studio (with the Configuration or default option
selected) and when run with epadmin as
part of running a StreamBase Application archive.
Specify a HOCON configuration file of type sbclientapilistener. The following shows an example of such a file that sets the listener port to an explicit value of zero, which tells the Runtime to use any available port over 1024:
name = sbportzero version = 1.0.0 type = com.tibco.ep.streambase.configuration.sbclientapilistener configuration = { ClientAPIListener { apiListenerAddress = { portNumber = 0 } } }
The following version sets the listener port to the value of a variable named SBPORT with a default value of 10011. You must specify a default value when specifying variable names.
name = sbportzero version = 1.0.0 type = com.tibco.ep.streambase.configuration.sbclientapilistener configuration = { ClientAPIListener { apiListenerAddress = { portNumber = ${SBPORT:-10011} } } }
You then specify a value for SBPORT on the epadmin node
install command line using the substitutions
parameter as shown in the following example. (This
command is shown on multiple lines, but must be entered as one long command.)
epadmin install node --application=target/deploy_firstapp-0.0.1-SNAPSHOT-ep-application.zip --nodename=B.sbuser --nodedirectory=~/tmp/Nodedirs --substitutions="SBPORT=10025"
If you use a port-setting configuration file with a default value, and then forget to
include the substitutions
parameter, the fragment loads
using the default port.
Studio reports the StreamBase listening port in four locations:
- 1. In the blue information bar
-
When an EventFlow top-level module was successfully launched, it reports its status in a blue information bar across the upper left corner of the canvas. The full StreamBase URI is reported in this message, including the current port in use. If the server is running on the default port 10000, the port number is not shown. If the information bar is closed, hover over the blue
i
icon to see the URI.The StreamBase URI is reported only when a single instance of the same fragment is running.
- 2. In the Clusters view
-
In the Clusters and Nodes pane on the left, select the Engine line for the currently running node. On the right, look for EventFlow Fragment Client URI, which shows the full URI including port number.
- 3. When hovering over the Running icon
-
The Running icon is in the lower left corner of the Studio window, and shows a green arrowhead when a fragment is running. Hover the cursor over this icon to see a brief report that includes the StreamBase URI with port. If there are multiple fragments running, the hover text shows all fragments and their URIs.
- 4. In the Console view log
-
One of the information lines shown in the Console view for a successful fragment launch reports the status of the StreamBaseHTTPServer subsystem. Immediately following is the hostname and listening port.
The following image shows the approximate location in the SB Test/Debug perspective of the four reporting locations, numbered as in the list above.
The methods of setting and determining the client API listening port for LiveView servers are analogous to the methods for StreamBase servers described in the previous sections.
- Setting the LiveView Port in Studio
-
Edit the Run Configuration for a LiveView fragment to specify using a particular pair of ports. For LiveView fragments, you can independently set the port for the StreamBase server that underlies and supports LiveView, and the port for the LiveView server itself.
See the description of the Main tab of the Run Configurations dialog for LiveView servers.
Note
LiveView fragment ports do NOT auto-select random ports if the configured or default ports (10000 and 10080) are in use. To run two or more LiveView fragments at the same time in Studio or with epadmin, you must configure the second and subsequent fragments to use either the Any available or Specified options.
- Setting the LiveView Port with Configuration
-
Specify a HOCON configuration file of type ldmclientapilistener. The following shows an example of such a file that sets the listener port to an explicit value of 10088:
name = "ldmport" version = "1.0.0" type = "com.tibco.ep.ldm.configuration.ldmclientapilistener" configuration = { ClientAPIListener = { portNumber = 10088 } }
You can use a substitution variable for the port number as described in Setting the StreamBase Port with Configuration and in Substitution Variables. The ldmclientapilistener configuration type is described in LiveView Client API Listener Configuration.
- Determining the LiveView port in Studio
-
Studio reports the LiveView listening port in two locations:
- 1. In the Clusters view
-
In the Clusters and Nodes pane on the left, select the Engine line for the currently installed and started node. On the right, look for LiveView Fragment Client URI, which shows the full URI, including port number.
- 2. In the Console view log
-
One of the information lines shown in the Console view for a successful fragment launch reports a line such as "LiveView Web service listening on non-SSL port 10080".