Chapter 4: Upgrade Issues and Limitations

Table of Contents | Chapter 1 | Chapter 2 | Chapter 3
This chapter is primarily intended for customers who are upgrading from a previous version of Caché.

Compatibility and Migration Issues

This section describes some upgrade issues.
Note: You cannot revert back to 2.x after you upgraded to 3.2. Therefore, make sure that you have a backup before upgrading.

Versions of Caché on Same Machine

Because of DLL compatibility issues, running multiple versions of Caché on the same machine is not supported. This limitation also applies if you are using a machine as a Caché PC Client. That is, you cannot have Caché 2.x and 3.2 client software running on the same machine.

The Caché 3.2 utilities can be used to configure a 3.1 system. However, if you want to use a single PC client to manage 2.x and 3.2 versions of Caché, the solution is to upgrade the client to 3.2 and install the Caché 2.x utilities that are shipped with 3.2.

You should also load the Caché Studio routines on the 2.x system. This will allow you to edit routines on a 2.x system with Caché Studio.

Caché SQL and Objects Issues

The following sections list some upgrade issues relating to Caché SQL and Objects.

Rebuilding or Redefining Unique and PrimaryKey Indices

In Caché 3.2.1, the default index TYPE for Unique and PrimaryKey indices has changed from KEY to INDEX. For each index that is defined as Unique or PrimaryKey, you must do one of the following:
  1. Option 1 — Rebuild the index to use the new structure.
  2. Option 2 — Use the existing index structure by changing the default TYPE for indices by setting the enviroment variable "uniqueindextype". This changes the defintion of indices that do not have a defined TYPE to the pre-3.2.1 behavior.
  3. Option 3 — Use the existing index structure by changing the defintion of the index.

You MUST choose one of these options. If you do not rebuild the index or change the index definition you will get:

Please keep in mind that this change only applies to indices that are Unique or PrimaryKey.

Option 1: Rebuilding the Index

To rebuild the index:
  1. Recompile your classes.
  2. Use the following two commands to rebuild an index (the SSNindex in the Person class is used as an example):

    >w ##class(Person).%PurgeIndices($LB("SSNindex"))
    >w ##class(Person).%BuildIndices($LB("SSNindex"))

This option is the preferred approach. The new default type for Unique and PrimaryKey indices is much better, but it does require you to rebuild the indices. But if rebuilding the index is not possible, then use Option 2 or 3.

Option 2: Setting "uniqueindextype" For the Old Behavior

To set the "uniqueindextype" environment variable to KEY:
  1. Use this command:

    >w $$SetEnvironment^%apiOBJ("uniqueindextype","key")

  2. Recompile your classes.

Option 2 also affects new indices that do not specify TYPE. These new indices (if Unique or Primary), will use TYPE=key.

Option 3: Changing the Index Definition

To change the defintion of an index to specify TYPE (assuming the SSNindex in the Person class), if the current CDL is something like:
index SSNIndex {attributes=SSN; unique;}
change it to:
index SSNIndex {attributes=SSN; unique; type=key;}
Then recompile the class. Now the class can use the existing index structure. There is no way to specify the "type" of the index in the Caché Object Archtect, so you have to use CDL.

Recreating Views Previously Created Through DDL

Views created through DDL now create classes. The view name goes through the same ID translations that table names go through. View classes will contain a compileafter list which contains the class names corresponding to the table and/or view names in the from list of the view's query.

This means that any Views previously created through DDL must be recreated. There is no conversion for this. The sequence that should be followed to convert:

  1. Drop all DDL-created Views.
  2. Upgrade to Caché 3.2.
  3. Compile all classes.
  4. Recreate views through DDL.
Alternatively, you can do the following:
  1. Upgrade to Caché 3.2.
  2. Kill ^mdd.
  3. Recompile all classes.
  4. Recreate views through DDL.
Most customers who have DDL-created views are from either a DDL installation script or a conversion from a DDL script. For DDL installations, customers should just make sure ^mdd is killed prior to re-installing with the new version. For customers who did a one time DDL conversion, they will have to rebuild their views.

Note that view classes are not automatically recompiled if a class/table the view is based on is recompiled. The developer has to know to manually compile the view class.

Deletion of INT Code

Previously, unless the "k" environment flag was set, the .MAC routines for a class were deleted at the end of a compile, but the .INT and .OBJ were retained. Now, if the flag is not set, both .MAC and .INT routines are deleted.

ODBC and JDBC Catalog Queries

ODBC and JDBC catalog queries accepting a tablename or columnname (or partial) were modified in Caché 3.2 to be case-insensitive.

Stored Procedure Names

Previously, the naming convention for stored procedures used the period (class.procname). In Caché 3.2, stored procedure names use the underscore as a delimiter (class_procname).

Stored Procedure Implementation

Stored Procedures are no longer stored in separate "P"-suffix routines. Instead, the methods are called directly from the Caché SQL server.

The structure of the SQL Stored Procedures table has been changed. It will be necessary to manually delete the old entries from this table prior to recompiling classes. To do this, it will be necessary to kill ^oddPROC using the following syntax in each application namespace:

k ^[<impliednamespace>]oddPROC
where impliednamespace is "^^" followed by the directory path name (or OpenVMS file specification) where the Cache.dat file resides. For example:
k ^["^^c:\cachesys\mgr\user"]oddPROC
Stored Procedures are recreated during class compilation so it is important to do this step prior to recompiling classes.

Port Number Connectivity Changes

InterSystems has been assigned Registered Port 1972 by IANA (Internet Assigned Numbers Authority). Caché 3.2, like Caché 3.1, uses port 1972 as its connection port. With one exception, all Caché 3.2 servers use port number 1972. The exception is the Caché License Server, which uses port 4001.

Because pre-3.1 systems use another port number (such as 6001 for Caché 2.1), pre-3.1 clients cannot connect to a 3.2 server unless one of two changes occur:

For example, assume you have a Caché 2.1.9 server (with the Caché Direct server using port 6001) and numerous Caché Direct 2.1.9 clients that are also configured for port 6001. When you upgrade the server to Caché 3.2, it may take you a while to upgrade all the clients. Therefore, you can start a second SuperServer on port 6001 so that the clients can connect to the server while you begin the client conversion process.

Starting the SuperServer on Another Port

The Caché SuperServer is the process that listens for requests to a Caché server. By default, the SuperServer is started on port 1972. You can use the Caché Configuration Manager to change the port number (click the Advanced tab and then select General). However, it is strongly recommended that you do not change the default port number.

You can run multiple instances of the Caché SuperServer, each on a different port. Therefore, if you need pre-3.1 clients to connect to a Caché 3.2 server on a port other than 1972, you can start up an instance of the SuperServer with the command:

JOB ServerMaster^%CMTP(port):("namespace")
where port is the port number on which this Caché SuperServer will listen, and namespace is the namespace in which it runs. Omit the namespace argument if you want the SuperServer to run in the current namespace.

This example starts up the Caché SuperServer on port 6001 in the %SYS namespace:

JOB ServerMaster^%CMTP(6001):("%SYS")
You can add this JOB command to your user start-up program if you need to maintain backward compatibility with clients that have not been changed to the 1972 port number.

Ideally, however, you should change all clients to connect on port 1972. This method of starting an additional SuperServer is intended to be a temporary solution while you migrate from the old port numbers to the new one.

ODBC Driver Compatibility

Caché 3.2 includes an improved ODBC client driver, which uses 3.2 as its version number. The DLL name for this driver is CACHEODBC.DLL.

Application clients must use this driver against Caché 3.2 servers. When you upgrade the clients to the ODBC 3.2 driver, you must also redefine the existing DSN configuration on the client machine. In particular, make sure that port number 1972 is used.

UDP/DCP Networking Compatibility

If you are going to set up a 3.2 system networked to a 2.x server, keep in mind that the UDP/DCP networking also uses port 1972.

Therefore, Caché 3.2 systems will fail to establish a DCP connection with Caché 2.1.x systems because the 2.1.x systems use port 42502.

Use the Advanced/Network screen in the Caché Configuration Manager to set the local and remote port numbers to 42502 if you need to network to a 2.x server.

Differences in 2.1 and 3.2 Division Licenses

Version 3.1 of Caché, introduced a new license type called a Division license. The Caché 2.1 license type that previously had that name is now called a Department license.

Customers with Version 2.1 Division licenses must exchange them for Version 3.2 Department licenses because the 2.1 Division license will not work with Caché 3.2. There is no charge for the exchange.

When you upgrade a Caché 2.1 server that has a Version 2.1 Division license, the upgraded server will start up in unlicensed mode. At this point, you must use the 3.2 License Wizard to change the license to a Department license. Make sure that you restart the server for the new license to take effect.

If you do not change the license, the 3.2 cconsole.log will have the entry:

V2.1 Division key requires upgrade to V3.2 Department

%USTART and %UHALT Replacements

Beginning with Caché 3.1, the %USTART routine has been replaced by the %ZSTART routine, while the %UHALT has been replaced by %ZSTOP. %USTART and %UHALT are no longer used.

Both %ZSTART and %ZSTOP have these entry points:

Note that during an upgrade from 2.1.x to 3.2, the %UHALT and %USTART routines will get renamed.

Journal File Conversion

You cannot apply a 2.x journal file to a 3.2 system. Likewise, you cannot apply a 3.2 journal to a 2.x system.

However, you can use the JCONVERT utility to convert a 3.2 or 2.1.6 (or later) journal file to a common file format. This file format can then be read and applied to any Caché system with the JREAD utility.

If you wish to use these utilities, you should examine the source code, and modify it for your own purposes, as it may not do what you want in its current form.

Configuring the 2.x Utilities

The Caché 3.2 GUI utilities cannot connect to 2.x systems. To manage a 2.x system, you must use the 2.x GUI utilities (available from the Custom menu of the Caché for Windows installation program).

If you install the Caché 2.x utilities, you must configure the 3.2 client to use port 6001 in order to connect to the 2.x system. To change the default 1972 port number, use the Caché Client Manager (available via the Preferred Server option in the Caché Cube).

Using the Caché Studio on Non-3.x Systems

You can use the Caché Studio to edit routines on these pre-3.1/3.2 systems:

To do so, you must run an installation program (CStudioUpd.EXE) that will install and load the Caché Studio routines on the target server, as follows:

  1. Make sure that Caché Direct is running on the Caché 3.2 server and that you have a Caché Direct connection to the Caché 2.x, DSM, or ISM target server.
  2. Make sure that Caché Direct is running on the Caché 2.x target server. For DSM servers, the Caché Direct component is called VisualM.
  3. From the distribution CD in the CStudio directory, run the CStudioUpd.EXE program by double-clicking on it.
  4. When prompted for a server connection, select the target server and click OK.

Keep in mind that the pre-3.1 Desktop Editor is not supported on a 3.2 system.

Note: The pre- and post-load/save hooks in the Caché Studio only work against Caché 3.1 and 3.2 servers. These hooks, which are described in the Caché Programming Guide, are not implemented on Caché 2.x, DSM, or ISM servers.

Starting the CMT Server on the Pre-3.1 System

Among the Caché Studio routines that CStudioUpd.EXE exports is one that starts the CMT (Caché Master Transport) server. The CMT server is the transport mechanism that Caché Studio uses to communicate between systems. Before you can use Caché Studio on the host machine, you must start the CMT server.

To start the CMT server on a Caché 2.1 server, use this command:

JOB ServerMaster^%CMTP(port)
To start the CMT server on a DSM server, use this command:
JOB ServerMaster^%CMTDP0(port)
To start the CMT server on an ISM server, use this command:
JOB ServerMaster^%CMTIP0(port)
port is the TCP/IP port number on which the CMT server will listen. The default port number is 1972, and is what you should use.

Add this JOB command to your ZSTU or %ZSTART start-up file so that the CMT server is started automatically.

Save Existing Classes Before Upgrading

Before you install the new version of Caché, generate CDL files for any classes that you have defined in the Caché Object Architect. Otherwise, you will be unable to use your existing classes with the new version.

Make sure that you save these files outside the Caché directory tree, so that the install does not overwrite them. Specifically, the installation procedure for upgrades will overwrite the Caché 2.x CacheSys\Objects directory.

Duplicate Labels in ObjectScript Code

Caché ObjectScript routines with duplicate labels will not compile in Caché 3.2. The utility %LBLRDEF can convert routines which have duplicate labels.

Caché Object Architect and Mapping

If you are running Caché 2.1.x or 2.3 with objects, the Caché Object Architect may not start after you upgrade to Caché 3.2. If this occurs, remove the namespace mapping for objects. Note that the namespace will not support ODBC until you removed all ^odd* and all ^m* globals.

Indexed Classes With No Defined Collation

The Caché 3.2 default collation for indices is a new collation type named %SqlString, which keeps all punctuation and uppercases the index. Before 3.2, the default collation type was %String, which stripped all punctuation (except commas) and preserved case.

If you have a given property that has no defined collation and is indexed, you must do one of the following:

Unicode Locks

Be sure that all devices that might display a lock can display unicode characters. The ^LOCKTAB utility displays locks from the lock table, which may include Unicode locks. If you try to display the lock table on a non-Unicode device (such as a telnet terminal using Latin1 network encoding), you will receive a <WIDECHAR> error. The same display on a Unicode-capable network encoding will display properly.

Moving Classes Without Exporting the CDL

If you need to move classes stored in a database, you would typically use the Export CDL feature of the Caché Object Architect. However, if you do not want to move them using CDL (or if the machine you are moving them to does not contain a CDL compiler), you can do it in one of two ways, depending on whether you want to move all classes at once or only selected classes.

Moving All Classes in a Database

Using Programmer mode, you must go into the implied namespace and use the %GOF utility to export the global containing the classes (oddDEF). After using FTP to move the file to the other system, you use the %GIF utility to import the classes.

The following example assumes that your classes are contained in the USER namespace. First, you export the classes.

  1. Use the ZNSPACE command to move to the namespace:

    zn "^^C:\cachesys\mgr\user"

  2. Invoke the %GOF utility:

    ^^c:\cachesys\mgr\user\>DO ^%GOF

  3. Enter the appropriate responses to %GOF (user input is in bold face):

    Write globals to file/tape for fast input to Cache
    Device: C:\CLASSES.GOF
         file format: ("UNW*") => <return>
         Maximum media size (bytes): <return>(No maximum)
    Enter a short description of the contents of this tape or file
    Description: USER classes
    All Globals? No => NO
    Global ^oddDEF
    1 item selected from
    10 available globals
    Global ^<return>

    All globals that are mapped to another namespace will not be saved.
    Use %GO or GUI Cache format to save this data.

    ^oddDEF     17 data blocks written
    17 blocks written in 0 minutes, 0 seconds

  4. FTP the file to the other system using Binary mode.

The second half of the procedure is to import them into the target namespace:

  1. Delete the existing version of the classes before loading the global, because an old version of the classes might exist. Deleting a class also removes related information in other ^odd* globals and removes the ^oo routines for the class:

    USER>DO DeleteAll^%apiOBJ()

  2. Invoke the %GIF utility:

    USER>DO ^%GIF
    Load globals from a file/tape written by %GOF

  3. Enter the appropriate responses to %GIF (user input is in bold face):

    Device: C:\CLASSES.GOF
         file format: ("UR") => <return>
    File written on 06/25/1999 at 04:04PM
    Description: USER classes
    The global(s) included are:
       *^oddDEF
    Globals with a preceding asterisk ('*') already exist in this directory
    What would you like to do with these globals that exist?

    1. Skip inputting globals that exist in this directory
    2. Merge input globals with the existing globals

    Your choice: 1=> 2
    Load this file?: Yes=> Yes
    Loading globals
    Merging ^oddDEF     17 blocks

Moving Selected Classes in a Database

The procedure for moving selected classes is similar to moving all classes. The major difference is the use of the %GOGEN and %GIGEN utilities, instead of %GOF and %GIF.

The following example assumes that your classes are contained in the USER namespace. First, you export the classes. Note that the first subscript is the name of the class you want to export and that V mode (variable length records) is used on the OPEN parameters because binary data is being exported.

  1. Invoke the %GOGEN utility:

    USER> DO ^%GOGEN

  2. Enter the appropriate responses to %GOGEN (user input is in bold face):

    Device: C:\CLASSES.GOG   Parameters: "WNS"=>WNV
    Global ^oddDEF("Class1"
    Global ^oddDEF("Class2"
    Global ^<return>

  3. FTP the file to the other system using Binary mode.

The second half of the procedure is to import the classes into the target namespace:

  1. Delete the existing classes before loading the global:

    USER>DO Delete^%apiOBJ("Class1")

    deleting class Class1 ...
    done.
    USER>DO Delete^%apiOBJ("Class2")

    deleting class Class2 ...
    done.

  2. Invoke the %GIGEN utility:

    USER>DO ^%GIGEN

  3. Enter the appropriate responses to %GIGEN (user input is in bold face). Note the use of V mode for the Open parameters:

    Device: C:\CLASSES.GOF   Parameters: "R"=>RV
    Transfer entire set of files? No=> Yes
    Transferring files on Jun 28 99 at 2:06 PM
    From global ^oddDEF("Class1"
    To global ^oddDEF("Class1"
    Transfer completed
    Transferring files on Jun 28 99 at 2:06 PM
    From global ^oddDEF("Class2"
    To global ^oddDEF("Class2"

    Transfer completed
    Done for this set of files.

Other Changes Affecting 2.x Applications

In addition to the above caveats, the following list of Caché 3.1/3.2 changes may cause a 2.x application to run improperly after an upgrade:

Because of these changes, it is highly recommended that you verify your application against 3.2 before you upgrade.


Limitations

Networking Limitations

Replication

Replication is not integrated with network transaction processing. If a replication server goes down during a network transaction, the SETs and KILLs on the replication server are not automatically rolled back during daemon startup.

Replication does not deal reliably with replication servers that are listed as "Disabled" by the GUI Network utilities. SETs are queued up for any earlier servers in the replication list and then produce an error when attempting to queue a SET for the down server, so the SETs to the down server and any later servers in the replication list are not complete. Accordingly, disabling a server that is used for replication is not recommended.

Note: InterSystems recommends that you use shadowing to replicate your data on another computer rather than the replication technique.

Lock Table Entries for Locks Stored on Other Computers

The value displayed in the PID column for the owner of a lock stored on a remote system is not a PID, but an internal value used by the client system to identify which remote system is holding the lock.

If a namespace change alters the LOCK location for a global, existing locks on the global are not moved to the new location. The process still owns the lock at the old location. Explicit DELOCK requests using the same reference as the original LOCK request do not remove the lock. These locks are removed automatically on the next non-incremental LOCK, because that releases all locks owned by the job. In addition, such moved locks can be explicitly released by using an implied namespace name that references the original lock location.

Netwide DomainSpaces

A DomainSpace Master cannot be a client of another domain controlled by another DomainSpace Master. Configurations where the master is a client of another master are not supported in Caché.

Host Name for NWDS Configurations

If you have a Netwide DomainSpace network configuration, you must specify a host name for each dataset definition. To do so, fill in the Remote System Name field in the Datasets panel of the Netwide DomainSpace Configuration utility.

Starting Network Daemons With Clusters

Enabling the cluster feature does not automatically start up the network daemon. If the network daemon is not running, an attempt to cluster mount a database returns an error similar to this:
Mounting directories ...
ENQ daemon failed to start because could not locate our ethernet address in the network tables
Unable to issue cluster mounts.
Skipping the following db(s):
_APPSVR$DKA200:[QA.CLUSTER]
Nothing left to mount
Therefore, you must start the network daemons with the following two commands:
DO 1^RESTART("YES")
DO ^STRTENQ()
This will allow the clusters to have a medium to talk over when the cluster daemons try to start up.

DDP with DSM Servers Using String Collation

DDP links do not work properly between DSM servers using string collation and Caché. Use another type of link.

GUI Interface Limitations

Caché Explorer Utility

Using Caché Explorer to reference very long data strings (>32 Kb) can cause either a <STORE> error or the utility will crash with an access violation. Use character-based tools to examine such data strings.

A client using the Caché Explorer across a network may fail if the client account does not have access to all the globals in the directory.

Starting Jobs from the Caché Control Panel

A job started from the Caché Control Panel must finish before you can start another job. For example, if you have started a backup from the Caché Control Panel, you must wait to run the integrity checker until after the backup has completed. This limitation does not affect programmatic scheduled actions.

Utility Limitations

ZSAVE and % Routines

Using ZSAVE on a % routine results in a <PROTECT> error unless the current default dataset is where the routine would be saved according to the mapping definitions for that namespace. This is true whether $ZU(39) is in effect or not.

Currently, you cannot ZSAVE % routines to a remote dataset regardless of whether that dataset is the current dataset for the process or not. Attempting to ZSAVE a % routine to a remote dataset results in a <PROTECT> error.

Reading Caché Terminal Logs

If you are using the Unicode version of Caché, you may have problems reading the Caché Terminal log with a Windows 95 version of Notepad. If you do, copy the file to an NT or Windows 98 machine, both of which have Unicode-enabled versions of Notepad.

Other Limitations

SLM Mapping Issues

Subscript ranges in SLMapping definitions must not overlap unless the overlap is fully contained in a prior mapping. If there is overlap, then the latter of the conflicting definitions is discarded and a note is added to the log file.

If you map a single subscript (as opposed to a range), the range implicitly includes any descendent nodes. Assume, for example, that you have two mappings:

("dog") -> dataset A
("dog","poodle"):("dog","shepherd") -> dataset B
The 1st line, ("dog") actually resolves to a range of the form:
("dog"):<a subscript reference which follows dog>
and the 2nd line:
("dog","poodle"): ("dog","shepherd")
is wholly within the prior mapping of ("dog").

However, if instead you had:

("dog") -> dataset A
("dog","poodle"):END -> dataset B
The second mapping would be discarded because the range it maps is not completely within the range mapped by the first mapping. In this case, error messages would be displayed during startup.

Linux Database Limitations

When creating Caché databases on a Linux system, it is recommended that you:

OpenVMS Parameter for Caché

If you are running Caché for OpenVMS, make sure that the OpenVMS parameter PRIORITY_OFFSET is set to 4. Without this setting, the Caché performance will suffer.

COM Port Wiring for Caché for NT

Three-pin wiring (RXD, TXD, GND), such as is common on DTM systems, has been shown not to work on some Caché for NT systems. Changing to a more complete wiring will allow full communication. It has been shown that a cable carrying the following signals works: RXD, TXD, GND, CTS, RTS, DTR, and DSR. On some systems, using only the RXD, TXD, GND, CTS and RTS signals may work.

Journaling and Database Directory Names

In a system using journaling, the journal directory block stores the database directory names (which can be up to 256 characters in length). If the journal directory block becomes full, you get a <SYSTEM> error on every subsequent attempt to mount a new database (implicitly or explicitly).

If you are using journaling and expect to have many local databases, it is recommended that you keep the database directory names reasonably short (such as 32 bytes or fewer). This will reduce the possibility of filling up the journal directory block. A rule of thumb for the acceptable length of a directory name is to divide 8000 by the number of databases.

Using Colons in CDL

In CDL, in the method section, any line that starts with the ":" (colon) character is treated as a label, and the colon character is stripped. Therefore, when using &SQL() and &HTML(), do not start lines with a colon if it has semantic meaning.

Viewing PDF Documents on Windows 95/98 Clients

When you select the "Caché Documentation" link in the Help option of the Caché Cube, the link launches the documentation index page from within an HTML Help Viewer. The index page is named index.html and is located in the CacheSys\Docs folder.

On Windows 95/98 clients, PDF documents may not launch from this page. If this occurs, open the CacheSys\Docs\index.html page with a browser and then open the PDF file directly from the browser.

Note: To view PDF files, you must have Adobe Acrobat Reader 4.x installed on your machine.
Also keep in mind that the HTML Help Viewer is much more restrictive than a browser. For example, it has no mechanisms for adjusting fonts, colors, or any of the other browser settings that people use and expect with HTML. If anyone needs these options when viewing a Caché HTML document, they should open the index.html file with a browser and then select the desired document.

Browser Error Message with Help Documentation and Tutorials

If your default browser is not set for Microsoft Internet Explorer, you may see one of these error messages when choosing the "Caché Documentation" and "Caché Tutorials" selections from Help in the Caché Cube:
Cannot run Help!(2)
Cannot run Tutorial!(2)
To fix the problem, use the Windows Explorer to set the .HTM and .HTML file types to "Microsoft HTML Document 5.0" (for IE 5, for example). Also make sure that your default Internet browser is set to MS Internet Explorer.

Documentation Corrections and Additions

Change in JRNDUMP Utility

Chapter 9 ("Journaling") of the Caché Advanced System Management Guide documents the SELECT entry point for the JRNDUMP utility. This entry point has been phased out. If you attempt to SELECT^JRNDUMP, you will receive a <NOLINE> or <NOROUTINE> error message.

JDBC Driver Installation

The following information is necessary when installing the Caché JDBC driver.

The jar file for Caché JDBC driver is:

CacheSys\Java\CacheJDBC.jar
You need to add this location to your class path.

The name of the driver class to instantiate in the Classforname statement is:

com.intersys.jdbc.CacheDriver
The format of the URL to use in the OpenConnection method is:
jdbc:Cache://machinename:port/namespace[/logfile]
where:
machinename = machine name (e.g., 'MYLAPTOP') or a valid IP address
port = port number (should be always set to 1972)
namespace = Caché Namespace
logfile = optional log file name (e.g., 'jdbc.log')

Configuring Caché for DSM-DDP Networks

To configure Caché 3.2 to register itself on a DSM-DDP network, you must do the following:
  1. Install the InterSystems Packet Driver.
  2. Go to the "Advanced" tab in the Caché Configuration Manager and click the "Network" section. Locate the "DSM-DDP" field.
  3. Fill in the appropriate fields in the "DSM-DDP" field, such as:
    1. For "DDP Host", the Caché system you are configuring must be given a three-letter name that is unique on the DDP network.
    2. For "Ethernet Device Mappings", fill in the network card's Ethernet Address. If the system has more than one network card, be sure to use the network card that the InterSystems Packet Driver is bound to. For NT systems, the Device property can be left blank.
    3. If you intend to advertise Caché 3.2 databases over DDP for other DDP hosts to see, you must define those in the "Mappings for Incoming VolSet/UCI" property. Here, enter a three-letter name for the "Incoming Volume Set" and "Incoming UCI" properties. The Caché database that you are advertising over DDP should be entered in the "Map to Local Direcctory" property. Be sure to enter the drive letter and full path only.
    4. If there are DDP resources being advertised that Caché 3.2 needs access to, enter those DDP resource's volume set under the "Volume Set" property.
  4. At this point, restarting Caché should allow you to see the DDP network. You can use the extended syntax of:
    ^["VOL",UCI"]global
    or you can create a "Database" definition to use remote DDP resources under the "Databases" tab in the Caché Configuration Manager.

Write Daemons on UNIX Systems

The following information should be added to discussions on Caché write daemons:
Some UNIX systems may run multiple write daemons. These will show up in the process list labled WRTDMN. Using more than one write daemon speeds up system performance by improving disk I/O. Caché automatically configures this on UNIX systems that support it.

Table of Contents | Chapter 1 | Chapter 2 | Chapter 3
Top of Page