Installation guide

Appendix B: Debugging and Diagnosing FlashCONNECT Configuration
144 FlashCONNECT Administrators Guide
Roving Tandem Debugger
A characteristic of persistent applications is that they can run on any phantom port
running FlashCONNECT. This is not problematic for small development systems that
use only one active FlashCONNECT connection. However, on larger multiuser
systems, determining the port on which the application being debugged is running
can be a repetitive, time-consuming task.
Roving tandems allow a developer to register as the client of an application, and
when the application dictates, allows the developer to automatically tandem to the
application from the ports that the application is running.
Roving tandem uses:
WWW-TANDEM, a command that registers the developer as the client of an
application and then waits for the application to request a connection.
w3Tandem, an API call that registers the application and connects to any
waiting developer.
When the developer registers, a record is written to the w3TandemControl file with
the application name and the port number on which the developer is waiting. When
the application registers, it adds its port number to the control record. When both
port numbers are known, the WWW-TANDEM command connects the developer to the
waiting application.
The developer and the application can end the connection. If the application is
finished, perhaps having sent information to the user and now stopping until the
next page is submitted, it uses the w3Tandem API call to temporarily disconnect the
tandem to the developer’s port. The WWW-TANDEM command waits for the
application to return, or for the developer to stop the WWW-TANDEM session. When
the application runs again, possibly from another port, the tandem between the two
ports is automatically re-established.
The following code example provides a simple tandem test:
bp ’w3mvDTandemTest’ size = 24
01 subroutine w3TandemTest
02 include wbp w3include
03
04 call w3Tandem("test", "Start")
05
06 call w3HtmlInit("", "")
07 call w3HtmlHeader("","")
08 for i = 1 to 10
09 CRT i
10 call w3Printn("<BR>":i)
11 sleep(1)
12 next i