IBM VisualAge Smalltalk Readme
Welcome to VisualAge Version 5.5.2
Welcome to VisualAge Version 5.5.2
VisualAge® Smalltalk Version 5.5.2 includes all the function of VisualAge Smalltalk Version 5.5 and 5.5.1 plus a couple new features and several product fixes. This file contains information about the VisualAge Smalltalk Version 5.5/5.5.1/5.5.2 products.
Important information about Version 5.5.2
For VisualAge Smalltalk Version 5.5.2, you do NOT need to
install VisualAge Smalltalk Version 5.5 or 5.5.1 before
you install Version 5.5.2. Version 5.5.2
determines if Version 5.5 or 5.5.1 is installed on your
machine and does one of the following:
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.2. The Migration Guide is installed with the VisualAge Smalltalk Client and is also available on the VisualAge Smalltalk web page.
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.
Additional sources of information
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.2 files and installation
VisualAge Smalltalk Version 5.5.2 is a refresh to fix
problems reported against Version 5.5 and 5.5.1 of
VisualAge Smalltalk. Version 5.5.2 includes fixes to
customer reported APARs as well as problems reported by other sources.
It also provides support for ULC 3.1.
Version 5.5.2 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.
Operating System | Component | Download file | Approximate Download Size (MB) | Approximate Uncompressed Size (MB) |
Windows |
|
|
|
|
| Client | va552_cw.zip | 64 | 206 |
| Manager | va552_mw.zip | 62 | 247 |
| Server Runtime | va552_sw.zip | 3 | 11 |
OS/2* |
|
|
|
|
| Client | va552_co.zip | 67 | 204 |
| Manager | va552_mo.zip | 62 | 239 |
| Server Runtime | va552_so.zip | 3 | 8 |
AIX |
|
|
|
|
| Client | va552_ca.zip | 66 | 122 |
| Manager | va552_ma.zip | 64 | 250 |
| Server Runtime | va552_sa.taz | 4 | 12 |
Sun |
|
|
|
|
| Client | va552_cs.zip | 50 | 174 |
| Manager | va552_ms.zip | 62 | 248 |
| Server Runtime | va552_ss.taz | 4 | 12 |
HP |
|
|
|
|
| Client | va552_ch.zip | 69 | 192 |
| Manager | va552_mh.zip | 62 | 249 |
Linux | Emsrv | va552_ml.taz | .233 | .5 |
NetWare | Emsrv | va552_mn.zip | .04 | .1 |
Installation instructions for development systems
There are two pieces to the installation of the VisualAge Smalltalk Version 5.5.2 for development environments: the library manager and the client. You must install both the Version 5.5.2 library manager and the client. You should install the library manager first.
You can install the Version 5.5.2 manager and client in a team development environment or as a standalone installation.
To obtain Version 5.5.2, follow these steps:
Check the Use File folders option to restore the file directory structure of the zipped file.
Use the -d option to restore the file directory structure of the zipped file.
pkunzip -d va552_cw.zip
Info-ZIP restores the directory structure by default.
unzip va552_cw.zip
tar -xvf va552_ml.tar
Before installing Version 5.5.2, follow these steps:
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.
cd install_w
To install Server Runtime, do the following:
d: mkdir d:\vast55 mkdir d:\vast55\server
cd d:\vast55\server
unzip va552_sw.zip
cd install_o
To install Server Runtime, do the following:
d: mkdir d:\vast55 mkdir d:\vast55\server
cd d:\vast55\server
unzip va552_so.zip
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:
mv va552_sa.taz va552_sa.tar.Z;zcat va552_sa.tar.Z|tar -xvf -
mv va552_ss.taz va552_ss.tar.Z;zcat va552_ss.tar.Z|tar -xvf -
mv va552_ml.taz va552_ml.tar.Z;zcat va552_ml.tar.Z|tar -Pxvf -
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.2
The Version 5.5.2 installation automatically merges the Version 5.5.2 code into the Version 5.5 or 5.5.1 manager.
If you had previously installed Version 5.5 or 5.5.1, before you use VisualAge Smalltalk Version 5.5.2, do the following:
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.
The ULC feature of VisualAge Smalltalk Version 5.5.2 has
changed since Version 5.5.1. VisualAge Smalltalk Version
5.5 and 5.5.1 support ULC 3.0. VisualAge
Smalltalk Version 5.5.2 supports ULC 3.1. See the
VisualAge Smalltalk Ultra Light Client Guide and Reference for
detailed information on ULC 3.1 changes.
You are no longer required to build your own IBM Smalltalk Image.
Version 5.5.2 provides a prebuilt IBM Smalltalk image:
The major enhancements in EMSRV 7.0 (VisualAge Smalltalk Enterprise 5.5.1) since EMSRV 6.24 (VisualAge Smalltalk Enterprise 5.5) are:
The RMI in Server Smalltalk will run under JDK 1.3, using the same techniques that were required for JDK 1.2.
Documentation changes for VisualAge Smalltalk Version 5.5 include:
Component fixes in Version 5.5.2
This section documents Version 5.5.2 fixes to problems reported to IBM by customers (APARs) and problems reported through other sources.
Fixes are included for the following problems found by customers. The problems are listed by APAR number.
APAR | IBM Defect | Component | Description |
PQ29551 | 13186 | AppBldr | Datenormalizationtable In Settings View Does Not Work |
PQ44209 | 13396 | Server | Poor performance writing walkback from XD packaged image |
PQ45987 | PQ45987 | Server | Scaleddecimalmath Class Does Not Understand Dllname |
PQ46370 | PQ46370 | Envy | Osptr Class Cannot Handle Immediate Buffers That Are > Than 8Mb |
PQ45733 | PQ45733 | ID | Help Files Changed In 5.5, Documentation Needs To Be Amended |
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 |
8880 | Comm | Sci Will Not Unload After Usage |
10310 | Database | Two Shortcuts Using Alt+O On One Menu |
13811 | AppBldr | OLE Walkback From 'typelibs' Option Of Class Generator |
13838 | Base | Timestamps are showing up as %r on Linux and Solaris 8 machines |
14011 | Comm | #callLoopingSendWith:with:with:with: can get stuck on AIX |
14029 | XML | Packager no implementors message |
14039 | XML | Defer validation for IDREF and IDREFS fields |
14069 | Comm | Mq call #createDefaultMessage causes walkback on UNIX |
14076 | XML | DOM method #firstChild always answers nil |
14201 | Envy | Need changes to Core for VM building from 5.5.1 image |
14202 | XML | Output serialization renders 'Attribute'mapping wrong |
14203 | XML | Add #nameSpaceURI to mappingSpec |
14207 | Base | Update version information to 5.5.2 |
14209 | XML | Changes to support web services |
14211 | Web Connection | Walkback during image startup using -wc: option |
14213 | Reports | #defaultEditSize should be moved to AbtEditReportApp |
14214 | Comm | Library choosing methods for MQ on UNIX should be public |
14215 | OLE | OLE customer problem with #acceleratorKey: method |
14216 | OLE | OLE walkback due to incorrect #background method |
14221 | AppBldr | Excessive packager warnings for containers |
14223 | AppBldr | OLE - Instances not cleaned up after property edit |
14228 | Envy | Remove Win 3.1 specific code from the Sci layer |
14235 | Base | ExceptionEventCollection>>#handles: sends undefined message |
14240 | XML | Packager warnings for XML |
14244 | Reports | Quick report of database query attributes |
14245 | NLS | NLS gives walkback when MPR file is missing |
14246 | Base | AbtFileSpec>>#isAbtFileSpec gives wrong answer |
14251 | Reports | Report viewer edit-time walkback |
Component fixes from Version 5.5.1
This section documents the fixes that were in Version 5.5.1. These fixes are included in Version 5.5.2. These are fixes to problems reported to IBM by customers (APARs) and problems reported through other sources.
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 Connection | 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. |
14017 | XML | Optimizations to #abtXmlPrintString based upon customer feedback. |
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.
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.
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, 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
Support for ANSI Smalltalk 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:
To support the ANSI Smalltalk Standard, the following changes in the behavior of ScaledDecimal have been made:
<integer-part>[.[<decimal-part>]]s[<scale>].
Here are some examples of ScaledDecimal literals:
3.4s 1274s5 0.88s 0.96s1
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.
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:
For OS/2, configure TCP/IP as follows:
ifconfig lo 127.0.0.1
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:
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.
Windows -- Netscape 4 (Navigator)
Set up Netscape 4 (Navigator) 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 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:
DIRECT 127.0.0.1 255.255.255.255
Depending on your SOCKS client, you may need to restart your system for the new settings to take effect.
Set up OS/2 as follows:
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.
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:
sqlplus userid/password
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.
For IBM DB2, extract the file from $DB2INSTANCE/sqllib/lib/libdb2.a by performing the following steps:
ar -x libdb2.a
mv shr.o libdb2.so
For ODBC, extract from your libodbc.a file by performing the following steps:
ar -x libodbc.a
mv libodbc.o libodbc.so
For ORACLE, extract from your libclntsh.a file by perform the following steps:
ar -x libclntsh.a
mv clntsh.o libclntsh.so
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
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>
Be sure to use the following good development practices with EMSRV:
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 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
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:
On Windows ME, NetQuestion install problem
In order to view and search documentation on Windows ME, you must add in some environment variables which NetQuestion failed to install.
To add in the environment variables, do the following:
c:\imnnq_95
c:\windows;C:\imnnq_95
c:\imnnq_95
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:
If you have selected an autoproxy from this menu, your attempt to access the VisualAge Smalltalk newsgroup will fail.
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.
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.
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:
In versions prior to 5.5.2, the server process handled its
first step--pulling incoming requests off of the
wire--serially. The code that received the incoming messages
executed on the server process. For Version 5.5.2, we
have given SST programmers the ability to use a dispatcher to handle how the
incoming message reception code gets executed, giving you the chance to use
processes other than the server process. In many applications, this
will help performance and throughput, especially if your SST application
involves large requests made from the client to the server and heavy
loads.
In some rare circumstances, this change could also help with
stability. Consider what would happen if a client to your SST server
application sends only 100 bytes out of a 200 byte request. This
situation might arise due to a hiccup in your network (this kind of hiccup is
actually very rare), or perhaps due to a malicious client. For this
example, let's say you are using TCP/IP for your transport. You
will issue a socket receive() call, expecting 200 bytes.
This call will block until those 200 bytes are received; in this case, it
blocks forever. If this receive() call is made on your
server process, that process is blocked indefinitely, and your server will
stop responding to incoming requests.
With the changes made in Version 5.5.2, the reception of
incoming requests does not have to be executed on the server process.
The invocation handler now holds onto a second dispatcher, and the work of
pulling the incoming requests off of the wire is managed by this
dispatcher. If you were to use, for example, an
SstPooledDispatcher here, the requests would happen on processes
managed by that dispatcher, and your server will stay up if it receives one of
these partial messages. You could even write your own dispatcher that
would timeout any call not fully received after n seconds.
In Version 5.5.2, there are two new options in the
SstInvocationConfiguration for this new function:
Performance improvement in writing walkback log
Previous releases of VisualAge Smalltalk Server Runtime provided only one
method of logging a simple walkback. When an error occurred, the
walkback information was written to TranscriptTTY. This caused the
walkback information to be written to the console (Unix) or to a log file
identified by the -l command line option. Since
TranscriptTTY does unbuffered character-at-a-time output, it can be very time
consuming to write the walkback information.
For Version 5.5.2 and later, an alternative output mechanism
is provided. When this mechanism is enabled, it writes the walkback
information to a file stream just as would be done for a Reduced Runtime
image. This is a buffered operation which can be more than an order of
magnitude faster than writing to TranscriptTTY.
To enable writing the walkback information to a file stream, you must
provide the startUp class with the filename of the file to be
associated with the file stream. For example, to see the difference in
behavior, create an XD image and load the HelloWorld
application. Then package it by specifying
AbtHeadlessRuntimeStartUp as the image startup class. If you
specify
as the application entry point, the walkback will be written to
TranscriptTTY (you need to specify the -l command line switch at
runtime to see this output on Windows and OS/2).
If you specify
as the application entry point, the walkback will be written to the
runtimeWB.log file.
HelloWorld haltHelloWorld
System image startUpClass walkbackFileName: 'runtimeWB.log'. HelloWorld haltHelloWorld
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.
The RMI Wizard adds the following instance methods to all mapped classes:
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:
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.
The ULC feature of VisualAge Smalltalk Version 5.5.2 has
changed since Version 5.5 and 5.5.1. VisualAge
Smalltalk Version 5.0 supported ULC 1.5. VisualAge
Smalltalk Version 5.5 and 5.5.1 supported ULC
3.0. VisualAge Smalltalk Version 5.5.2 supports
ULC 3.1.
On OS/2, after you install the UIEngine (by running the command
UlcOUiE.exe /dir), you must change each command file
(.cmd) in the ulc/uiengine/bin directory that has
a name that begins with runClient. Edit the
.cmd file and change the run.bat call to
the run.cmd call.
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 Version 5.5.2 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.
Client uninstall fix for Windows 95, Windows 98, and Windows ME
When you use the Add/Remove programs utility to uninstall VisualAge Smalltalk Version 5.5.2 client, when the uninstall program is finished, it leaves one window open. To workaround this problem, when the window says Finished, simply close the window.
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:
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.
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:
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.
To try out the XML server samples, perform the following steps:
AbtXmlSampleCustomerRequest xmlTestString1 AbtXmlSampleCustomerRequest xmlTestString2
http://myserver/cgi-bin/abtwsac.exe/AbtXmlSampleCustomerRequestHandler
After the command is processed, an inspector should open to display an XML string that contains the results.
AbtXmlSampleCustomerRequest xmlTestString1 AbtXmlSampleCustomerRequest xmlTestString2
AbtXmlSampleCustomerSaxRequestWsiHandler
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:
mkdir xml
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.
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:
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:
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.
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.