JADE has now implemented a new RootSchema application called JadeSchemaLoader, which is a non‑GUI application that can be run:
As a presentation (thin) client
The loader parameters, or arguments, are specified between the startAppParameters and the optional endAppParameters arguments. (When the startAppParameters argument is encountered, all subsequent parameters up to the optional endAppParameters argument or the end of the command line are collected into a HugeStringArray and passed to the initialize method of the application.)
jade.exe schema=RootSchema app=JadeSchemaLoader ini=JADE‑initialization‑file‑path AppServer=remote‑TCP/IP‑address‑or‑name‑of‑application‑server AppServerPort=TCP/IP‑port‑number‑of‑application‑server startAppParameters load‑command‑line‑arguments endAppParameters
The following is an example of the command line for loading a Test schema from a presentation client.
jade.exe schema=RootSchema app=JadeSchemaLoader path=d:\jade\system ini=d:\jade\myjade.ini AppServer=MyAppServer AppServerPort=1234 startAppParameters schemaFile=d:\jade\scm\test.scm ddbFile=d:\jade\scm\test.ddb dontSaveSources=true deletePropertiesIfAbsent=true loadStyle=onlyStructuralVersioning replayableReorg=true compileUnchangedMethods=true endAppParameters
From jade.exe in single user or multiuser mode as a standard (fat) client
The loader parameters are specified after the startAppParameters argument.
jade.exe schema=RootSchema app=JadeSchemaLoader ini=JADE‑initialization‑file‑path path=database‑path server=multiUser|singleUser startAppParameters load‑command‑line‑arguments
The following is an example of the command line for loading a Test schema from a standard (fat) client.
jade.exe schema=RootSchema app=JadeSchemaLoader path=d:\jade\system ini=d:\jade\myjade.ini startAppParameters schemaFile=d:\jade\scm\test.scm ddbFile=d:\jade\scm\test.ddb dontSaveSources=true deletePropertiesIfAbsent=true loadStyle=onlyStructuralVersioning replayableReorg=true compileUnchangedMethods=true
From jadclient.exe in single user or multiuser mode from a non‑GUI client
The loader parameters are specified after the startAppParameters argument.
jadclient.exe schema=RootSchema app=JadeSchemaLoader ini=JADE‑initialization‑file‑path path=database‑path server=multiUser|singleUser startAppParameters load‑command‑line‑arguments
The following is an example of the command line for loading a Test schema from a non‑GUI client.
jadclient.exe schema=RootSchema app=JadeSchemaLoader path=d:\jade\system ini=d:\jade\myjade.ini startAppParameters schemaFile=d:\jade\scm\test.scm ddbFile=d:\jade\scm\test.ddb dontSaveSources=true deletePropertiesIfAbsent=true loadStyle=onlyStructuralVersioning replayableReorg=true compileUnchangedMethods=true
From your application code, by calling the Application class startApplicationWithParameter method, passing the command line arguments in a shared transient HugeStringArray; that is:
app.startApplicationWithParameter("RootSchema", "JadeSchemaLoader", parameters);
The result of the load action is returned as the last parameter in the array. A zero (0) value indicates no error.
“result=error‑code”
The following is an example of the JADE code for loading the Test schema.
vars parameters : HugeStringArray; begin beginTransientTransaction; create parameters sharedTransient; parameters.add("schemaFile=d:\jade\scm\test.scm"); parameters.add("ddbFile=d:\jade\scm\test.ddb"); parameters.add("dontSaveSources=true"); parameters.add("deletePropertiesIfAbsent=true"); parameters.add("loadStyle=onlyStructuralVersioning"); parameters.add("replayableReorg=true"); parameters.add("compileUnchangedMethods=true"); commitTransientTransaction; app.startApplicationWithParameter(rootSchema.name, "JadeSchemaLoader", parameters); end;
All command line arguments supported by jadloadb are available, including all schema load options, loading JADE Report Writer files, initiating reorganizations, and executing methods. Each phase of the load operation and error messages are output to the JadeSchemaLoader.log file. A load failure is indicated by a non‑zero exit code from the process.
This feature enables you to deploy schema changes directly to an application server running in single user mode without having to stop any applications that are running. An online database reorganization can be performed and applications need to be shut down only for the transition.
For details about JadeSchemaLoader application security, see "JadeSchemaLoader Application Security Considerations", in the following subsection.