Home |  | Products |  | Consulting |  | Industries |  | News |  | About IBM

| Search
|  | Software |
|  | Application Development |
| VisualAge Smalltalk |
| How to buy |
| Support |
| Download |
| More information |
| News |
| Case studies |
| Library |
| Services |
| Events |
| Education |
| Related links: |
|  | VisualAge Developer Domain |
|  | IBM Worldwide |
| VisualAge Smalltalk > Downloads > IBM VisualAge Smalltalk Readme Table of Contents Welcome to VisualAge Version 5.5.1 Important information about Version 5.5.1 Late-breaking news, technical tips, and product updates VisualAge Smalltalk Migration Guide Product Changes Additional sources of information Version 5.5.1 files and installation Version 5.5.1 Files Installation instructions for development systems Product Enhancements EMSRV Support RMI support for JDK 1.3 (ULC is still on JDK 1.2) Documentation changes Component fixes APARs Problems found by other sources Components and Features AppBuilder Base Database Documentation EMSRV Help Install Object Extender OLE Packaging Server Translations ULC Uninstall Web Connection XML Disclaimer Welcome to VisualAge Version 5.5.1 VisualAge Smalltalk Version 5.5.1 includes all the function of VisualAge Smalltalk Version 5.5 plus several new features and product fixes. This file contains information about the VisualAge Smalltalk Version 5.5.1 products. Important information about Version 5.5.1 For VisualAge Smalltalk Version 5.5.1, you do NOT need to install VisualAge Smalltalk Version 5.5 before you install Version 5.5.1. Version 5.5.1 determines if Version 5.5 is installed on your machine and does one of the following: If Version 5.5 was previously installed, the Version 5.5.1 installation upgrades the software to Version 5.5.1. The Versoin 5.5.1 code is merged into the Version 5.5 manager. If Version 5.5. was not previously installed, the Version 5.5.1 installation performs a full software install of Version 5.5.1. Late-breaking news, technical tips, and product updates Please refer to the VisualAge Smalltalk web page for technical information, including tips, and product updates made after this product release. The web page also includes information about Education, Services, and Support as well as hints and tips for using VisualAge Smalltalk. You can also link to the ftp site for product updates from the Support section. You can also get to the VisualAge Smalltalk web pages by going to the IBM web page and searching for "VisualAge Smalltalk" in document titles. You can download the latest product updates from the VisualAge Smalltalk service ftp site. VisualAge Smalltalk Migration Guide If you have a version prior to VisualAge Smalltalk Version 5.5 installed, please refer to the Migration Guide for important information before using VisualAge Smalltalk Version 5.5.1. The Migration Guide is installed with the VisualAge Smalltalk Client and is also available on the VisualAge Smalltalk web page . Product Changes VisualAge Smalltalk Enterprise has undergone some changes. Your feedback regarding these plans and directions is very important to us. Send comments to us at our `vaweb@us.ibm.com` email address. VisualAge Smalltalk Server VisualAge Smalltalk Server, the runtime environment for deploying server applications, is now included with VisualAge Smalltalk Server Workbench at no additional charge. There is no longer a runtime fee required to deploy VisualAge Smalltalk server applications on NT, Windows 2000, OS/2, Sun Solaris, or AIX. RPC The RPC Communications feature has been identified as an obsolete feature. It is still shipped and supported in this version of VisualAge Smalltalk, but it will be removed in the next version. IMSSimulationSystem The IMSSimulationSystem feature has been identified as an obsolete feature. It is still shipped and supported in this version of VisualAge Smalltalk, but it will be removed in the next version. Additional sources of information VisualAge Resource Catalog The following applies to VisualAge Smalltalk Version 5.0 and later. The VisualAge Partner Catalog describes VisualAge product offerings available from IBM and IBM Business Partners participating in the IBM VisualAge Object Connection Partners in Development program. The VisualAge Partner Catalog includes links to Object Connection partner companies home pages, so you can find out the details of their VisualAge-enabled products. Bookmark this valuable web site and visit often to see the latest offerings from Object Connection members. The VisualAge Smalltalk Partner Catalog can be linked to at http://www.software.ibm.com/ad/visage/rc/ . You can also access it from the Help menu of the VisualAge Smalltalk System Transcript or Organizer. Version 5.5.1 files and installation VisualAge Smalltalk Version 5.5.1 is a refresh to fix problems reported against Version 5.5 of VisualAge Smalltalk. Version 5.5.1 includes fixes to customer reported APARs as well as problems reported by other sources. It also provides support for EMSRV 7.0 and JDK 1.3. Version 5.5.1 is packaged according to client, manager, or server runtime installation. The files are further packaged according to the target operating system. You can download the files from the VisualAge Smalltalk service ftp site. Version 5.5.1 Files
Operating System | Component | Download file | Download Size (MB) | Uncompressed Size (MB)
Windows |  |  |  |
| Client | va551_cw.zip | 61 | 192
| Manager | va551_mw.zip | 60 | 239
| Server Runtime | va551_sw.zip | 3 | 11
OS/2* |  |  |  |
| Client | va551_co.zip | 58 | 190
| Manager | va551_mo.zip | 61 | 239
| Server Runtime | va551_so.zip | 3 | 8
AIX |  |  |  |
| Client | va551_ca.zip | 63 | 115
| Manager | va551_ma.zip | 60 | 242
| Server Runtime | va551_sa.taz | 5 | 12
Sun |  |  |  |
| Client | va551_cs.zip | 43 | 165
| Manager | va551_ms.zip | 61 | 240
| Server Runtime | va551_ss.taz | 5 | 12
HP |  |  |  |
| Client | va551_ch.zip | 62 | 181
| Manager | va551_mh.zip | 62 | 241
Linux | Emsrv | va551_ml.taz | .233 | .5
NetWare | Emsrv | va551_mn.zip | .04 | .1
Note: | *On OS/2, the Version 5.5.1 files must be unzipped to an HPFS drive because the Version 5.5.1 files contain long file names. If the files are unzipped to a FAT drive, the unzip program will not give you any error messages. However, when you run the installation program it will return errors.
Installation instructions for development systems There are two pieces to the installation of the VisualAge Smalltalk Version 5.5.1 for development environments: the library manager and the client. You must install both the Version 5.5.1 library manager and the client. You should install the library manager first.
Note: | If you have previously installed VisualAge Smalltalk Enterprise Version 5.5, the directories `icsrun`, `icspkg`, and `image` will not be overwritten. However, the contents of other directories may be overwritten. You should backup any files you may need from the other VisualAge Smalltalk directories.
You can install the Version 5.5.1 manager and client in a team development environment or as a standalone installation. Team development environment To install VisualAge Smalltalk in a team development environment, a system administrator should install the library manager on a network attached server computer. The individual developers can then install the client code locally on their machine and connect to the library manager using EMSRV. Standalone If you are working independently of other developers you can install both the library manager and the client code on one machine. It is recommended that you install the library manager before installing the client. If you uninstall the products, uninstall the client first and then the library manager. To obtain Version 5.5.1, follow these steps: Download the appropriate files from the VisualAge Smalltalk service ftp site to a temporary directory.
Note: | On OS/2, the Version 5.5.1 files must be unzipped to an HPFS drive because the Version 5.5.1 files contain long file names. If the files are unzipped to a FAT driver, the unzip program will not give you any error messages. However, when you run the installation program it will return errors.
For Server Runtime installation, see the platform instructions under Installing VisualAge Smalltalk. Unzip the Version 5.5.1 files using whatever option your unzip program provides to restore the subdirectory structure of the Version 5.5.1 file. Be sure that your unzip program restores the files with the same case that they were zipped with in the Version 5.5.1 file, or use whatever option your unzip program provides to restore the case of the zipped Version 5.5.1 files. For example: Winzip Check the Use File folders option to restore the file directory structure of the zipped file. Pkunzip Use the `-d` option to restore the file directory structure of the zipped file.
    pkunzip -d va551_cw.zip
Info-ZIP -- Info-ZIP is available for all VisualAge Smalltalk platforms. See Info-ZIP FTP site . Info-ZIP restores the directory structure by default.
    unzip va551_cw.zip
Untar
    tar -xvf va551_ml.tar
Before installing Version 5.5.1, follow these steps: If EMSRV is running from the directory to be updated, stop EMSRV prior to installing Version 5.5.1. Use the File I/O option to update the library manager executables. Stop any running VisualAge Smalltalk images. Installing VisualAge Smalltalk For installation information, see `cd_m\doc\instgd.htm` or `cd_c\doc\instgd.htm` in the temporary directory where you extracted the manager or client file. To install VisualAge Smalltalk, follow the instructions for your specific platform. Windows
Note: | On Windows NT or Windows 2000, logon as a user that is in the Administrator group.
To install on Windows, from the temporary directory where you downloaded and extracted the files from the Version 5.5.1 zipped file, do the following: Change your current working directory to the manager or client subdirectory of the temporary directory: cd_m cd_c Change directories:
    cd install_w
Run `setup` To install Server Runtime, do the following: Create a directory into which you will install VisualAge Smalltalk on your machine. For example:
    d:
    mkdir d:\vast55
    mkdir d:\vast55\server
Change directories to the directory where you will install VisualAge Smalltalk. For example:
    cd d:\vast55\server
Unzip the server runtime files as follows:
    unzip va551_sw.zip
OS/2 To install on OS/2, from the temporary directory where you downloaded and extracted the files from the Version 5.5.1 zipped file, do the following: Change your current working directory to the manager or client subdirectory of the temporary directory: cd_m cd_c Change directories:
    cd install_o
Run `install` To install Server Runtime, do the following: Create a directory into which you will install VisualAge Smalltalk on your machine. For example:
    d:
    mkdir d:\vast55
    mkdir d:\vast55\server
Change directories to the directory where you will install VisualAge Smalltalk. For example:
    cd d:\vast55\server
Unzip the server runtime files as follows:
    unzip va551_so.zip
Unix
Note: | On the Sun platform, create the `\opt\IBMvast\5.5` directory before starting to install.
To install on Unix, from the temporary directory where you downloaded and extracted the files from the Version 5.5.1 zipped file, do the following: Change your current working directory to the manager or client subdirectory of the temporary directory: cd_m cd_c Change your current working directory to a platform-appropriate subdirectory: install_a for AIX install_h for HP-UX install_s for Sun Solaris From the shell command line, run `xterm -sb -e ./setup&`
Note: | On some Unix platforms, problems have been reported on the Select Features screen. After selecting a new feature to install, sometimes the Next button is not enabled due to an error in synchronization of the features. To correct this problem, select the Back button and then on the License Agreement screen, select the Accept button. The Next button on the Select Features screen should then be enabled.
Note: | The installer writes installation status messages to its `stdout` stream. These messages will appear within the dtterm or xterm where the installer was started.
For Server Runtime on UNIX, the files are tarred to absoluate paths. You must decompress and untar them. To install Server Runtime, do the following: AIX Decompress and untar as follows:
    mv va551_sa.taz va551_sa.tar.Z;zcat va551_sa.tar.Z|tar -xvf -
Sun Decompress and untar as follows:
    mv va551_ss.taz va551_ss.tar.Z;zcat va551_ss.tar.Z|tar -xvf -
Linux To install a manager on Linux: You should have already downloaded the Linux manager code `va551_lm.taz` to a temporary directory. Move the Linux manager code into the `/opt` subdirectory tree:
    mv va551_lm.taz va551_lm.tar.Z;zcat va551_lm.tar.Z|tar -xvf  -
Perform a VisualAge Smalltalk Manager install on one of the supported platforms (Windows, OS/2, AIX, HP-UX, Solaris) to populate the manager file. FTP the `<varoot>\manager\mgr55.dat` file to the `/opt/IBMvast/5.5/manager` directory on your Linux machine. NetWare To install a manager on NetWare: You should have already installed the executables by downloading the NetWare manager code, `va551_nm.zip`, and unzipping it into a temporary directory. Copy `emsrv.nlm` into the `SYS:\SYSTEM` directory on your NetWare file server. Install VisualAge Smalltalk Manager on one of the supported platforms (Windows, OS/2, AIX, HP-UX, Solaris) in order to populate the VisualAge Smalltalk Manager file. Copy the `<varoot>\manager\mgr55.dat` file to its desired location on your NetWare file server. For further instructions on installing and getting started with VisualAge Smalltalk, please see the VisualAge Smalltalk Installation Guide and the VisualAge Smalltalk Getting Started Guide installed with the Information Center for VisualAge Smalltalk. If you would prefer the documentation in PDF format, please see our VisualAge Smalltalk web page After installing VisualAge Smalltalk Version 5.5.1 The Version 5.5.1 installation automatically merges the Version 5.5.1 code into the Version 5.5. manager. However, you must move any work-in-progress from the existing Version 5.5. manager to the new Version 5.5.1 manager. If you had previously installed Version 5.5, before you use VisualAge Smalltalk Version 5.5.1, do the following: Version and release all open editions of classes and subapplications, and version the applications. Save to files any text from workspaces or from the Transcript window that you want to keep. After you complete the install, you can then load your versioned work from the new Version 5.5.1 manager into the VisualAge Smalltalk Version 5.5.1 client. Unlocking products
Note: | Any features that were unlocked in the VisualAge Smalltalk Enterprise Version 5.5 image must be unlocked in the VisualAge Smalltalk Enterprise Version 5.5.1 image. Ensure that the unlock tool is pointing to the new VisualAge Smalltalk Enterprise Version 5.5.1 `ini` file in the `image551` directory.
After you install, you must unlock VisualAge Smalltalk Enterprise, and any features you installed. All products are initially installed as evaluation products. When you purchase a product, you receive a key which you use to unlock the evaluation product. If you load an evaluation feature into your image, even if you unlocked VisualAge Smalltalk Enterprise, your image will become an evaluation image. When you unload the evaluation feature, your image will still be an evaluation image. For this reason, be sure to unlock all features you have purchased before you load them into your image. If you want to try a feature that you have not purchased, be sure to make a backup copy of your image file (abt.icx) before you load the evaluation feature. Then, try the feature. When you are through, you can restore the image you backed up before you loaded the evaluation feature. Product Enhancements EMSRV Support The major enhancements in EMSRV 7.0 (VisualAge Smalltalk Enterprise 5.5.1) since EMSRV 6.24 (VisualAge Smalltalk Enterprise 5.5) are: Support for FAT32 volumes on Windows 2000 Support for PAM authentication on Linux and Solaris platforms Support for DCE authentication on AIX platforms Support for NetWare 5.1 Support for Red Hat Linux 6.1 and 6.2 Support for AIX 4.3.3 Support for authentication using Active Directory Services on Windows 2000 Support for cross-domain authentication on Windows NT RMI support for JDK 1.3 (ULC is still on JDK 1.2) The RMI in Server Smalltalk will run under JDK 1.3, using the same techniques that were required for JDK 1.2. However, ULC is still at the JDK 1.2 level. Documentation changes Documentation changes for VisualAge Smalltalk Version 5.5 include: Hardcopy documentation is no longer provided. All manuals are online documentation in HTML format, which you can view with a Web browser such as Netscape Navigator or Microsoft Internet Explorer. All manuals are also provided in PDF format at the VisualAge Smalltalk web page . The VisualAge Smalltalk Search page now allows you to select from different generic areas from which to narrow your search. For example, you can choose the Database Guide to search both the Database Guide and the Database Help. There are also pushbuttons to allow you to select the genre of books you would like to search: Select VisualAge items Select Smalltalk items Select Server items The following documents are new: VisualAge Smalltalk Server Smalltalk Guide, which includes information formerly in the VisualAge Smalltalk Server Guide. VisualAge Smalltalk Advanced Database Guide, which includes information about the Advanced Database feature for VisualAge Smalltalk . The following documents have had significant format changes: All part reference information was put into the VisualAge Parts Reference. Server information for features was moved from the VisualAge Smalltalk Server Guide to the specific feature guide. Help information for specific features was moved into the HTML manual for that feature. The following documents have been updated for Version 5.5.1 VisualAge Smalltalk Installation Guide VisualAge Smalltalk Parts Reference VisualAge Smalltalk Server Guide VisualAge Smalltalk Server Smalltalk Guide VisualAge Smalltalk User's Guide VisualAge Smalltalk Web Connection User's Guide VisualAge Smalltalk Ultra Light Client Guide and Reference IBM Smalltalk Programmer's Reference IBM Smalltalk User's Guide Component fixes This section documents fixes to problems reported to IBM by customers (APARs) and problems reported through other sources. They are listed by APAR number. APARs Fixes are included for the following problems found by customers. The problems are listed by APAR number.
APAR | IBM Defect | Component | Description
PQ12729 | 9433 | Base | Symbol class should not implement this method
PQ14820 | 9868 | Appbldr | Notebook page not enabling correctly
PQ18708 | 10593 | Appbldr | Walkback when opening the framing spec dialog for a widget
PQ22210 | 12060 | Base | Emsrv must be started as root on Solaris
PQ22569 | 12077 | Base | Emadmin copy doesn't work if user is saving a part
PQ26855 | 12759 | Base | Image hangs when displaying the float NaN
PQ31529 | 13283 | Appbldr | Can remove group member from app even if user is manager of app
PQ33662 | 13316 | Base | OLE object is not being cleaned up after several (1000) iterations of instantiating the OLE object
PQ31489 | 13359 | Base | Triggerselectioncallback event being fired twice
PQ35821 | 13430 | Appbldr | Performance problem in comp editor when deleting a part.
PQ37355 | 13471 | Base | Using acrobats control from smalltalk inside the "find"
PQ37689 | 13525 | Base | Resizing a container horizontally may cause button motion event
PQ38906 | 13726 | Base | Cutting and pasting in an MLE results in fewer characters
PQ40781 | 13977 | SST | Smalltalk RMI connection goes inoperable with socket in close_wait state.
PQ43647 | 14018 | SST | Block>>#whenTimeoutInMilliseconds:do: causes ExTimeout.
Problems found by other sources Fixes are included for the following problems found by IBM. The problems are listed by defect number.
IBM Defect | Component | Description
12779 | Comm | Cpic connected event fires twice on MVS.
13232 | Nls | WB: UndefinedObject DNU packager in NLS extension to packager.
13632 | Web | AbtWebSamplesSelectionColumnPage sample is not working.
13656 | Web Connection | External sample files not being installed on OS/2.
13793 | Base | Update web links from Help.
13823 | Xml | XML - Unload problems.
13827 | Base | F1 help error on load/unload features dialog.
13852 | Comm | Code page field improperly initialized for comm parts on UNIX.
13957 | Xml | XML - AbtDOMConstants contain nil values.
13200 | Base | Missing text for packager messages 688 and 689.
13961 | SST | RMI Wizard: Need to be stricter in checking ST method names.
13963 | Xml | XML - SAX namespace #getUri: needs to support inheritence.
13964 | Xml | XML - Serialization bugs and improvements.
13968 | SST | RMI Wizard: Cannot always create stubs to VAJ repository.
13975 | Xml | AbtXmlObjectCache should be cleared in packaged images.
13978 | SST | RMI Wizard: need better message when can't find interface.
13979 | Comm | SciHostEnt method calls #address: rather than #addr:
13981 | Base | Creating a ScaledDecimal from a String fails in some instances
13982 | Xml | XML invalid attribute values not reported.
13987 | SST | RMI Wizard: wizard just exits if user is not open-edition owner.
13988 | SST | RMI Wizard: Space appended to name of array return type.
13991 | Base | Implement additional ANSI Smalltalk protocol. See ANSI Smalltalk support.
13998 | Comm | SciSocketManager>>#selectRead:write:except:timeout: prologue.
13999 | Comm | Upgrade to EMSRV 7.0.
14001 | Base | Update base code to V5.5.1.
14002 | ULC | Gen Lang MPR fr Unicode generates Pre-R3.0 mpr.
14011 | Comm | #callLoopingSendWith:with:with:with: can get stuck on AIX.
14017 | Xml | Optimizations to #abtXmlPrintString based upon customer feedback.
Components and Features The following sections list some important information about some of the components and features. For the latest product information, please refer to the VisualAge Smalltalk web page . AppBuilder Setting your monetary symbols in UNIX On UNIX, make sure your `LC_MONETARY` locale setting contains a non-empty `mon_decimal_point` entry. On some machines, `mon_decimal_point` may be empty for the `C` locale. For example, if you wish to change to the `en_US` locale, set your `LANG` environment variable to `en_US` before starting VisualAge Smalltalk with the `ksh` command. For example:
    export LANG=en_US
You can check the value of `mon_decimal_point` with the following command:
    locale -k LC_MONETARY
The output should look like the following:
    int_curr_symbol="USD "
    currency_symbol="$"
    mon_decimal_point="."
    mon_grouping="3"
    mon_thousands_sep=","
    positive_sign=""
    negative_sign="-"
    int_frac_digits=2
    frac_digits=2
    p_cs_precedes=1
    p_sep_by_space=0
    n_cs_precedes=1
    n_sep_by_space=0
    p_sign_posn=1
    n_sign_posn=1
    debit_sign="DB"
    credit_sign="CR"
    left_parenthesis="("
    right_parenthesis=")"
On AIX, turn NumLock off when dropping parts Be sure that your `numlock` key is turned off if you are using the composition editor. The `numlock` will prevent parts from being dropped on the Composition Editor. On UNIX platforms, "X Error: BadWindow" message appears for Slider part Each time the Slider part is repainted the message `X Error: BadWindow (invalid Window parameter)` is printed in the xterm window from which VisualAge Smalltalk was launched. The Slider part still functions normally. Base On Solaris version 8, UNIXProcess class>>#system: call may have problems On Solaris, if you are encountering odd behavior when using the `UNIXProcess class>>#system:` call to execute C shells, your problem might be that your call is using the wrong version of the `libcurses.so` library. When you start Smalltalk with the abt shell script, the `LD_LIBRARY_PATH` is set so that `/usr/ucblib` is searched before the `/usr/lib` path. Many Solaris executables will not work correctly if they are linked to `/usr/ucblib/libcurses.so` at runtime. To workaround this problem, in `/opt/IBMvast/5.5/bin`, create a link named `libcurses.so.1` that points to `/usr/lib/libcurses.so.1`. Clients and Managers should be in synch with each other You should install the same features on the VisualAge Smalltalk Client that you install on your Visual Smalltalk Manager. If you install features on the VisualAge Smalltalk Manager and do not have these same features installed on the VisualAge Smalltalk client, you will still see these features listed in the Load/Unload Dialog window of the VisualAge Smalltalk client. However, if you load these features on the VisualAge Smalltalk Client, VisualAge Smalltalk will not install the required code and they may not function properly due to missing files. Error messages such as unresolved strings (because of the missing cat files), missing ICs, missing sample files, and anything else that gets copied as part of the client install of that feature may then appear in the System Transcript window. On MVS, INIs are optional for packaged applications. All other platforms, INIs are required for packaged applications On MVS, an `.ini` file is optional. On all other platforms, an `.ini` file is required. The `.ini` file may have the same name and be in the same directory as your executable (on Unix, the executable is `es` or `esnx`). The `.ini` file can also have the same name and be in the same directory as your `.icx` or `.ic` file. In addition, you can specify your `.ini` file as a command line parameter. For example, you can launch your program by typing the following:
    abt -imyapp.icx -ini:c:\any.ini
ANSI Smalltalk support Support for ANSI Smalltalk (see ANSI/NCITS 319-1998 Smalltalk Programming Language, available in PDF format from http://www.cssinfo.com/ncitsgate.html ) is included in this release of VisualAge Smalltalk Enterprise. This support greatly enhances the portability of Smalltalk applications between different Smalltalk implementations that provide ANSI Smalltalk support. All methods supporting the ANSI Smalltalk protocol are categorized as ANSI-API. Methods associated with ANSI Smalltalk function that are not complete in this release are categorized as ANSI-Unimplemented. The following restrictions with respect to ANSI Smalltalk are in force for this release: The following DateAndTime methods are not functional: clockPrecision (factory method) now (factory method) year:day:hour:minute:second: (factory method) year:month:day:hour:minute:second: (factory method) timeZoneAbbreviation timeZoneName The following Exception methods are not functional: isNested outer pass resignalAs: retry retryUsing: The MessageNotUnderstood exception class is provided, but is not signaled by the standard #doesNotUnderstand: method. The ZeroDivide exception class is provided, but is not signaled when a divide by zero occurs. Changes in ScaledDecimal To support the ANSI Smalltalk Standard, the following changes in the behavior of ScaledDecimal have been made: A ScaledDecimal literal is now supported. The format of this literal is:
    <integer-part>[.[<decimal-part>]]s[<scale>].
Here are some examples of ScaledDecimal literals:
    3.4s     1274s5     0.88s     0.96s1
The ScaledDecimal>>#printOn: format has been changed to match the format of the ScaledDecimal literal. The old format of printing ScaledDecimal is still available for compatibility purposes by using the ScaledDecimal>>#printOn:showDigits:pad: and specifying true for the showDigits parameter. The format of the string parameter for ScaledDecimal class>>#fromString: has been changed to match the format of the ScaledDecimal literal. The old string format is still supported for comparibility purposes. The ScaledDecimal>>#debugPrintOn: method has been added so that inspecting a ScaledDecimal object does not lose detail due to the new ScaledDecimal>>#printOn: format. Changes in Float To support the ANSI Smalltalk Standard, the following changes in the behavior of Float have been made: Additional Float literals are now supported by extending the possible values of the exponent character. The exponent character now has the following meaning:
    d - Single Precision Float
    e - Double Precision Float
    q - Quad Precision Float
This is only a syntax change. This change does not have any effect on the actual Float values which continue to be represented internally in double precision. On Unix, timestamps show up as %r On some UNIX machines, you may see `%r` where you expect to see a string represinting a time. This will happen when your LC_TIME setting for your current locale contains the format identifier `%r`. VisualAge Smalltalk does not currently handle this format identifier. You can fix this problem in one of two ways; Change the LC_TIME definition for your desired locale. Consult the man pages for locale and localedef information. To enable your timestamps to appear in 24-hour format, execute the following code in Smalltalk:
    NlsGlobals::CurrentLCTime tFmt: '%H:%M:%S'
To enable your timestamps to appear in 12-hour format, execute the following code in Smalltalk:
    NlsGlobals::CurrentLCTime tFmt: '%I:%M:%S %p'
HTML Help TCP/IP requirements The HTML Help subsystem requires that TCP/IP be configured and functional. HTML Help will function with or without a network adapter as long as TCP/IP is configured properly. ##### Windows 95, Windows 98, Windows NT, Windows ME, and Windows 2000 For Windows platforms, configure TCP/IP according to your adapter configuration: If you are using a LAN adapter configuration, ensure the following: You must have DNS enabled with a valid host and domain name. Your LAN DNS must resolve `localhost` to `127.0.0.1` You must run connected with the LAN adapter configuration. If you are using a Dial-Up Adapter configuration, ensure the following: You must have DNS disabled. Your TCP/IP Address must be obtained automatically.
Note: | These configuration options will apply to all TCP/IP adapters even though they have only been changed for this particular Dial-Up adapter. You will not be able to use both LAN and Dial-Up unless you reconfigure.
If you are running standalone, you can enable the MS Loopback Adapter without enabling the other two adapters. ##### OS/2 For OS/2, configure TCP/IP as follows: Enable local loopback by performing the following steps: Open the OS/2 TCP/IP folder. Open the TCP/IP Configuration notebook.. View the Network page. In the listbox labelled Interface to Configure, highlight the item labelled `loopback interface`. Verify that the checkbox on the right labelled `Enable interface` is checked. With `loopback interface` still highlighted, verify that the entry field for IP address is 127.0.0.1 and that the Subnet Mask is empty. Verify that localhost is enabled on your system by doing the following: On any OS/2 command line enter `ping localhost`. This command should return some data back rather than just hang. If it hangs, or if it returns `localhost unknown`, then localhost has not been enabled on your system. If you are on a network, then make sure loopback is enabled. If you are not on a network, enable localhost by performing the following steps: Adding the following line after other `ifconfig` lines in the `MPTN\BIN\setup.cmd` command file:
     ifconfig lo 127.0.0.1
In the TCP/IP configuration: Go to the Configure Name Resolution Services page (page 2 of Hostnames). Add an entry to the table titled `Hostname configuration without a Nameserver`. Set the IP Address to 127.0.0.1 and the Hostname to localhost. If you have a host name specified for your machine on page 1 of "Hostnames" (titled `Configure LAN Name Resolution Services`), then you must add this host name as an alias while you are setting the IP Address 127.0.0.1 to localhost. Check the check box underneath the table labeled: "Look through HOSTS list before going to nameserver." This will enable localhost to bypass any nameserver to resolve the name. Close TCP/IP Configuration and reboot and the system. You should be able to `ping localhost` without being connected to any network. If `ping localhost` still hangs, remove any nameservers from the TCP/IP configuration so that name resolution can be done only by looking at the HOSTS list. Verify that your hostname is correct by doing the following: From an OS/2 command line, enter `hostname`. Verify that the hostname returned is the same as the one listed in the TCP/IP Configuration notebook on the Hostnames page and verify that the hostname is less than 32 characters. If any TCP/IP settings were changed, be sure to reboot OS/2 and restart TCP/IP. HTML Help browser setup Set up the HTML help browser setup according to your browser type: If you use Internet Explorer or Netscape with a firewall (proxies enabled), then you must modify the default settings for help to work properly. ##### Windows -- Internet Explorer 5 Set up Internet Explorer 5 as follows: Select Tools... Internet Options. Select the Connection tab. Click LAN Settings. Select the Bypass proxy server for local addresses checkbox.
Note: | This checkbox is only available if you are using a proxy or socks connection and have selected the "Use a proxy server" checkbox.
Select the Advanced button. Type `localhost:49213` in the Exceptions... Do not use proxy servers for addresses beginning with box. If you have other entries here, separate the new entry with a semi-colon. Click OK, then click OK again to exit the LAN Settings dialog, and click OK again to exit the Internet Options dialog. ##### Windows -- Netscape 4 (Navigator) Set up Netscape 4 (Navigator) as follows: Select Edit... Preferences... Double-click Advanced in the Category tree. Click Proxies in the Advanced subtree. Click View at the Manual Proxy Configuration selection. Type `localhost:49213` in the Exceptions... Do not use proxy servers for addresses beginning with box. If you have other entries here, separate the new entry with a comma. Click OK, then click OK again to exit the Preferences window. If you are using a SOCKS client, be sure that 127.0.0.1 is accessed directly and not resolved by the SOCKS server. You can tell if your SOCKS client needs to be configured by using FTP. Try to FTP to localhost or to 127.0.0.1. If you cannot FTP, then your SOCKS client may need configuring. For example, the Hummingbird SOCKS client uses a configuration file to determine IP addresses that should be accessed directly. You must update this file so that 127.0.0.1 is not passed to the SOCKS server. To update the Hummingbird SOCKS configuration: Edit the Hummingbird configuration file SOCKS.CNF Add the line:
     DIRECT 127.0.0.1 255.255.255.255
Save the file. Depending on your SOCKS client, you may need to restart your system for the new settings to take effect. ##### OS/2 Set up OS/2 as follows: If you are using a SOCKS client, be sure that 127.0.0.1 is accessed directly and not resolved by the SOCKS server. You can tell if your SOCKS client needs to be configured by using FTP. Try to FTP to localhost or to 127.0.0.1. If you cannot FTP, then your SOCKS client may need to be reconfigured. You must also have the LoopbackAdapter enabled (see HTML Help TCP/IP requirements.) Depending on your SOCKS client, you may need to restart your system for the new settings to take effect. Database Double-Byte Character Set Readme For more information on double-byte character sets, see the Double-Byte Character Set readme, `<vast55>\readme\readdbcs.htm` On HP and Solaris, Library path not set up properly for DB2 On HP and Solaris, the abt script file attempts to set up the shared library path to include DB2 if DB2 is detected. However, the Korn shell on HP and Solaris does not always evaluate the tilde character (~) so that VisualAge can set up the shared library path to include DB2. This causes the libraries for DB2 to not be added to the path correctly. To workaround this problem, you must add the DB2 libraries. You may want to add the one of the following examples to your profile.
    HP:   export SHLIB_PATH=/home/db2inst1/sqllib/lib:$SHLIB_PATH
    Solaris: export LD_LIBRARY_PATH=/home/db2inst1/sqllib/lib:$LD_LIBRARY_PATH
Get schema function on Stored Procedure Specification Settings When using stored procedures with the new Oracle 8 database connection, the Get schema function on the Stored Procedure Specification Settings view only works for procedures that are not contained in packages. Users must manually define host variables for procedures that are contained in packages. Running Oracle samples To create the stored procedure used in the Oracle sample, logon to SQL*PLUS and use the file found in your `vast\samples\oracle` directory. For example: Logon to SQL*PLUS
    sqlplus userid/password
Execute the file
    SQL> @vast\samples\oracle\sample.sql
ODBC Drivers are no longer shipped with VisualAge for Smalltalk ODBC drivers are not shipped with VisualAge for Smalltalk V5.5 as they were with some previous versions. The drivers in previous versions were provided by MERANT (formerly INTERSOLV Inc.). If you need to obtain ODBC drivers, the DataDirect product is still available directly from MERANT. For more information call 800-876-3101 or visit http://www.merant.com/datadirect You can also check your DBRM for ODBC drivers. Most, if not all, major DBRMs now ship with ODBC drivers. On AIX, database features require extracting shared library Before you can run the database features on AIX, you must extract a shared object from the appropriate archive file. This is true for IBM DB2, ODBC, and Oracle databases. ##### IBM DB2 For IBM DB2, extract the file from `$DB2INSTANCE/sqllib/lib/libdb2.a` by performing the following steps: Extract the shared object
    ar -x libdb2.a
Rename the extracted file libdb2.so
    mv shr.o libdb2.so
##### ODBC For ODBC, extract from your libodbc.a file by performing the following steps: Extract the shared object
    ar -x libodbc.a
Rename the extracted file libodbc.so
    mv libodbc.o libodbc.so
##### Oracle For ORACLE, extract from your libclntsh.a file by perform the following steps: Extract the shared object
    ar -x libclntsh.a
Rename the extracted file libclntsh.so
    mv clntsh.o libclntsh.so
Note: | For each of these databases, the resulting `.so` file must be in the library path (`LIBPATH`) in order to be located by VisualAge.
Prerequisite AbtRecordStructureApp in Database Applications Some database applications will need to add a prerequisite for the AbtRecordStructureApp application. Applications that use Database Parts will NOT need to add this prerequisite because the parts will include the AbtRecordStructureApp application. If an application manipulates instances of any of the subclasses of AbtRow, they will probably need to add this prerequisite. If you package your application and get the error `The attribute Pub <Attr name> does not exist` at runtime, you need to include the AbtRecordStructureApp application. On Unix, running Database Features On Unix, if you are using database features and experience a core dump when exiting VisualAge, comment out the PlatformLibrary>>shutDown method. An alternative solution for your packaged application is to execute the following code when exiting:
    System primitiveExit
Documentation Possible Installation Guide Search Problem When the Search mechanism returns Search hits on the Installation Guide, the page MAY be one page off of the correct page due to an error in the indexes for this book. Select Previous Page or Next Page from the buttons at the bottom of the browser frame in order to view the correct Installation Guide page. EMSRV On Unix, starting EMSRV The documentation for starting EMSRV shows the following example command: For example, at a command line, enter either: `emsrv.shadow -w -xd21 -xd24 -lc -lf logfile` or `emsrv -w -xd21 -xd24 -lc -lf logfile`. This example should read: For example, at a command line, enter either: `emsrv.shadow -w -xd21 -xd24 -lc -lflogfile` or `emsrv -w -xd21 -xd24 -lc -lflogfile`. Starting EMSRV process In the Installation Guide, in the Configuration and Startup section, under VisualAge Smalltalk Manager, a step for starting the EMSRV process reads:
    /opt/IBMvast/bin/emdevnum /opt/IBMvast/5.5/manager/mgr55.dat
This should be:
    /opt/IBMvast/5.5/bin/emdevnum /opt/IBMvast/5.5/manager/mgr55.dat
On OS/2, STARTing EMSRV In an OS/2 environment, if EMSRV is installed under a directory name that contains spaces (e.g. `x:\VAST55 MG\bin`), attempting to invoke EMSRV via an OS/2 START command may fail with a SYS1041 message. For example, when issued from the `varoot\bin` directory, the following command:
    START EMSRV -u <userid> <password>
may get the message `SYS1041: The name EMSRV is not recognized as an internal or external command, operable program or batch file`. To bypass this problem, issue the command sequence without the START:
    EMSRV -u <userid> <password>
Using the Manager file Be sure to use the following good development practices with EMSRV: Backup the manager file regularly. Run library statistics utilities on a regular basis to ensure the integrity of the manager file. Protect the manager file. Help On Solaris and HP-UX, system requirements for NetQuestion On Solaris, NetQuestion requires the following minimum values to be set in the `/etc/system` file:
    semsys:seminfo_semmni = 2048
    semsys:seminfo_semmap = 2050
    semsys:seminfo_semmns = 4096
    semsys:seminfo_semmnu = 4096
    semsys:seminfo_semmsl = 50
    shmsys:shminfo_shmmax = 6291456
    shmsys:shminfo_shmseg = 300
    shmsys:shminfo_shmmni = 300
For HP-UX, use the System Administration Manager (SAM) to set these values. They are located under Kernel Configuration -> Configurable Parameters. Look for names like the above except only the text after the '_' is listed in SAM, i.e., `semsys:seminfo_semmni` gets mapped to `semmni` in the SAM. Verify that the values listed in SAM are greater than or equal to what is listed above. If you have additional indexes that exist due to the installation of other products that use NetQuestion, then these values may need to be increased. Changing these values will require a reboot of the system. See the system(4) man page for further information on the /etc/system file on Solaris. For HP-UX, there is help available inside of SAM. This is necessary because NetQuestion requires 9 semaphores plus 45 additional semaphores for every index. On UNIX, Netscape 4.7 On the UNIX platform, if you use Netscape 4.7, VisualAge Smalltalk may not be able to bring up Netscape when you try to access the help system. To workaround this problem on HP and SUN, bring up Netscape manually before accessing the VisualAge Smalltalk Help. On AIX, bring up Netscape manually and type in the following URL :
    http: //localhost:49213/cgi-bin/abtwebx.exe/en_US/q/Extract/5.5/abtzva55/vast.htm
Install On OS/2, NetQuestion install problem The NetQuestion installer on OS/2 cannot process an install script file that is in a directory path containing blanks or other special characters which require the resulting filename to be quoted. If you install VisualAge Smalltalk Client in a directory that must be quoted, the NetQuestion install will timeout without installing NetQuestion. To install NetQuestion manually, perform the following steps: Make `<varoot>\inst` your current directory. Copy the `netq.iss` file to a directory name that does not require quoting (i.e., does not contain spaces or other special characters). Edit the `abtnq_b.cmd` file. Modify the line that starts with `install.exe` so that it points to the new location of the `netq.iss` file. Save the `abtnq_b.cmd` file and execute it On AIX, set Read/Write Permissions for mgr55.dat after installing Smalltalk After installing VisualAge Smalltalk manager for AIX or VisualAge Smalltalk Stand Alone for AIX, if you are getting access denied messages, set the access parameters (Read/Write Permissions) for the `mgr55.dat` file. On AIX, create a Journalled File System before installing Smalltalk On an AIX machine, before installing Smalltalk for the first time, use Smitty or Smit to create a Journalled File System. On AIX, increase disk space for Smalltalk installation On an AIX machine, before installing base Smalltalk for the first time, use Smitty or Smit to increase the disk size to 200 Megabytes. Accessing the Smalltalk newsgroup using Netscape If you are attempting to access the VisualAge Smalltalk newsgroup ( news://news.software.ibm.com/ibm.software.vasmalltalk ) using a Netscape browser, you must choose one of the following items in the Netscape browser's Edit->Preferences->Advanced->Proxies menu: Direct connection to the Internet Manual proxy If you have selected an autoproxy from this menu, your attempt to access the VisualAge Smalltalk newsgroup will fail. Object Extender Serializing Business Objects for server applications The dataObject attribute of a BusinessObject may be out of synch with the current version's data. Code that looks like the following:
    aBO dataObject
should be changed to the following code:
    aBO dataObject
                    pullDown: aBO;
                    yourself
The above example code ensures that the dataObject has been synchronized with the Business Object. VAP suppresses exception and does not get passed to the application Database Errors are wrapped into VapExceptions which can be accessed by various helper methods on the Signal class. The following code is an example of the #asVapAbtError method:
    [VapDepartmentHome singleton findByPrimaryKey: aKey] when:
       VapExceptions::ExVapException
         do: [:sig||abtError| (abtError := sig asVapAbtError) rc = 100
               ifTrue: [self log: 'Department not Found: ',abtError errorText]
               ifFalse: [sig signal "This handler is finished - re-signal for other handlers"]].
Oracle Drop does not work in certain cases When using an Oracle database, the primary key must be deleted before the table can be deleted. Pessimistic locking must be set in subclass if hierarchy exists If there is a class hierarchy, and pessimistic locking is desired, it must also be set in the subclass or it will not work correctly. For example, an Account class could have the subclasses SavingsAccount and CheckingAccount. Pessimistic subclassing would then need to be set in those two subclasses. OLE Copying from Windows Explorer into an OLE Client part Use copy and paste to share OLE objects between the Windows Explorer and an OLE Client part. Dropping an OLE object that was dragged from the Windows Explorer onto an OLE Client part does not work. Packaging XD packaging of non-MVS leaf ICs which use MPRs at runtime Using the Packager UI (Modifiy Instructions :: Applications and ICs), you must manually add AbtNlsCfsSupportApp to the image that you are packaging as follows: Select AbtNlsCfsSupportApp in the left pane. Press the >> button. (It will be highlighted. There are two of these buttons. You want to press the one on the left that is below the left and/or center panes). Server IIOP PingPong examples fail with an object other than a String When running the IIOP PingPong examples you must pass a type that conforms to the CORBA Any type interface. Typically, Strings are used as the argument representing @anAnyType when sending the method SstPingPongIIOP>>start: @anInteger with: @anAnyTYpe. Passing Smalltalk Integers and Floats as arguments will cause the example to fail because CORBA does not represent these as objects, and therefore, they do not conform to the Any interface. Using XD Interactive Debugger over TCP/IP with no nameserver When trying to use the interactive debugger, if you are getting the error `EHOSTNOTFOUND` or `EADDRNOTAVAIL` on the runtime side, the problem may be that your runtime machine cannot resolve the dotted TCP/IP address of your development machine. You can work around this problem by adding an entry to the `hosts` file on the runtime machine for your development machine. RMI Wizard considerations The RMI Wizard adds the following instance methods to all mapped classes: sstRmiClassName Answers the Java class name the receiver is mapped to. sstIsRmiSerializable Answers true if the receiver is serializable (passed by value). sstIsRmiRemotable Answers true if the receiver is remotable (passed by reference). The above methods, along with the class mapping definitions (added to the application class), are used by SST to enable instances of the class for use with RMI. There may be some cases where you want to enable the class itself (versus instances of the class) for use with RMI. For example, you might want to have a Java client send messages to a Smalltalk class. If this is the case, you'll need to add the above methods as class methods. On AIX, SST using MQ requires threaded versions of MQ library On AIX, some SST applications that use the MQ transport layer will fail when using the unthreaded versions of the AIX MQ libraries. If you are getting the error `MqCallInProgress`, this may be the cause. By default, Smalltalk MQ calls will use the unthreaded libraries. To switch to the threaded libraries, before making your first MQ call, execute the call `AbtMQSeriesBaseUnixSubApp threaded`. Server Runtime V5.5 incompatible with ServerWorkbench V4.5 and V5.0 Server Runtime V5.5 is not upward compatible with Server Runtime V4.5 or V5.0. This means that applications packaged with Server Workbench V4.5 or V5.0 will not run on a Server Runtime 5.5 system. To workaround the problem, use one of the following options: Repackage your application using Server Workbench 5.5. Keep Server Runtime V4.5 or V5.0 installed in parallel with Server Runtime V5.5 on those systems that need to run applications packaged from both releases. Translations User-Supplied Code Page Conversion A hook has been added to the VisualAge for Smalltalk codepage conversion support which allows the programmer to substitute a custom code page conversion routine in place of the VisualAge default routine. This capability is particularly useful for Windows programmers who write programs that require translation from DBCS ASCII to DBCS EBCDIC because the code page conversion support for Windows does not support this task. Please refer to our web page located at http://www.software.ibm.com/ad/smalltalk/downloads/vacodepage.html for a Windows-only example that demonstrates usage of a custom code page routine. ULC ULC 3.0 supported The ULC feature of VisualAge Smalltalk Version 5.5 has changed since Version 5.0. VisualAge Smalltalk Version 5.0 supported ULC 1.5. VisualAge Smalltalk Version 5.5 supports ULC 3.0. On OS/2, ULC Client must be installed on a HPFS Driver On OS/2, the ULC Client (UIENGINE) must be installed on an HPFS driver due to it's use of long file names. Loading and Running the ULC Examples If you are using the Ultra Light Client Component of the Server Workbench Feature, you may want to load the examples that ship with the product. (To conserve space, these examples are not automatically loaded into your image.) To load these examples, select the VA: ULC - Examples feature from the Tools -> Load/Unload Features pulldown on the transcript window. You must have a ULC UI Engine running on your development machine to run these examples. Also, to run the Hierarchy Browser or Dossier ULC examples directly from the transcript window pulldown (ULC -> Examples -> Hierarchy Browser or Dossier), you must first copy the `bitmaps` subdirectory in the `ULCSamples` directory to the `image` directory in your VisualAge Smalltalk root directory. One way to do this is to create a new `bitmaps` subdirectory in the `image` directory and copy the ULC bitmaps into this new `bitmaps` subdirectory. Description of ULC files that must be installed separately When you install the Server Workbench Feature, a subdirectory named `ulc` is added to your VisualAge Smalltalk V5.5 root directory. In this subdirectory, you will find 4 files. If you plan to use the new ULC component of the Server Workbench feature, you will need to install these 4 files using the instructions in the appropriate readme files, as described below.
Note: | The Windows and OS/2 UI Engine client is provided for both OS/2 and Windows installations since a server can connect to either client.
Ulcouie.exe For all installations, a self extracting zip file with the OS/2 version of the UI Engine for your OS/2 client machines and your OS/2 development machine. Ulcouie.txt For all installations, a readme with installation instructions for the above file, `Ulcouie.exe` Ulcwuie.exe For all installations, a self extracting installation program for the Windows version of the UI Engine for your Windows client machines and your Windows development machine. Ulcwuie.txt For all installations, a readme with installation instructions for the above file, `Ulcwuie.exe` Uninstall Client uninstall fix for Windows 95 and Windows 98 If you try to uninstall the VisualAge Smalltalk Version 5.5/5.5.1 client using the Add/Remove programs utility, the uninstall program will hang. To workaround this problem, do the following: Change directories (chdir) to the the VAST 5.5 installation directory (`<vast55>\inst`) and execute the following commands from the command line: Execute the command:
    abtrmixs.bat
Execute the command:
    erase runrmixs.bat
Execute the command:
    uninst.exe -z.c
Web Connection Debugging Web Connection applications using the interactive debugger It is not currently possible to use the interactive debugger facility of an XD image to debug a Web Connection application. In order to debug a Web Connection application (or an XML application that uses the Web Server Interface), perform the following steps: In the AbtWebServerInterfaceBaseApp>>AbtWsiConnection>>#handleTransaction: method, change the ExAll exception reference to ExError. In the AbtWebServerInterfaceBaseApp>>Block>>#abtWsiAtEndOrWhenExceptionDo: method, replace the code with the following:
    abtWsiAtEndOrWhenExceptionDo: completionBlock
      " Code hacked to enable debugging in XD runtime image via
      the interactive debugger "

      self value.
      completionBlock value
After making the above changes, package the application and execute it as usual.
Note: | Be sure to load the original code prior to packaging the application for production.
On OS/2, starting SST-HTTP server hangs On OS/2, attempting to start a WSI Server with transport type `sst-http` causes Smalltalk to hang if TCP/IP loopback is not enabled. Eventually, a Smalltalk debugger appears with the following error message: `Could not create socket pair: ETIMEDOUT (10060): Connection timed out`. To correct this problem, enable loopback on OS/2 by performing the following steps: Open TCP/IP Configuration windows. Select `loopback interface` from the `Interface to Configure` list box. Select the `Enable interface` check box. Close the TCP/IP Configuration window. To determine if the loopback interface is working properly, type the following from an OS/2 command prompt:
    ping 127.0.0.1
If loopback is properly configured, a series of messages will be written to the OS/2 session indicating that the target address for the ping was successfully contacted. Press `ctrl-c` to terminate the ping operation. After successfully configuring loopback, you should be able to use the `sst-http` interface from OS/2. Packaging an image with Web Connection image components To package your Web Connection application so that it utilizes the Web Connection image components, you must implement a packager method to force inclusion of your web parts in the packaged image. For example, implement the following method as a class method of the application containing your web connection parts.
    packagerIncludeClassNames

       ^self defined collect: [:i | i name ]
#selectionType for table column gives confusing error message in properties When a Table part is dropped onto an Html Page, the #selectionType attribute for a table column contains the following selections in the properties table:
    <Error: No Form - Multiple Select>
    <Error: No Form - Single Select>
These messages are a bit confusing. The #selectionType attribute is only valid for tables that are dropped onto an Html Form part. Including the Web Server Interface Monitor in packaged applications The Web Server Interface Monitor is no longer included, by default, in the prerequisites for Web applications. In order to include the monitor in a packaged application, users should modify the prerequisites for web applications to include theAbtRunHtmlPageApp application. Alternatively, users can package their web applications using the Tools->Browse Packaged Images option. You can add the AbtRunHtmlPageApp application to the packaged image from the Package Control Panel without modifying application prerequisites. This approach is necessary for Web applications that must be loaded into an XD image because the AbtRunHtmlPageApp application will not load into an XD image. For example, the sample application AbtWebSamplesApp is now headless by default because it does not include the prerequisite AbtRunHtmlPageApp. When the packaged image for this sample is started, no windows will open. The application AbtWebSamplesApp can be loaded into a passive XD image and packaged if desired. The application AbtWebSamplesWithMonitorUIApp contains prerequisites to include the Web Server Interface Monitor as well as all the sample parts from AbtWebSamplesApp. This application cannot be loaded into an XD passive image.
Note: | Applications constructed before v4.5 already include the prerequisite AbtRunHtmlPageApp, so no special action is necessary.
XML XML - SgmlException when IDREF specified before ID definition Validation routine signals an exception when an XML attribute of type IDREF/IDREFS contains a value that has not yet been defined by an ID field. This problem occurs when the ID is defined later in the document. Validation of IDREF and IDREFS fields should be performed after all elements have been processed. In the example below, M.Pogue has subordinate A.Bagchi, but A.Bagchi is defined AFTER M.Pogue. This currently causes a validation error because subordinates is an IDREFS field.
    <personnel>
      <person id="M.Pogue" >
        <name><family>Pogue</family> <given>Mike</given></name>
        <email>mpogue@us.ibm.com</email>
        <link subordinates=" A.Bagchi"/>
      </person>

      <person id="A.Bagchi">
        <name><family>Bagchi</family> <given>Anupam</given></name>
        <email>abagchi@us.ibm.com</email>
        <link manager=    "M.Pogue"/>
      </person>
    </personnel></xmp>
To correct this problem, modify the method SgmlIdRefData class>>#abtValidateAttributeValue:forHandler:, so that it always returns 'true'. Any IDREF fields that remain unresolved will be reported via an exception when parsing is completed.
    abtValidateAttributeValue: aValue forHandler: anAbtSaxHandler
            " Make sure that passed id value exists in this document  "

            ( anAbtSaxHandler document idTable  includesKey: aValue )
                    ifFalse: [ anAbtSaxHandler unresolvedIdRefs add: aValue ].

            " Always answer true.  Unresolved references will be reported after parsing completes "
            ^true
Walkback during XML output serialization Walkback occurs during XML output serialization because the method #printAttribute:value:toStream: is unimplemented. To correct this problem, change the method AbtXmlOutputSerializer>>#printAttributesFor:on:mapping: as follows: Change the following code:
    self printAttribute: attrMap attribute
            value:  (anObject abtAtAttribute: attrMap classAttribute asSymbol)
            toStream: aStream ]]
to the following code:
    self printAttribute: attrMap attribute
            value:  (anObject abtAtAttribute: attrMap classAttribute asSymbol)
            on: aStream ]]
Using the XML server examples To try out the XML server samples, perform the following steps: Testing XML request handlers over HTTP From the VisualAge Organizer, select the AbtXmlServerSamplesUIApp application. Select the AbtXmlSampleHttpClientTesterView part. Enter an XML string or a piece of code that evaluates to an XML string
    AbtXmlSampleCustomerRequest xmlTestString1
    AbtXmlSampleCustomerRequest xmlTestString2
From the Actions menu, select the Open WSI monitor option to bring up the Web Server Interface monitor. Follow the instructions in the Web Connection User's Guide to start a WSI server with transport type `wsi-tcp` Specifiy the URL that will handle the request:
     http://myserver/cgi-bin/abtwsac.exe/AbtXmlSampleCustomerRequestHandler
Enable the Options->Inspect result option so that you can view the returned XML response string Select the code string in the text box, and select the Actions->Evaluate and send menu option (or use pop-up menu for text box). After the command is processed, an inspector should open to display an XML string that contains the results. Testing XML request handlers over sockets (very similar to the steps for testing over HTTP) From the VisualAge Organizer, select the AbtXmlServerSamplesUIApp application. Select the AbtXmlSampleSocketClientTesterView part. Enter an XML string or a piece of code that evaluates to an XML string
    AbtXmlSampleCustomerRequest xmlTestString1
    AbtXmlSampleCustomerRequest xmlTestString2
From the Actions menu, select the Open WSI monitor option to bring up the Web Server Interface monitor. Start a WSI server with transport type `xml-tcp` and select the request handler class that you wish to use for handling incoming requests on the socket. For example:
     AbtXmlSampleCustomerSaxRequestWsiHandler
From the XML socket client tester view, specify the server and port number for the request that is to be made (the same server and port from step #4 above). Enable the Options->Inspect result option so that you can view the returned XML response string. Select the code string in the text box, and select the Actions->Evaluate and send menu option (or use pop-up menu for text box). After the command is processed, an inspector should open to display an XML string that contains the results. On Unix, testing the XML server sample AbtXmlSampleCustomerRequestHandler The XML server sample named AbtXmlSampleCustomerRequestHandler contains code with hard coded directory references that do not resolve properly. If you would like to test this sample, you must first do the following: Create a subdirectory named `xml` from your VisualAge base client directory. For example:
     mkdir xml
Copy the xml files from the directory `/opt/IBMvast/5.5/xml` to the newly created `xml` directory. For example:
    cd <vast client directory> /xml
    cp /opt/IBMvast/5.5/xml/*.* .
Packaged image with XML image components If you wish to package your XML application so that it utilizes the XML image components, you must implement a packager method to force inclusion of your XML request handler parts in the packaged image. For example, you can implement the following method as a class method of the application containing your XML request handler parts:
    packagerIncludeClassNames
    | handlers |
      handlers := AbtXmlServerSamplesApp defined select: [:aClass |
         aClass inheritsFrom: AbtXmlWsiHandler ].
      ^handlers collect: [:aClass | aClass name ]
For reduced runtime images that are packaged without the XML image components, all XML request handlers are automatically included in the packaged image.
Note: | The Web Connection feature must be loaded in order to package an XML application that utilizes the WSI communications features.
Packaging considerations when using XML input serialization If the input serialization functionality of the XML feature is used to map incoming XML requests into Smalltalk business objects, the packager will exclude classes that are not specifically referenced in code. The specific sequence of events that may cause packaging concerns is as follows: Parse an XML file to construct a DOM (document object model). Send the #mapUsing: method to the DOM and pass it a valid instance of the AbtXmlMappingSpec class. The #mapUsing: API uses the passed mapping specification to build an object from the contents of the DOM. However, the steps above do not cause any actual references to the class name of the constructed instance. Therefore, packaging rules must be used to instruct the packager that unreferenced classes should be included in the packaged image. For example, the #packagerIncludeClassNames packager method (a class method) can be implemented in the application class. For example, if MyModel1 and MyModel2' are classes in MyApplication, then the method below should be implemented as a class method in MyApplication.
    packagerIncludeClassNames
       " Include class names that might be constructed via XML mapping "

       ^#(MyModel1 MyModel2)
XML code page conversion has unsupported encodings The XML parser automatically performs code page conversion before attempting to parse an XML stream. Many code pages are handled seamlessly using the default code page conversion routine of the runtime operating system. However, there are some character encodings that cannot be converted. Unsupported code page conversions cause walkbacks at execution time. The following code pages are not supported: EUC_JP conversion is not properly supported by native Windows code page routines. A Windows implementation of ICONV supports EUC_JP. To download ICONV, see http://www.ibm.com/software/ad/smalltalk/downloads/vacodepage.html Using the ICONV support, additional code pages, including EUC_JP, can be supported. The code page ISO-2022-JP is not supported by native routines or by ICONV. The VisualAge XML support attempts to map XML character set encodings to valid code pages. The default mappings can be overridden using the API shown in the following example:
    AbtXmlStreamConverter mapEncoding: 'UTF-8' toCodePage:  65001.
VisualAge uses the code page conversion support APIs that are built in to each of the supported platforms. Therefore, code page mappings may be different for different operating systems. If you encounter a debugger with the following message it is likely that you have encountered an unmapped or mismapped encoding.
    Abt.Nls.160.e: Conversion from code page <sourceCodePage> to code page <targetCodePage> is not supported.
Disclaimer THIS DOCUMENT IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. IBM DISCLAIMS ALL WARRANTIES, WHETHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF FITNESS FOR A PARTICULAR PURPOSE AND MERCHANTABILITY WITH RESPECT TO THE INFORMATION IN THIS DOCUMENT. BY FURNISHING THIS DOCUMENT, IBM GRANTS NO LICENSES TO ANY PATENTS OR COPYRIGHTS. (C) Copyright IBM Corporation 2000. All rights reserved.
Privacy |  | Legal |  | Contact |