Tornado Server

Tornado Server 4.6.5

100% Java application server and web development framework. Includes installer and embedded relational database. Install and setup in less than 2 minutes! Customers who download this product often download the Vortex IDE for developing Tornado applications




  • Updated many internal parts to support the Oracle database (10g). Also updated admin, webdesign and setup apps to support the same.


  • New console command "clear roles *" to remove all roles from all active sessions. This is useful for when an application's security changes and all sessions need to be clear to pick up the new security settings


  • Updated HTMLView to avoid a NPE when a style sheet did not exist in he design collection and one could not be made from the XML buffer.


  • Updated HTMLVIew code. When a URL did not include a '?' (eg "http://server/app.pma/AccountView") parameters were appended to the URL. Added code to check for a '?' and add one first if missing. This ensures valid urls.


  • Moved the server cache from the http server task into the pmaSystem object. This means the server cache is now accessible from all server addin tasks, not just the http task. Also made the method calls the same as for adding session objects. The cache is now accessed through the SystemContext object (pSystem) eg: pSystem.getGlobalObject("SomeKey"); pSystem.addGlobalObject("SomeKey", obj); pSystem.removeGlobalObject("SomeKey");


  • Now allows composite design elements. For example, if a web app has 7 css resources these can now be pulled in at runtime to a single resource. Simply mark the resource as a composite resource and enter a list of design element names where the css/javascript would normally go. Any resource prefixed with a '/' will be loaded from the filesystem. Requires a new webdesign app to set the design element's CompositeElement=1 parameter


  • Added new methods to TableManager to allow the easier setting of null column values. eg TableManager.setFieldDateNull("SomeField")


  • Added code to the SOAPClient executeInternal() method so that the soap reply package is available for debugging


  • Modified the public Connection getDataConnection(String sDriverClass, String sDBURL, String sDBURLOptions, String sDBName, String sDBUserName, String sDBPassword) method so that when server only connections are made (eg sDBName is "") the previous pooler for that item is removed. This helps the webdesign app correctly create a new database if on an earlier attempt the connections credentials were incorrect.


  • Created new method pSystem.removeDatabasePool(sPoolAlias); This now allows connections to be forcibly removed from the pool. This is important as sometimes if a connection was set up with an incorrect username/password the connection remained in the pool with invalid credentials.


  • Simplified the constructor to create a new tablemanager object by removing the need to pass a SystemContext object. This can be derived from the SessionContext. public TableManager(HTTPSessionContext pSession, String sConnectionName, String sTableName)


  • By default files served off the filesystem were given a future expiry date of half the time between now and when the file was last modified. Added a new puakma.config variable: HTTPMaxExpirySeconds=3600 The default value is 3600 (1 hour).


  • HTMLControl ctrl = ActionDocument.getHTMLControl("TemplateStatus"); ctrl.setType(HTMLControl.ITEM_TYPE_RADIO); ctrl.setItemAttribute("cols", "9"); In the above scenario, the cols attribute would have no effect on the number of columns displayed in the control.


  • Updated pdx importing routine. Was causing sporadic issues with the import of dates which would be out by a random number of seconds when the time was midnight exactly.


  • The agenda task runs actions as "CN=SYSTEM". Added code to the pmaSystem class to avoid sending a request to the authentication chain to determine the group memberships of this account. Previously some authenticators (LDAP) would show an error when a scheduled action was run.


  • Added new puakma.config setting LogFileMaxSizeKB=999999 This new setting will control the log file size. Set this to a positive integer value and the log file will not be allowed to grow past this size. When the log exceeds this limit, the file will be renamed to filename.log.1 and a new log file will be created as the current log. This means that if you specify a 1KB limit you will have 2KB of logs in two files, with the primary (active) log not exceeding 1024 bytes.


  • Updated Util.adjustDate() to reduce spurious object creation.


  • Added boolean and IF(cond, if_true, if_false) method to FormulaCalculator.


  • Add protection code for NullPointers in AGENDA if the Options field on the scheduled action is null.


  • Added two new methods on HTTPSessionContext: Date dt = getSSOExpiryDate() and getSSOExpiryDate(dtDate) This controls how long the SSO token lives for. Previously the token was cleared when the browser was closed. The oprevious functionality will remain by default, unless an application specifically calls this method.


  • Updated MailTransferThread code to add a socket timeout before sending a HELO. This was causing threads to hang and clog up the mail queue when connecting to non-responsive mail servers


  • Added two new config variables for controlling default locale and timezone of new user sessions. SessionDefaultLocale=en_AU SessionDefaultTimeZone=Australia/Sydney The default locale should have the language and country seperated with an underscore. Alternatively, only a language can be specified eg "en". This new functionality allows for a server based in one timezone with all users based in another.


  • Added new method ActionDocument.getAllHTMLControls("FieldName"); This allows multiple controls on the page to have the same name and now all can be accessed programmatically instead of only the first one.