TeraScript Server Release Notes
Version 8 installation notes are here
JVM does not load on certain versions of WindowsThe Java installation on some versions of Windows can not find a specific file. Installing this redistributable package from MS should correct the issue:
New FeaturesInternal Web Server
ANSI 99 SQL Query Generator
Application and Include cache stability improvements
Support "NOT IN" SQL criteria
Debug output is now better formatted HTML
File Read Action now supports getting file information
A thread which has exceeded the queryTimeout will now throw a normal error
@INCLUDE has better logging
@PURGECACHE has been changed to reflect new caching behavior and now returns the number documents purged
@REGEX now takes nulltokens attribute, when true it will return empty subexpressions
@REPLACE now supports the FORMAT attribute
@XSLT functionality restored
New Tags@++ silently increment a variable
@-- silently decrement a variable
@TRUE returns "1"
@FALSE returns "0"
@CLASSNAME returns the name of the currently executing class (TCF only)
@LICENSEE returns the name of the license owner
@CACHEDFILES returns an array of the files in the cache
InstallationApache 2.4 module now available
Default configuration will attempt to load Java 7 virtual machine
Default license is a new configuration license, usable to set initial configuration
64-bit builds are now available for all platforms
Configuration VariablesANSI99SQL new ANSI99 compatible SQL query generator (true) or v6 SQL queries (false)
CACHE - all three caches (application, include and webservice) are now set to this size (0 = unlimited)
HTMLENCODESQ - encoding=html encodes the @SQ character (true) or not (false)
Nine new configuration variables to control the internal webserver. This function is intended to be used for configuration only.
1. HTTPDOCUMENTROOT=C:\\Program Files (x86)\\Tronics Software\\TeraScript Server 6\\webroot\\
MAILADMIN this configuration variable has been removed
Bugs FixedabsoultePathPrefix is not applied to paths used for FTP
WebCall Post Agument List values now go through variable replacement
@CHOICELIST will now output CRLF rather than just LF for line breaks
A trailing CRLF character is no longer trimmed from the result
An error is reported if the FTP port is > 65535
The Time stamp in an email is now properly adjusted for daylight savings
Increased FTP buffer size to allow for larger transfers
@TOKENIZE will no longer return a trailing NULL character when using rdelim or cdelim
Custom Column values can now be up to 512 characters long
"true" and "false" will no longer be considered valid values by @ISNUM, @ISINT and @ISDECIMAL
Start retieval row number will now be remembered in nested TCF calls
@PLATFORM will show the proper bitness of the Operating System
Email sessions will no longer try to close a connection when there isn't one
Error -331 has clearer explanation
Dependancies updatedCrypto++ 5.6.2
7.1.3 - August 2016
- XML Documents now preserve encoding when copying to another variable
- @APPEND: now errors if STR is not Text
- Implement FTP directory listing over secure FTP
- Fix bug when assigning unscoped, subscripted variable that partially matched configuration variable name
- Fix passing binary data through TCF return and out parameters
- Fixed memory leak in the email action
- Fixed bug in hex decoder when input was not valid hex characters
- @++: Fixed memory leak
- Removed extra CRLF when building HTTP headers under pooling
- Make new directories with open permissions
- Improved throwing normal errors on request timeout
- Improved request timeout mechanism in ODBC
- Split error -335 into two errors (adding -334)
- Update dependencies: cURL 7.50.1; OpenSSL 1.0.2h (supports TLS 1.2)
7.1.1 - January 2016
- Fixed loading of Custom Tags on newer 64-bit Windows OS
- Fixed JDBC crash when the resultset contained a null value
- Storing the resultset of a Select action into a DOM now works
- @CIPHER: added SHA3 hash algorithms: SHA3_256, SHA3_384, SHA3_512
- Email action: fixed ability to make a new connection when using username and password
- Email action: obfuscated password in debug
- Email action: additional encodings
- File actions: added FTPS support (implicit port 990 and explicit AUTH) (requires TeraScribe 7.1)
- Webcall action: added FORM protocol which POSTs a multi-part form (RFC 2388) (requires TeraScribe 7.1)
- Updated Dependencies: cURL 7.41; OpenSSL 0.9.8zf
- @POSTARGFILENAME: new tag that returns the file name of a POSTed file
- @LOCATE: new attribute START, indicates the byte at which to start scanning
- @SUBSTRING: NUMCHARS attribute is now optional, when not supplied substring returns the rest of the string
- @SQL: Reverted behavior to return last SQL query regardless of method call stack
- @NEXTVAL, @++, @--: improved logging
- Update action: fix crash when no data source set
- Encoding: new encoding type "json" for JSON strings
- TCF method return value: Added new return types and improved existing ones (requires TeraScribe 7.1)
- Fixed small memory leak when accessing a file
- Fixed crash when cookie name is empty
- Fixed a bug with @COL and @COLUMN when not in @ROWS but in a method which is called from within @ROWS
- Fixed a bug when ODBC datatype was CLOB
- OSX: Updated build system for OS X 10.10 (Yosemite)
- OSX: Fix linking for Yosemite
- SQL Generator: Add FileMaker Dialect
- SQL Generator: Corrected several quoting and escaping issues
- Updated Installers
Debian 7.9 (64-bit) Installation NotesInstall the package:
sudo dpkg -i TeraScriptServer711_Debian7964.deb
sudo apt-get install -f
Link to ODBC library (optional):
sudo ln -s x86_64-linux-gnu/libodbc.so.1 libodbc.so
Install JRE (optional):
sudo apt-get install default-jre
In a new file /etc/apache2/mods-enabled/TeraScript.load, place these two lines:
LoadModule TeraScriptModule /usr/local/lib/apache2/modules/mod_terascript_apache22.so
Note: the module name is mod_terascript_apache24.so for Apache 2.4
7.0.7 - October 2014
- @SERVERSTATUS: memory usage calculations contained a bitness bug
- @TOKENIZE: fix bug when using rdelim and cdelim
- @CIPHER: SHA384 and SHA512 should now work on Windows
- Prevent a Select action with no datasource from crashing the server
- Properly encode string values in LIKE clauses when ANSI99SQL is true
- Encode single-quote character to 'apos' rather than '#039' in HTML encoding
- @CALLMETHOD: send method name through variable replacement
- DateTime formatting: throw an invalid format error when unknown tokens are used
- FTP: switch to binary mode before sending SIZE command to test for file presence
- DOM: better error handling
- Fix issue with time-out occurring in first few moments of request
- XML: Properly handle a transcoding error
- Installer: add option to install 32-bit build on 64-bit systems (Windows only)
7.0.5 - June 2014
- @URL: added TIMEOUT attribute which sets the maximum number of seconds to wait for a response
- Web Call action: added timeout attribute which sets the maximum number of seconds to wait for a response
- JDBC will now transcode between ISO-8859-1 and UTF-8 when necessary
- @ELEMENTNAME, @ELEMENTVALUE: now have better error handling
- Corrected format=case:upper and case:lower when dealing with high-bit characters
- @ASSERT*: added several assertion tags
- Updated join algorithm to handle out of order join chains
- @COLUMN: corrected bug with count(distinct table.column) summary columns
- @COLUMN: corrected bug where column matching was case-sensitive
- @BOUNDVALS: Corrected a memory leak, note this tag does not persist across method calls
- @SQL: now persists across method calls
- @MAXROWS: now works as expected when ANSI99SQL=true
- @APPFILE: corrected an issue with the internal HTTP server which affected the configuration utility
- @REPLACE: corrected a memory leak when TYPE=regex
- @REPLACE, @REGEX: added new error code for bad regex expressions
- @PRODUCT: will now display the correct bitness on OS X and Linux
- @CALLMETHOD: method parameters will now pass unquoted encapsulated white space
- OSX installer now requires Java 7 to be present
7.0.3 - March 2014
- Fixed a crash when formatting a date with the year before 1900
- Corrected Daylight Savings Time calculation (OS X and Linux only)
- The user reference cookie will now be set with the HttpOnly flag
- Removed several cases where CRLFs were being stripped inappropriately
- The COUNT(DISTINCT) column name will now work with @COLUMN correctly
- Timed jobs (cron) to non-https URLs will now fire correctly
- Client will write the correct default port (18170) when it wites to clients.ini
- @SETCOOKIES will now output correct Set-Cookie header syntax
- Fixed trivial bugs in the Close Transaction action
- Corrected @DOM when XML declaration isn't present (fallback to ISO-8859-1 for backwards compatibility)
- Corrected @DOMINSERT to document root (xpath=/)
- Corrected various DOM issues
- JavaBean handler wasn't loading (OS X only)
- DNS resolution wasn't working properly
- Variable store dump was not able to be read back in properly
- Set CURLOPT_NOSIGNAL when cUrl is >= 7.10 and < 7.32 (Linux only)
- WebCall action Post Argument List names will now go through variable replacement
- @ARGNAMES now has a third column which provides the number of values associated with the argument
- Invalid DTDs will no longer cause a crash when evaluating an xpath
- Variable names can now be up to 62 characters long
- new tag @APPEND;
- @PRODUCT will report the bitness of the executable (Windows only; other platforms will always report 32-bit)
- Updated installer software to better work with Java 7 (Windows and OS X only)
6.2.7 - May 2013
- Fixed bug with STARTUPURL when using Apache.
- Fixed bug when dealing with long HTTP Headers.
- Increased amount of data logged to debug.
- Released on the Windows Platform only.
6.2.5 - March 2013
- Fixed bug with Web Call action when used after a database action.
- Fixed Memory Leak related to using TCFs.
- Released on the Windows Platform only.
6.2.3 - January 2013
- Fixed several bugs in the OCI implementation.
- Improved the performance of @TOKENIZE.
- Released on the Windows Platform only.
6.2.1 - August 2012
- Corrected @RANDOM would not operate when the LOW and HIGH attributes where set to the same value.
- Logging Level 1 should now work as expected.
- Added @STOP. This tag ends execution of the current request.
- Corrected @SLEEP not executing properly within loops. Also, the value attribute is now required.
- Added @TOUTC as an alias of @TOGMT.
- Updated the datetime synonym "http" to meet the currect RFC 1123 format.
- Added new datetime synonyms: "email", "rfc850", "sql-date", "sql-time", and "sql-ts"
- Usage of the scope "local", which is deprecated, will now log a warning.
- Implemented a dynamic buffer on ODBC and JDBC data sources. This means that any amount of data can be retrieved from the database without limit. This also removes the purpose for the ITEMBUFFERSIZE configuration variable.
- Corrected a bug with @TOKENIZE where an empty array element was not created when there was a trailing null token and the nulltokens attribute was set to true.
- Added server key (leading 12 digits) to the user reference portion of the output of @USERREFERENCEARGUMENT so that this tag will work with load balanced servers. Note that the value of the server key is derived from the configuration variables LISTENERADDRESS and LISTENERPORT, therefore these variables must be set for this function to work.
- Updated OCI implementation to modern (11g) standards. We expect this implementation to work with any version of Oracle 8 and newer, but recommend customers using OCI to install the latest version of Oracle and the InstantClient drivers that they can, including all patches. This was a complete rewrite so please bring any reports of incorrect behavior to our attention.
- @TOTALROWS will now produce a value outside of a Select Action Results pane. It will evaluate to the totalrows value of the last executed Select Action, similar to @NUMAFFECTED
- The underlying engine for executing @URL and Web Call actions has been replaced with cURL. This should provide a robust engine for HTTP requests and will allow us to bring out new features in the future. This was done to specifically address an issue where HTTP/1.1 was used for http:// requests, whereas HTTP/1.0 was used for https:// requests, leading to mismatched behavior.
- Added support for TripleDES with three part (24 byte) keys. This is accessible with the @CIPHER tag using the TYPE: TripleDES3. The key is required to be 24 bytes (48 bytes if hex) long.
- Corrected an issue with @ISTIME where the time format set in the configuration variable TIMEFORMAT would not be matched.
- Corrected a bug in the IIS plugin where it would respond a blank screen, instead of a proper error, when the TeraScript Server was unreachable.
6.1.3 - October 2011
- The ISAPI plug-in that shipped with 6.1.1 was not properly handing the server key value passed in the User Reference cookie and was therefore not passing requests to the proper server in a load balanced pool. This issue has been corrected.
- Updated the Web Call Action to accept and pass a text block value as POST data
- Corrected several issues with the installer
6.1.1 - August 2011
- Witango Application Server renamed TeraScript Server
- Updated compiler (Windows only)
- Updated Xerces XML library to version 2.8
- Replaced XALAN library with XQilla
- Removed @XSLT tag
- Corrected an issue with @URL where it would not properly process a chunked response
- Corrected an issue with @URL where it was incorrectly stripping trailing whitespace
- Added support for the Content-Type HTTP header in the Web Call Action
- Added support for automatic SQL Encoding in the Custom Query Action
- Updated the random number generator
- @RANDOM will now produce a better (more statistically random) result
- Added new tag @UUID that produces a Universally Unique IDentifier per RFC 4122 version 4
- Corrected an issue where CPU resources would be wasted while waiting for ODBC queries to return
- Added new tag @PURGEDEBUG which purges accumulated debug up to that point
- Corrected an issue with encoding and array-to-text conversions, it now encodes individual cells of the array
- Added RSEP and CSEP to array-to-text conversions to place syntax between rows (RSEP) and columns (CSEP)
- Removed SENDFULLHEADER= parameter from clients.ini, the full request header is now always sent to the server
- Corrected an issue in the IMAP implementation when requesting various header information about a message
- Fixed crash when doing date functions with certain separators (Mac OS X only)
- Fixed cron initialization issue (Mac OS X only)
- Corrected an issue that delayed shutdown of the server (Mac OS X only)
6.0.7 - February 2011
Global Pool for connection-limited or thread-limited Data Sources
Added a Global Pool to the Data Source functionality to support Data Sources which can only support a limited number of connections or are single-threaded. See the section on DSConfigFile in the Programmerís Guide for a full explanation of this feature.
JDBC Open Cursor
When using a JDBC Data Source a cursor was left open after each request. This was a bug introduced in 6.0.5. All cursors will now be closed properly.
<@DOCS> could crash when evaluating certain actions, this has been corrected. <@DOCS> is deprecated in Witango 6.
<@PAD> Meta Tag
<@PAD> would crash if the CHAR attribute was not supplied, this was contradictory to the documentation. <@PAD> now works as expected, requiring only the STR and NUMCHARS attributes and the CHAR attribute defaults to a space.
The Witango.log file now has timestamps which show the millisecond. This is helpful for debugging concurrency issues.
Exception Logging (WIN)
When the Witango Service encounters an exception that it canít recover from, it now logs a significant amount of information into the witango.log file. This information is helpful to Tronics Software when isolating and correcting these crash issues. (Windows only)
<@SERVERSTATUS> Meta Tag (OS X)
<@SERVERSTATUS> now produces the correct value for the ProcessSize category. The HeapSize category will now produce a zero (0) and is now deprecated. (Mac OS X only)
Apache Module bitness (OS X)
The Apache module is now built as a Universal Binary for both Intel 32-bit and Intel 64-bit. Note that the name of the module does not reflect this change (Mac OS X only)
Install script for Mac OS X Server (OS X)
An installation script is now available on Mac OS X Server to automatically configure your Witango Application Server as a background service and for use with Apache Web Server. After you run the installer application, please double-click the InstallWitangoOSXServer file found in /Applications/Witango Application Server 6/
6.0.5 - January 2011
Install script for Mac OS X
An installation script is available on Mac OS X to automatically configure your Witango Application Server as a background service and for use with Apache Web Server. After you run the installer application, please double-click the InstallWitango file found in /Applications/Witango Application Server 6/
JDBC connection pooling
A bug was isolated and corrected that prevented JDBC from properly reusing connections.
Crypto++ to 5.6.1 (-MD5MAC)
The cryptographic library has been updated to the latest version. This has removed a feature: the MD5MAC cipher function. Updating this library should enable Rijndael (AES128) to use hardware routines found in Intel CPUs that support AES-NI.
APR to 2.2.17
Apache tools (APR) used to build the Apache modules have been updated to the latest version.
The ICU (Unicode) library has been updated to version 4.4.
64-bit Apache 2.2 module (OS X)
The Apache module on OS X has been built for the 64-bit Apache that ships with Mac OS X 10.6.
<@CHOICELIST> updated and corrected
The output of <@CHOICELIST> has been updated to be XHTML 1.0 STRICT compliant.
The output of <@CHOICELIST type=radio> when both the OPTIONS= and VALUES= attributes are used has been corrected. In previous versions of Witango Application Server, the VALUES were visible on the webpage, while the OPTIONS were passed back as post arguments. This was reversed from how TYPE=select worked, and has been corrected.