XCALL Client Proxy Server


The BBj XCALL Client Proxy Server available in BBj 10.01 and higher allows for the calling of a BBj program from PRO/5 and Visual PRO/5 10.0 and higher via the XCALL verb.

In BBj 19.00 and higher, The XCALL Server was renamed as the XCALL Client Proxy Server, and has been superseded by the new XCALL Server unless there is a need for client GUI features, such as creating windows or calling BBjThinClient API methods.

Use Cases

For most XCALL Verb use cases, use the XCALL Server introduced in BBj 19.00 and higher, which can be configured through the Enterprise Manager.

The older XCALL Client Proxy Server should only be used if you need to XCALL a BBj program that uses GUI features or calls BBjThinClient API methods.

Because the XCALL Client Proxy Server runs on the client machine, it can execute BBj GUI programs, provided that the client machine is a Windows Client or has a Window Manager installed, or if (V)PRO/5 is running on a terminal emulator that supports client-side commands.

XCALL Client Proxy Server for BBj

The XCALL Client Proxy server is a BBj program found in <bbj install dir>/utils/xcall/xcallserver.bbj. The default prefix includes that path, so that xcallserver.bbj can usually be invoked without specifying a full path.

Starting the Server

To start the server, use the following syntax:

bbj –TC {–RH<host>} xcallserver.bbj {- {<port>} {ssl} {bind_address=<address string>} {debug} {heartbeat=<X>}}

Parameter Description

Ensures that the server runs in Thin Client mode to provide access to GUI features.

If GUI features are not needed, use the new XCALL Server.


The name of the machine on which BBjServices is running, if different than the client.


Specifies the port on which the server is listening.

Note: If no port is specified, port 4444 is used.


In BBj 19.0 and higher, the ssl option can be specified to use SSL Encrypted communication.

Note: If the ssl option is set on the server, it must also be enabled on the client in either the XCALL.ini file or in the MODE=<mode string>.

bind_address=<address string>

In BBj 19.0 and higher, the bind_address=<address string> option can be specified to bind communication to a specific network interface. The default option is (localhost), which only permits connections to the XCALL Client Proxy Server from the same machine. If is specified, any machine can connect to the server.


In BBj 14.0 and higher, the debug option, specified as a case insensitive string, turns on debug for the XCALL Client Proxy Server. This debug will be written to the <bbj>/log/Debug.log* file. Debug can also be activated and deactivated dynamically by setting the global namespace xcallserver.debug variable, as shown below:

gns! = BBjAPI().getGlobalNamespace(); gns!.setValue("xcallserver.debug",1)


In BBj 15.0 and higher, the heartbeat=<X> option, specified as a case-insensitive string, sets the heartbeat interval between the BBj and Java components which comprise the XCALL Client Proxy Server. The value of X is as follows:

< 0 : No heartbeat

= 0 : Use the default interval, 60 seconds.

> 0 : Number of seconds for the heartbeat interval.

When the interval is greater than zero, the server will exit if the heartbeat is not received in that interval.

In BBj 17.0 and higher, the server will continue to run if the heartbeat interval is < 0.

Examples of Starting the Server

bbj xcallserver.bbj - 4444

bbj xcallserver.bbj - debug

bbj xcallserver.bbj - 3333 debug heartbeat=30

bbj -tT2 xcallserver.bbj - ssl bind_address= 4444

The terminal specified for the server is also used for the called BBj program. For example, the INVISIBLE terminal (T2 in the default config.bbx on Windows) can be specified (-tT2) and both the server and the called BBj program will be run with the Sysconsole hidden.

Stopping the Server

To stop the server, from the same client that started the server, use the following command line:

   bbj {–RH<host>} xcallserver.bbj - STOP

To stop all XCALL servers, regardless of the client that started the server, use the following command line:

   bbj {–RH<host>} xcallserver.bbj - STOPALL

See Also

XCALL Server