When you run JADE in thin client mode, you should be aware of the following functionality.
-
If a large amount of data must be transmitted to the presentation client (for example, the initial download of a form containing a bitmap), a progress bar is displayed on the presentation client workstation if it is determined that the download time will be significant.
-
The read and write instructions are always executed on the presentation client workstation.
-
All printer functions are performed by the presentation client and connect to printers local to that presentation client workstation.
-
The Printer::getAllPrinters method returns printers:
-
Local to the presentation client only, when executed on a presentation client
-
Attached to that server, when called from a server method (which enables you to get a list of valid printers for the application server if you want to schedule report jobs for a reporting presentation client that runs on the application server)
-
The Printer::setPrinter method sets the local printer environment to the requested environment.
When you use the =pagenofm or =totalpages option of the Label or TextBox class formatOut property for formats of data in text boxes or labels and the report is being stored in the database (that is, the report uses the Printer::setReport method), output is retrieved from a temporary file and stored in the database only after the printer is closed. This is most evident when running in JADE thin client mode, as the printed output must be retrieved from the presentation client and passed to the application server at the end of the report rather than page by page as the report is produced. (For details, see the Label or TextBox class formatOut property in Chapter 2 of the JADE Encyclopaedia of Classes.)
-
All common dialogs execute on the presentation client and return information relative to the presentation client.
-
The Application::msgBox method executes on the presentation client.
-
The Application::userName method returns the name of the user on the presentation client.
-
The Application::computerName method returns the name of the presentation client.
-
By default, all locale information is based on the locale of the presentation client that initiated the application. Only the options defined by the application server for that locale apply.
Set the EnhancedLocaleSupport parameter in the [JadeEnvironment] section of the JADE initialization file to true if you want regional overrides set on the presentation client to be forwarded to the application server so that both use consistent locale settings for the application. The regional overrides set on the presentation client are forwarded to the application server so that both use consistent locale settings for the application.
-
When using the Connection class, all connections are made to the workstation that is running the JADE logic (that is, to the application server).
-
When a connection is lost, the initial connection error is reported. If logic attempts to subsequently communicate with the presentation client, the application is automatically terminated (that is, APPLICATION_TERMINATE_REQUEST is returned for any communication attempt). This results in all outstanding methods being aborted and the application is then signed off. The finalize method of the application is not run.
When reconnection is attempted, the reconnection form displays the application server and application to which reconnection is being attempted.
-
Profiler output is always output to the workstation that is running the JADE logic (that is, to the application server).
-
The getOSPlatform method of the Process class returns the operating platform of the presentation client.
-
Methods of the File and FileFolder classes and the loadFromFile method of the Sound class are processed on the presentation client when the FileNode or MultiMediaType class usePresentationFileSystem property is set to true and the instances are not shared transient instances.
Shared transient instances of the File, FileFolder, and Sound classes are processed on the application server and the setting of this property is ignored. For shared transient instances, the usePresentationFileSystem property defaults to false. (A file or a folder opened on one presentation client cannot be accessed by another client.)
-
The Application::checkPictureFile method always refers to a file on the presentation client.
-
The Application::loadPicture method always refers to a file on the presentation client.
-
The Sound::isPlayable method always executes on the presentation client.
-
The Sound::play method always executes on the presentation client.
-
The Application class playSound and playSoundAsync methods always execute on the presentation client.
-
The Application::alert method always executes on the presentation client.
-
The Application::actualTime method returns the current date and time relative to the presentation client. Use the Application::actualTimeAppServer to return the current date and time relative to the application server.
-
Local variables of type Date, Time, and TimeStamp in JADE logic are initialized with the date and time relative to the presentation client.
-
JADE exception dialogs are always displayed on the presentation client. The displayed information includes the application server and application that resulted in the error.
The default exception dialog sets the Abort button cancel property to true when running as a presentation client using jade.exe so that pressing the Esc key generates an abort action.
-
The start-up form always looks for the .bmp bitmap, .avi video, or .gif (Graphics Interchange Format) files on the presentation client.
-
The Window::getSystemColor method always returns the colors defined for the presentation client.
-
The Window::getSystemMetrics method always returns information as defined for the presentation client.
-
Help file processing is performed on the presentation client.
-
External function definitions have applicationServerExecution and presentationClientExecution options, with presentationClientExecution being the default option. If JADE is not running in thin client mode, the qualifier has no effect and the external call is made on the workstation executing the JADE logic.
If running in thin client mode, the presentationClientExecution option causes the function to be executed on the presentation client. For details, see "Calling External Functions from JADE Thin Clients", in Chapter 1 of the JADE External Interface Developer’s Reference.
-
The Application::getIniFileName method retrieves the initialization file from the presentation client. Use the Application::getIniFileNameAppServer method to obtain the initialization file from the application server.
-
The Application::getProfileString method retrieves the specified initialization file option from the specified file on the presentation client.
Use the Application::getProfileStringAppServer method to obtain the information from the application server.
-
The Application::setProfileString method sets the specified initialization file option in the specified file on the presentation client. Use the Application::setProfileStringAppServer method to set the option in an initialization file on the application server.
-
The Window class drawPictureAt and drawPictureIn methods cache the pictures that are drawn on the presentation client.
-
The Node::createExternalProcess method provides the thinClient parameter (which you can set to true if you want to initiate the process on the presentation client workstation).
-
The Application::getJadeInstallDir method retrieves the installation directory on the presentation client. Use the Application::getJadeInstallDirAppServer method to obtain the installation directory on the application server.
-
JADE reduces memory overheads by always compressing OleObject data when passing it to and from the application server and presentation clients. This is transparent if you use the OleObject class copy, getData, and setData methods to manipulate the binary image.
-
JADE notifications may have a differing execution order when intermixed with window events in thin client mode. This difference arises because the notifications occur on the application server rather than the presentation client. Notifications are usually interlaced with any window events that may occur.
In JADE thin client mode, the notification occurs when the application server thread processing the presentation client operations becomes idle. However, the presentation client may also be idle and send event notifications such as form activations, focus changes, and so on, at the same time. This asynchronous operation may result in a slightly different execution order for these events from that experienced in JADE when it is not running in thin client mode.
-
As inconsistent results could be returned to the application server when running in JADE thin client mode and there are locale (regional) overrides, all overrides on the application server are suppressed. Formatting of locale data is done on the application server, based on the locale of the corresponding presentation client node.
For example, if the locale of your application server is set to English (United Kingdom), which has a default short date format of dd/mm/yyyy, and it has been overridden with a short date format of yyyy-mm-dd, this is returned in the default dd/mm/yyyy format.
-
The value of the Process class signOnTime property is relative to the server executing the application. In thin client mode, the time is relative to the workstation executing the presentation client.