November 2011
JAM/Panther Banner

Included in this JAM/Panther Quarterly Update is information on Panther 5.30 new features (December 2011 release), upgrading applications to Panther on Linux and using the Panther Reports tool to reuse JPL (JYACC Procedural Language) code to reduce the amount of time needed to produce reports.


Panther 5.30 New Features

Release Date: Dec 19th, 2011
Operating System: Panther 5.30 for MS Windows 32-bit, Panther 5.30 for MS Windows 64-bit
Release Date: Jan 23rd, 2012
Operating System: Panther 5.30 Standard for Sun Solaris 10 32-bit
Operating System: Panther 5.30 Standard for RedHat Linux 32-bit
Feature # Summary
Windows, Motif, Character Mode
38089 Request ability to display both text and pixmap on tab card tabs (Motif only)
38087 In the Editor's Open menu, include a list of recently opened items
38058 Jserver seems to be vulnerable to cross site scripting attacks
38146 Trace Log Feature, ability to trace events such as JPL execution, database calls. Event information can be written to a trace file as they occur.
38167 File type is pre-set in the Library Table of Contents window if Save Preferences on Exit is selected
38060 JDK 6 Support
38062 Native 64-bit Windows port (Windows 64-bit)
38069 Tooltips now appears for toolbox (Linux only)
38093 Improved link parameters
38096 Support for all 6 arguments in the installed prototypes functions
38101 Ability to center sm_message_box dialog in MDI frame/screen (Windows only)
38106 Increase Max Size of JPL Arrays
38107 Access to Panther setup variables from smvars files using Property API. Example @app->java_use, @app->smpath etc.
38109 Visual Studio 2010 support (Windows only)
38138 Support for tiff image using PDF Driver (Windows 32-bit only)
38094 Short Escape sequence support for ODBC is now the default
38147 Sybase 15 Support
38088 Support access to Oracle CLOB (character large object) columns
38229 Support for Operating System Authentication in Oracle
Library Functions
38132 sm_mw_DismissIntroPixmap(), allows one to close IntroPixmap window
38183 sm_d_jplpublic and sm_n_jplpublic, load JPL modules from memory
38210 sm_com_attach(), ability to attach to an active COM object's process
38088 dm_ora_clob_update(), update a CLOB (character large object)column after selecting the column
38146 sm_trace() trace log and dump support

Need a patch? Email with your Customer ID, Panther version and platform.


Panther/JAM SCO UNIX to Linux Special Promotion

In recent years, many of our JAM and Panther customers running on SCO UNIX have successfully upgraded their applications to Panther on Linux. We believe there might be other customers that would be interested in migrating to Panther on Linux, but have not done so because they were unsure of what would be required. For a limited time, Prolifics is offering a special incentive to help our customers that would like to migrate their JAM or Panther applications running on SCO to Panther running on Linux.

If you have a current support contract, we'd like to offer you a free license upgrade. We'll exchange your existing JAM or Panther SCO UNIX licenses for Panther for Linux licenses at no cost, and we'll even include a high-level assessment of your application(s) to help you determine the effort required to migrate from SCO to Linux.

Don't have a current support contract? No problem - we can reinstate your support and convert your JAM/Panther SCO license to a Panther Linux based version for FREE, so you can take advantage of this offer.

For more information, please contact


Leveraging Your JPL (JYACC Procedural Language) Code with Panther Reports: A Novel Approach

The Panther/ Web 3 -Tier application that I was assigned to work on, keeps track of the annual rental amounts of a variety of assets that are distributed among several counties and states. This application is about 10 years old and lives on a Solaris10 SPARC server.

My assignment was to perform a nightly update of thousands of records to the Head Office's main database. The updated data is derived from several databases across the country, based on the daily input of users from multiple office locations. A daily log file containing the results of the database update was also a requirement. The updated data would eventually be used to generate invoices.

Problems to Solve
Since the annual rental amount on the remote system could change or the users could enter information that would require the amount to be recalculated, a solution was needed to address the following:

  • Present to the user the most accurate rental calculation possible.
  • Leverage the existing JPL code that performed numerous complex calculations.
  • There were thousands of rental information existing in multiple offices; many of the rental amounts in any office could have changed during the course of the day.
  • There were numerous databases for the different environments being supported, such as development, training and production. These in turn could connect to different databases.
  • The database update required a nightly process that could run in the background due to volume and complexity.
  • The nightly process needed to process data requested from one office, a range of offices or all offices.
  • A daily report needed to be generated which specified if the nightly process was successful or it failed.
The Solution
We researched several tools in the market and came to the conclusion that the Panther Reports would be the best tool for our needs. Here are our reasons:
  • Its strength in performing very complex database queries.
  • Ability to run reports as a cron job.
  • Ability to leverage existing JPL code.
Below are the tasks that were accomplished in order for this new feature to take effect:

1. Created a new Panther 3-Tier service that updated the rental amounts.
  • We managed to leverage 2500 lines of JPL code from the existing "Bill_Processing" service. This service contains very complex calculation code.
  • "In" arguments for this service was a range of offices where the amounts should be updated.
  • The service returned a "success" or "failure" result.
  • This service ended up having only 30 lines of JPL code.
2. Created a Panther report that would:
  • Use a range of offices for which the amounts should be updated.
  • Call the new Panther service, passing to it the range of offices' that were received from arguments passed to the Panther Reports program.
  • Log success or failure messages to a log file.
  • The report ended up having only 100 lines of JPL code.
3. Created a new shell script that would:
  • Receive as an input parameter the environment being worked on (i.e. development, test, production), which was used to determine the environment variables.
  • Invoked the Panther Reports program (rwrun) passing to it the new report and the range of offices that needed to be updated.
4. Created a cron job that would:
  • Include the date and time when the Panther Reports program would be invoked.
To summarize, this project needed to update thousands of records, use the existing code, run on a nightly basis via cron jobs and produce a report and log that summarized whether the process was successful or not. Many alternatives were researched and the Panther Reports was chosen as the tool to use.

With the Panther Reports as our tool of choice, we were able to accomplish our task in about two weeks and reuse over 2500 lines of existing JPL code. In addition, the new Panther Report was fewer than 30 lines of code; the new Panther service was approximately 100 lines of code, with a good portion of it performing field validations.

The added benefit that we received by reusing the JPL code was that the application still had one and only one place where the critical information resided i.e. the rental amount is calculated, and any change to the actual calculation in the future will also be automatically reflected in the nightly process.

As we continue on with our project, we look to the Panther Reports to solve problems that not only include the creation of reports, but also to perform jobs that require any overnight batch processes.

Bruce Himschoot is a Senior Consultant at Prolifics. He has over 40 years of experience in the IT field, specializing in the development and migration of multi-tier applications using various technologies including Panther.
Tel: (212) 267-7722
Toll Free: (800) 458-3313
Fax: (212) 608-6753