Readme for
Symantec Visual Cafe Professional Edition v3.0a
Table of Contents:
I. Welcome
II. Installation Notes
III. User Tips
IV. Known Problems and Caveats
V. Questions and Answers
VI. Native Java
VII. Swing
VIII. Deployment and Jar
Tools
IX. Documentation corrections
X. Revision History
XI. Contacting Symantec for Technical
Support
I. Welcome
If you are using the FAT16 file system in Windows 95/98, the total installed size of Visual Cafe is significantly
affected by the cluster size of the hard drive partition used. The total installed size will be substantially larger
for drive partitions with 32k clusters (1-2GB drives) than for drive partitions with 16k (513MB-1GB) or 8k (257-512MB)
cluster sizes.
Note: If you do NOT have ODBC installed on your system, you will see an error message that ODBC32.dll could
not be found at the end of installation (after installation of the native runtime). This DLL is not actually needed
by installation; simply dismiss this error dialog and ignore it.
In order to run any of your JDK 1.1.x applets in the Netscape browser, we recommend Netscape Navigator 4.5 or Netscape
Navigator version 4.04 PLUS the JDK 1.1 Smart Update for version 4.04 available from Netscape at http://developer.netscape.com/software.
Installing and Running the Tour
If you are new to Java development, please take the time to work through the exciting and informative tour that
is part of Visual Cafe. This tour will provide you with an overview of some of Visual Cafe's most powerful features.
What is in the Tour?
In the Tour you will learn how to:
To run the Tour:
The Getting Started manual contains instructions for setting up and stepping through the Tour. Open the book and
follow the Tour instructions
or
Launch the Tour Book from the Symantec Visual Cafe Start menu, and follow the Tour instructions. You need to have
Adobe Acrobat reader installed in order to read the Tour Book.
Debugging applets in
Microsoft's Internet Explorer
The Microsoft browser does not support JNI, the native code required by Sun's JDBC-ODBC Bridge. Microsoft has its
own version of the JDBC-ODBC Bridge, which can be obtained by downloading the Microsoft SDK for Java from their
website.
Debugging applets in
Netscape Navigator
Visual Cafe supports Netscape Navigator version 4.5 which ships with Visual Cafe. You can download Netscape Navigator
4.5 from http://www.netscape.com/download/index.html.
Occasionally applets may fail to execute when run in Netscape Navigator 4.5. Applets should run if executed a second
time while a browser window is already open.
Netscape will issue some security violation exceptions when you attempt to execute or debug applets from within
Visual Cafe. To avoid this security constraint, please add the following options to your prefs.js file:
user_pref("unsigned.applets.low_security_for_local_classes", true); user_pref("signed.applets.local_classes_have_30_powers", true); user_pref("signed.applets.low_security_for_local_classes", true); user_pref("signed.applets.verbose_security_exception", true);
Notes:
1. This file states that it should not be edited by hand. In order to add entries to this file, you must first
close all running instances of the Netscape Navigator. You may then edit the file manually.
2. You will see a message in the Java console, "# Security Exception: checkpropsaccess.key". This message
can be ignored.
3. Most security errors can be avoided by publishing the applet to a web server.
For more information on Netscape security please refer to the following URLs:
http://developer.netscape.com/support/faqs/champions/security.html
http://developer.netscape.com/library/technote/security/sectn3.html
Debugging with a pluggable
VM
3.0a includes support for the debugger to automatically debug with the Pluggable VM you have set instead of using
remote debugging. If you have a Pluggable VM set already, you must set the Pluggable VM page to the default VM,
then switch back to your Pluggable VM to make this work.
Note:You must still manually add the wrapper classes to tools.jar when debugging with jdk1.2. However, in the Online
Help topic "Debugging/JDK1.2", only steps 1 and 2 are now required.
Enhanced Pluggable VM Debugging
Support for 3.0a
When debugging code in VisualCafe 3.0 using a Pluggable VM, you had to manually start the VM and use remote debugging.
In 3.0a, you no longer have to start the VM manually or run a remote debugging session. You may now start debugging
using the same commands as the default VM. However, you still need to configure your Pluggable VM before running
standard debug sessions. The following checklists review the steps necessary to configure various Pluggable VMs.
Java 2 Platform (JDK 1.2):
1. To execute and debug applets, you need to set permission in the security file <JDK1.2>\jre\lib\security\java.policy.
Inside the grant() block, add these two lines:
permission java.lang.RuntimePermission "modifyThread"; permission java.lang.RuntimePermission "modifyThreadGroup";
2. Unzip the classes in:
<VisualCafe>\java\lib\Wrappers\generic-jdk-1.2.zip. Insert them into the JAR file <JDK1.2>\lib\tools.jar.
3. If you haven't setup a JDK1.2 VM profile in VCafe, go to Tools->Environment Options->Virtual Machines
to set one up. See the online Help Topic "Virtual Machines Tab" for more information.
4. In the JDK1.2 VM profile make sure that add these files to the front of the "Compiler classpath" and
"Claspath (VM Executable)" entries:
<JDK1.2>\lib\tools.jar;<JDK1.2>\jre\lib\rt.jar; <JDK1.2>\jre\lib\jaws.jar; <JDK1.2>\jre\lib\i18n.jar
5. Press <F5> or Select Project->Run in Debugger as you normally would to start debugging.
JDK 1.1.5 - 1.1.6 - 1.1.7
1. If you haven't setup a JDK1.1.x VM profile in VCafe, go to Tools->Environment Options->Virtual Machines
to set one up. See the online Help Topic "Virtual Machines Tab" for more information.
2. In the JDK1.1 VM profile make sure to add these files to the front of the "Compiler classpath" and
"Claspath (VM Executable)"
entries:
<VisualCafe>\java\lib\Wrappers\generic-jdk-1.1.X.zip; <JDK1.1.X>\lib\classes.zip
3. Press <F5> or Select Project->Run in Debugger as you normally would to start debugging.
JDK 1.0.2
Visual Cafe 3.0x does not have support for debugging in JDK1.0.2. Although you can compile. Please use Visual Cafe
1.0x for full JDK 1.0.2 support.
Other Sun JDKs
If there are no debugging wrapper classes for a JDK, there might be strange behavior. For example, you can start
a debug session
with JDK 1.1.4, but some breakpoints might not get hit.
JFC Documentation
Sun's JFC documentation is located in the \VisualCafe\Documentation\JFC directory.
Migrating projects from previous
versions of Visual Cafe
When migrating projects from previous versions of Visual Cafe, it is recommended that you create a backup
of the project source files before performing the migration. Such a backup will be valuable if manually added code
is modified within the tagged sections that is not in keeping with Visual Cafe's code generation format.
Running applets in Microsoft
Internet Explorer
If you encounter problems running applets in Internet Explorer, please install the java plug-in from Sun available
at: http://www.java.sun.com/products/plugin. This will ensure
that Internet Explorer is running with the latest VM from Sun. If you continue to encounter problems, expand symbeans.jar
to your \windows\java\classes directory using a third party unzip utility. Symbaens.jar is located in the <visualcafe>\bin\components
directory.
SC.INI
Visual Cafe uses the CLASSPATH from the sc.ini file in the <"VCafe">\Bin directory. The CLASSPATH
in sc.ini, by default, does not contain the environment classpath (e.g.,%CLASSPATH%). Existing projects relying
on the Windows environment classpath setting may fail to build. To correct this, you may either add the package
directories manually to the sc.ini classpath, add the package directories to the project in project/options/directories,
or add the %CLASSPATH% variable to the end of the classpath line in the sc.ini file.
Version Control
When a project has been checked in and the .vep file marked read-only, remember that if files are added,
removed, or renamed or if project option changes are made, you will be unable to save them unless File | Save As...
is used. Checking out the .vep file through Visual Cafe to mark it read-write will result in a merge of the .vep
file overriding the local changes. Make sure that the .vep file is checked out before making any changes to ensure
that your changes can be checked in.
When using version control with SourceSafe, the Visual Cafe project root is by default where the .vep file is stored on your hard drive. All project files added to SourceSafe must be in that directory or in a subdirectory of that directory or SourceSafe will generate errors since it can not map the files. Currently it is not possible to change this root directory in Visual Cafe.
Notes:
Visual Cafe Open API
The Visual Cafe 3.0a Open API now supports both C++ and Java interfaces for writing plug-ins and integrating with
the environment. Many vendors have implemented integrations using the Visual Cafe open API. Check the Symantec
Tools & Solutions CD and Catalog for more information on integrated solutions. Visit our website at http://www.visualcafe.com
for the latest information on integrated solutions and also to download the Open API SDK.
JITspeed
JITspeed is a special version of the Visual Cafe JIT that has been enhanced to work with Netscape 4.x.
Visit our website at http://www.symantec.com/domain/cafe/jitwin/index.html
for more information about enhancing Netscape's Java performance with JITspeed.
Please see Native Java, Swing, and Deployment and JAR Tools
sections for known problems in these areas.
Professional and Database Editions only:
Breakpoint set
in code for a timer event
Classes with methods that use
array arguments
Incorrect Line-number info
Incremental Debugging
Stepping out of event
handler code in Netscape
Terminating Remote Debugging
Sessions
Unavailable source files
when debugging in Web browsers
Using the Visual Cafe
debugger against a non-Symantec VM
When converting a 1.0 project that used a card layout with unnamed cards, backparsing will fail. To work around this, you must manually edit the add()statements for those cards without names. It is important to note that JDK 1.1 has disallowed unnamed cards in a card layout; the same code would also fail at runtime in a JDK1.1 VM.
Class Browser
If the source files are not compilable, the Class Browser may behave unpredictably. Please compile the source files
before using the Class browser to avoid this behavior.
Classes with methods that use
array arguments
Visual Cafe may not interpret methods with array arguments correctly when the classes containing those
methods are in the Component Library. This appears in various ways. For example:
Debugging with an older
classes.zip
If an older classes.zip from a previous version of Visual Cafe is added to you project classpath (Project
| Options - Directories tab | Show directories for: Input class files), Visual Cafe will crash when the project
is run in the Debugger.
Environment
Options dialog when running 640x480
When first opened, the <OK>,<Cancel>,<Apply> and <Help> buttons of the Environment
Options dialog bleed off the bottom of the display. To access these buttons, grab the titlebar and move the dialog
upward.
Errors when starting Visual Cafe
A corrupt project may result in Visual Cafe refusing to launch or crashing upon launch if the On Startup option
in the Tools | Environment Options dialog - General tab is set to: "Open the last project." This can
be avoided by double clicking a .java file to launch Visual Cafe without opening the last project. If you determine
that the project is corrupt, it can be rebuilt using the Empty Project template. Please see page
3-25 in the User's Guide for instructions on working with Empty Projects.
If you encounter certain errors when starting Visual Cafe or if your Component Palette appears empty, delete the following files from \VisualCafe(SE|PE|DE)\Bin:
*.rps
*.reg
*.vws
You can also use "vcafe - clean" at the command line to delete these files and then launch Visual Cafe
Note: Some of the errors are:
"No starter templates could be found"
"Cannot open local repository"
"Cannot open registry"
These files are platform-dependent and must be regenerated when switching from one operating system or to another machine.
Java Beans
When a Bean has multiple types of event listeners that implement event types having the same name, Visual Cafe
will generate code to handle that event type only for the first listener. If you select that event type for the
second event listener, it generates the code for using that event type from the first listener.
Visual Cafe uses the code generation model. If a Bean has a property editor, the method PropertyEditor.getJavaIntializationString() must be properly implemented.
Custom properties: All custom properties must be serializable; otherwise Visual Cafe cannot initialize the state of the Bean.
If a custom bean has been placed in a Component Palette tab, and AutoJAR is used to update the bean, the bean is deleted from the tab. You can avoid this by adding a toolbar value to the beaninfo such as the following:
import java.src.com.symantec.itools.vcafe.beans.BeanDescriptorAttributes; BeanDescriptorVname.setValue(BeanDescriptorAttributes.TOOLBAR_ATTRIBUTE,ToolbarPaletteTabName);
where BeanDescriptorVname is the name of your bean descriptor variable and ToolbarPaletteTabName is the name of the Toolbar Palette tab where the bean is displayed.
Changing the package of a project Bean after it has been added to a form will not change the class property and will cause code generation problems when it is used.
Javadoc Editor
Placement of Javadoc comments on variables that are inside the DECLARE_CONTROLS block will be removed upon code
regeneration and is not supported.
If the Javadoc Editor is open and you're working in MDI mode, switching to another view by right clicking a file name in the project window will only work if the project window is not docked.
If the source files are not compilable, the Javadoc Editor may behave unpredictably. Please compile the source files before using the Javadoc Editor to avoid this behavior.
If you have throws clauses containing external classes, you may not get these classes listed in the Exceptions
window in the Javadoc Editor. To workaround this problem, enter @exception <ClassName> in the javadoc comment.
Avoid trying to use the Javadoc Editor to add Javadoc comments to the code in the form of:
private int var1, var2;
instead, please use:
private int var1; private int var2;
Otherwise the Javadoc Editor produces unpredictable results. The Javadoc utilities will only see the Javadoc comment directly above the definition and generate the same html text for both the var1 and the var2 sections. There is no way to provide separate text for each variable unless the definitions are on separate lines.
JDK Version incompatibilities
Symantec Visual Cafe 3.0a supports version 1.1.7a of the Java Development Kit from Sun Microsystems.
Please see http://www.javasoft.com for information regarding specific OS
incompatibilities with the JDK.
JMaskedText and MaskedTextField
Numeric masks in the masked fields can be forced to accept non-numeric inputs by using copy and paste.
The method isdatacomplete() in JMaskedTextField and MaskedTextField
always returns a value of true although no changes were made to the component.
JSplitPane
JSplitPane is not supported visually in this release of Visual Cafe.
JTable or JList
in a JScrollPane
A JTable or JList in a JScrollPane will not scroll automatically when an item out of the current viewable
area is selected.
Known Online Help issues
Pressing F1 help on some properties may not bring up the help for that property. If you want to view
the help for the property, use the Contents Tab in the Online Help by selecting Help Topics from the Help menu.
You may also search for the item in help by using the Index or Find tabs in the Online Help.
Large JAR files and
the component library
Under Windows 95 it is best to drop larger JAR files one at a time into the Component Library window. This is a
problem with the Java VM under Windows 95, and we expect it to be resolved in version 1.2 of the Java VM.
Lightweight component
behavior between JDK 1.1 and 1.1.7
Between JDK 1.1 and JDK 1.1.7, behavior of lightweight components has changed in many ways (primarily to fix problems
in the initial implementation). If you run your program in an environment with an implementation of lightweight
components that is earlier than the implementation in JDK 1.1.7, behavior of the lightweight components may vary.
Macro
When editing a a Macro in the source editor, if the argument for VisualCafeCommand.sendKeys('')
is a double byte character, then the macro can only paste the second byte.
Memory Warnings
"Out of Virtual Memory" warnings
If you encounter an "Out of Virtual Memory" warning under Windows NT with 128 MB or more of RAM, you
may have come across a reported NT bug. The symptoms are a sudden jump in the "Mem Usage" graph in the
Performance tab in the Windows NT TaskManager. A sudden memory allocation of 100 MB or more can occur and is not
returned unless the system is rebooted.
To prevent this error, change the paging file size settings in Settings | Control Panel | System | Performance
to the same or greater size as the amount of physical RAM in the machine. Choosing the Recommended Paging File
size is also a safe choice.
Low-memory warning on startup
If the sum of your system's available physical memory (RAM) and swap space on disk is below a minimal level when
Visual Cafe starts up, a warning dialog will notify you of this condition. It advises you to increase swap space
(see below). You have the option of ignoring this warning (answer "No" to the "Quit?" prompt),
and proceeding to run Visual Cafe with low memory resources. With light use, you may not experience any problems
at all. But with typical use, at some time in the course of your Visual Cafe session you may begin to see "low
virtual memory" warnings from the operating system. Typical symptoms of running any complex application with
too little available memory are sluggish performance and unstable system behavior.
If the warning dialog recommends that you increase swap space by some small amount, such as 2 or 3 MB, increase
the minimum swap space on Windows NT or free disk space on Windows 95/98 by at least 5 MB.
For Windows 95/98, if the option is selected to let the OS manage swap space (default setting) in Settings | Control
Panel | System | Performance | Virtual Memory, then available swap space is simply the amount of free disk space;
but note that there is no guaranteed minimum: if the disk is full, there is no swap space available.
For Windows NT 4.0, choose Settings | Control Panel | System | Performance and click the Change button. The page
file setting that matters most to an application under NT is the initial page size setting. On a system with 32
MB RAM, the initial swap space should be not less than 20 MB, and 32 MB is better. A reasonable setting for the
maximum is at least twice the initial size.
For further details about virtual memory, see the OS Help in the System dialog box.
Parse All Imports option
When using the Parse All Imports option, allow the parser to finish parsing before editing or changing a file.
To view the status of the parser, select Messages from the Visual Cafe View menu.
ResourceBundle/Localization
Features
For best results use the procedures below.
Turning on Resource Bundling/Localization:
1. Have the project in a compilable state.
2. Make a backup.
3. Resource Bundle your project near the end of the development cycle.
4. Use the Tools | Localization | Resource Bundle Strings... dialog to turn on these features.
Turning off Resource Bundling/Localization:
1. Remove any extra locales through the Tools | Localization | Delete Locale... dialog.
2. Open the Project Options, and uncheck Localize Generated Code.
3. Revert any still localized strings by hand, and remove the resource bundle initialization strings from the files.
4. Delete any remaining Resource Bundle files from the project.
Hints and Tips:
Stepping over a
statement in a try block while debugging
In some cases, stepping over a statement in a try block that triggers an exception will cause the program to terminate.
To get around this, set a breakpoint in your catch block. This breakpoint will get hit and you can continue to
debug.
TextArea AWT component
Adding more than 20KB of text to the TextArea component can cause unexpected behavior or a crash.
Using Visual Cafe on
256 colors displays
If you are using a color scheme other than the default Windows scheme on a 256 color display, the Form Designer
and some dialogs may display colors differently.
Z-order of heavyweight components
Z-order of heavyweight java.awt components is undefined in JDK 1.1.7. As of this writing, the current JDK 1.1 versions
of Internet Explorer and Netscape both use the same z-order. However, this may not be true in future versions of
either Web browser or of other Java execution environments.
Incorrect Line-number info
When debugging in Netscape or Internet Explorer, stepping into code for components will use the browsers' VM. Line-number
info will be incorrect, thus the code displayed will not be correct.
Incremental Debugging
Changes made to static variables require a restart of the application or applet before they take effect. Similarly,
changes made to methods in the active call chain require a restart of the method before they can take effect. In
both cases a dialog presents you with this choice.
When using incremental debugging, changes made do not take effect until the next time the modified method is called.
This means if you modify a method that runs only once during the execution of your applet or application (e.g.
init for an applet, run for a thread, a constructor for an already loaded class, etc.) AND that method has been
executed, then you need to restart the applet or application. The debugger does not always detect this case and
you may not get a prompt to restart. Also, if you modify static initializations, then you need to restart the app
as static initialization is done once the class is loaded. The environment does detect this case and presents the
user with the appropriate prompt.
See the Online Help or User's Guide for more features and expected behavior using incremental debugging.
Stepping out of event
handler code in Netscape
Stepping out of an event handler while debugging in Netscape eventually leads to a crash in the browser.
Continuing to step out of the event handler causes you to end up in the EventDispatchThread.java
file of Netscape's runtime. If you end up in Netscape's runtime while stepping out of an event handler (this
will be obvious when the source no longer matches), select Debug | Continue from Visual Cafe's menu or click the
Run in Debugger button in the Debug toolbar to resume execution.
Terminating Remote Debugging
Sessions
The debug VM (either debugvm or javaw_g)
will not terminate automatically at the end of a remote debug session when the following conditions exist:
You can manually close the debug VM by pressing Ctrl-C in the console window on the machine where the debug VM was started. You can also use the Task Manager to terminate the debug VM. Remote sessions which are not paused in the remote VM will be terminated successfully.
Unavailable source files
when debugging in Web browsers
Occasionally, when debugging in Web browsers, actions may lead to an attempt to open source files which are not
available. In such cases, simply dismiss the Open File dialog box and continue debugging by choosing Debug | Continue
or the Run in Debugger button in the Debug toolbar to resume execution.
Using the Visual
Cafe debugger against a non-Symantec VM
There are certain features and commands in the Visual Cafe debugger that require a Symantec modified VM order to
work properly. These features are:
1. Pausing the app in the debugger while it is executing via the Debug | Pause command.
2. Expression Evaluation. This includes the following:
3. Incremental debugging, including the Debug | Update Now command and modifying a file and saving it to invoke
the patch mechanism in the debugger.
4. Method restarting. This is the ability to pop out of a method to "restart it". This includes the Debug
| Restart Method menu item.
5. Decompiling support. When using a decompiler to see source code for classes that do not have debug info, you
must be debugging in Visual Cafe using a Symantec modified VM with the appropriate Redefine class support added.
If you are in a situation in Visual Cafe where you are debugging your classes inside a VM that has not been modified
by Symantec, then the above commands and features may or may not work. In some cases, the UI does grey out the
appropriate menu items, but does not for all cases. Circumstances when debugging inside a VM that does not support
the above commands and features include:
1. In the Virtual Machines tab of the Environment Options you specify a non-symantec VM (like JDK1.2 etc.) and
use this VM in Visual Cafe.
2. You invoke the "debug in waiting VM" command and attach to a VM that is a non-symantec VM (like a
VM on unix or a JDK1.2 VM etc.).
In general, it is best to avoid the above features and commands when you are debugging in a non-symantec VM.
A: The key mappings for the text editor for Visual Cafe 3.0a have been updated to match many other common
Windows editors. To get the familiar key mappings from earlier versions of Visual Cafe, go to the Keyboard tab
of the Environment Options dialog and select "vcafe2" from the File drop-down list.
Q: When I open a project in the Form Designer, the dialog for Dial Up Networking appears. If I log on, all
is well. If I cancel, Visual Cafe "hangs" for several minutes.
A: The use of relative URLs (for example, IMAGES/test.gif) can cause this behavior on some systems. To avoid
it, use absolute URLs (for example, file://C:/.../PROJECT/IMAGES/test.gif) during design time and then switch to
relative URLs for deployment.
Q: I would like to distribute my applications created with Visual Cafe along with the Symantec Virtual Machine.
Do I need to obtain a license to distribute the Symantec JIT/JVM?
A: The Symantec JIT and JVM included with Visual Cafe are not redistributable. JavaSoft has licensed the
Symantec JIT for redistribution in the JRE. The JRE is Sun's Java Runtime Environment and is freely redistributable.
Please visit http://www.javasoft.com for more specific information regarding
the JavaSoft JRE.
Native compiler
When using third party classes (and components) in a native code compiled project, you must do one of the following
two tasks:
Native compiler and Visual Cafe 1.x and Cafe 1.x
If the sj.exe from Visual Cafe 1.x or Cafe 1.x is specified in the Windows system path before Visual Cafe 3.0a,
an invalid flag error -link will result when using the native compiler. To avoid this error, make sure that the
sj.exe from Visual Cafe 3.0a is specified in the path first.
Win32 Swing Applications
To make a Win32 Swing application, please follow these steps:
1. Choose File | New Project | JFC Application.
2. Choose the Project tab in Project | Options and change the Project Type to Win32 Application.
General
Before running the weblog project sample in Visual Cafe, place the Klg.jar file located in the \VisualCafe\Sourcebook\Weblog directory in the component library. If the weblog project is to be run from the command line, Klg.jar must be placed in the system CLASSPATH.
User's Guide
Page 4-62 of the Users Guide's states: "Or, if you've used the Javadoc Editor at least once, in the Files
view of the Project window, right-click a file and choose Edit Javadoc Comments."
The correct wording should be: "Or, you can right-click a file and choose Edit Javadoc Comments."
All Books
The icons that appear in the New Project dialog and the project templates in the Component Library are different
in the shipping product than in the documentation.
3.0a
Resolved, added, and enhanced various other features and bugs.
Please refer to the newsgroups under:
symantec.support.itools.win.vcafe3.compilation
symantec.support.itools.win.vcafe3.database
symantec.support.itools.win.vcafe3.deployment
symantec.support.itools.win.vcafe3.development_environment
symantec.support.itools.win.vcafe3.distributed
symantec.support.itools.win.vcafe3.execution
symantec.support.itools.win.vcafe3.installation_upgrade
symantec.support.itools.win.vcafe3.other
2. Free Web-based discussion group support is available for as long as you own Visual Cafe on Symantec's
Web site.
Please refer to the discussion groups under:
Please send bug reports to:
3. If your User ID and Password become inoperative, please send e-mail notification to Customer Service at:
with your name, address, daytime phone number, ID and password. Please type "Visual Cafe" in the subject
field. We will respond shortly thereafter.
4. Your Visual Cafe ID set is located on the CD cover and is required to download updates from http://www.symantec.com/domain/cafe/downloads.html.
If you have lost your Visual Cafe ID set, please send notification to Customer Service at:
In the event that your information does not appear in our registration database, we will provide additional
avenues for verification of ownership.
5. For CD purchases or damaged disks, please call Customer Service at (800) 441-7234.
Thank you for using Visual Cafe 3.0a. We are confident that this product will enhance and improve the productivity
of your development efforts.
Sincerely,
The Symantec Internet Tools Team