64-bit Software

Beginning with Version 2010 release 2, Altova offers both 32- and 64-bit versions of all applications included in Enterprise and Professional Editions of the Altova MissionKit, and in Enterprise Editions of Altova Authentic. This page provides important information about the advantages, differences, and dependencies of 64-bit software that you should consider as you decide whether a 64-bit or 32-bit version is best for your needs.

Why 64-bits?

Many modern software development and data processing environments are running up against a built-in memory limitation. Current and previous 32-bit versions of Microsoft Windows can only allocate a maximum of 2 GB of memory to each running process, regardless how much real or virtual memory is available on a particular machine. Translated to the real world of XML development, this means XML files larger than 100 to 200 MB (depending on complexity) can not be opened at all.

A 64-bit system is not subject to the same memory limitation. A 64-bit processor has a theoretical maximum addressable memory size so large it is measured in multiple petabytes (1 petabyte = 1 million gigabytes). Currently, 64-bit versions of Microsoft Windows 7 support up to 192 GB of installed memory. In practice, the maximum size XML file an individual user of a 64-bit application will be able to process is limited only by the amount of installed physical memory.

The screenshot below shows a 2.7GB file open in the 64-bit version of XMLSpy. This XML file contains the Wikipedia abstract XML feed and is over 35 million lines long.

A very large file open for editing in the 64-bit version of XMLSpy

(Even without enough physical memory, very large files can be processed by 64-bit systems using virtual memory, although significantly more slowly.)

Additionally, files smaller than 100 MB can be processed more efficiently by a 64-bit system that has a large amount of physical memory, because the system can maintain a much larger cache of hard disk data in memory.

Frequently Asked Questions about 64-bit Software

Below are answers to the most frequently asked questions (FAQ) about 32-bit vs. 64-bit software.

  • Will a 32-bit application run on a 64-bit version of Windows?

    Yes. Be aware, however, that Altova version 2010 is the earliest release compatible with Windows 7.

  • Will a 64-bit application run on a 32-bit version of Windows?

    No.

  • How can I tell if my system is running a 32 or 64-bit version of Windows?

    Open the Windows Control Panel, Select Classic View (Vista) or Icons (Windows 7), then open the System icon. The line labeled System type will specify either “32-bit Operating System” or “64-bit Operating System.”

  • My system is running a 64-bit version of Windows. Should I use 32-bit or 64-bit software applications?

    It depends. You will want to consider the additional information explained in detail below.

Installation Options

Starting with version 2010 release 2, valid keycodes for Enterprise and Professional Editions of Altova applications support both 32-bit and 64-bit versions. This feature enables flexibility in several important ways:

  • Upgrade path – A user currently running a 32-bit system must install 32-bit versions of Altova software. Later on, when the user upgrades to a 64-bit workstation, the 32-bit version can be uninstalled from the old system and the same keycode permits installation of the 64-bit version on the new 64-bit machine.
  • Mixed environments – A multi-user keycode works effectively in mixed environments. For instance, a 10-user keycode can support some users running the 32-bit version and others running the 64-bit version, in any combination required by the workgroup.
  • Mixed requirements – An individual user currently running a 64-bit system can install the 32-bit and 64-bit versions of Altova applications on the same workstation, using a single valid keycode.
  • This means a developer can install any or all the applications in the entire Altova MissionKit bundle in both 32-bit and 64-bit versions and choose the appropriate version for each task. For instance, the 32-bit version of MapForce may be required to connect to a database due to a driver limitation. Later that day, the developer could launch the 64-bit version of XMLSpy to work with a very large XML file.
  • To avoid confusion, 64-bit versions of each Altova application are identified in the desktop shortcut name, the Status Bar at the bottom of the application window, and in the About splash window.
  • The screenshot below shows the and 64-bit versions of the XMLSpy splash screen and Status Bar.
Splash screen and status Bar for XMLSpy 64-bit version

Issues Inherent to 64-bit Software:

Memory Requirements

A 64-bit application will require more memory to open any particular file than a 32-bit application, because the address sizes of memory pointers and other structures automatically become larger. A rule of thumb for XML files is that memory consumption grows by about 50 to 60%. This means a user should have a minimum of 4 GB of memory installed to benefit from a 64-bit application.

Connectivity to Databases

In general, a 64-bit application requires a 64-bit driver for database connection. Here are some more specific concerns:

  • ODBC – Only 64-bit versions of ODBC drivers can be used with 64-bit applications. Users can find out what ODBC drivers are installed on a particular machine by using the ODBC configuration tool. There are two driver configuration tools on a 64-bit machine. Both are confusingly named “odbcad32.exe” but are located in different folders:
  • Windows\system32\odbcad32.exe manages 64-bit versions of ODBC drivers
  • Windows\sysWOW64\odbcad32.exe manages their 32-bit counterparts
  • Other databases – Some databases do not yet have a 64-bit driver. Others have driver installation issues, or are not yet compatible with Windows 7. Please refer to the individual database developer Web sites for more information.

Using 64-bit Applications with Microsoft Access Database Files

The Microsoft Jet database engine dates back to Windows 95 or earlier and was the original underlying database engine for *.mdb files created with Microsoft Access. Versions of Jet are contained in all editions of Microsoft Windows through Windows 7 and are used by 32-bit applications to connect to Access databases contained in *.mdb files.

Beginning in Office 2007, Microsoft Access gained a new file format with file extension *.accdb and additional functionality. Access 2007 (and later) database files are supported by the new Microsoft ACE (Access Database Engine) driver.

The Microsoft Jet database engine is considered a deprecated product. Although it is still contained in Windows 7, no plans have been announced for it to be ported to a 64-bit version. The Microsoft ACE database engine is available in a version for 64-bit systems and can be downloaded directly (driver only) at:

The Microsoft ACE database engine can also be downloaded as part of the x64 version of Microsoft Office 2010 at:

There is currently an unfortunate limitation of the 64-bit ACE driver – it cannot co-exist with 32-bit versions of Microsoft Office.

The 64-bit versions of Altova MissionKit applications currently require the x64 Microsoft ACE driver to open Access databases, regardless of whether the file extension is *.mdb or *.accdb.

Existing files created with 32-bit versions of Altova applications, such as MapForce mappings or StyleVision stylesheets, may contain connection information that specifies the 32-bit Jet OLEDB provider (Microsoft.Jet.OLEDB.4.0). Altova 64-bit applications will automatically convert these older files to ACE driven connections (Microsoft.ACE.OLEDB.12.0). Users only need to install the 64-bit ACE driver, as described above.

Source Control Systems

Altova has implemented the Microsoft Source Code Control Interface (MSSCCI) v1.1 – v1.3 in XMLSpy and UModel and has tested support with the many popular revision control systems. In addition, DiffDog can easily be configured to serve as the default diff/merge tool when a stand-alone versioning system is used.

Because most SCC clients do not have 64-bit versions, Altova delivers special SCC bridge software that allows 64-bit versions of Altova applications to use SCC 32-bit clients. This bridge is tightly integrated and works transparently from user’s perspective whenever a 64-bit SCC client is not available.

Browser Plugins

A 32-bit browser requires 32-bit plug-ins and a 64-bit browser requires 64-bit plug-ins. Currently only Internet Explorer is available in both versions, therefore Altova Authentic Browser Plug-ins for Internet Explorer are also available in both 32 and 64-bit versions. FireFox is currently only available as a 32-bit application. Sample HTML code is published in the documentation for the Authentic Browser Plug-in that shows how to embed instructions in an HTML page to download and install the correct version of the Authentic Browser Plug-in.

Visual Studio and Eclipse Integration

Visual Studio is only available as a 32-bit application. Therefore Altova Integration Packages for Visual Studio are also only available in 32-bit versions.

Since Visual Studio is only available in a 32-bit version, you must install the 32-bit version of XMLSpy, MapForce, StyleVision, UModel, or Authentic to run inside Visual Studio for seamless integration into the workflow of the IDE. You must also install the 32-bit version of the corresponding Integration Package, regardless whether you have a 32-bit or 64-bit version of Windows.

Eclipse is available as a 32-bit and a 64-bit application and requires a corresponding plug-in. Altova has offered 32-bit Eclipse Integration Packages for Eclipse since the release of Version 2007, and currently offers integration components for both the 32-bit and 64-bit versions.

Microsoft Word Integration

Microsoft Word is available in 32-bit and 64-bit versions. Altova StyleVision renders and displays advanced reports in Microsoft Word 2007+ (OOXML) and .rtf formats, among others. Altova DiffDog includes a special comparison feature for Microsoft Word 2003 and later documents.

To display Microsoft Word documents in either StyleVision or DiffDog, the version of Microsoft Word displayed on its Help screen must match the version of the installed Altova tool. In other words, if you're using a 32-bit of Microsoft Word, you must use a 32-bit version of StyleVision or DiffDog. If you're using a 64-bit version of Word, you must use a 64-bit Altova tool.

ActiveX Interfaces

An ActiveX interface can integrate the user interface and functionality of an Altova application in your own application. If your application is a 32-bit application, you will need to install a 32-bit version of Altova software. For your 64-bit application, a 64-bit version of the Altova software is required.

COM Interfaces

COM interfaces automate the functionality of Altova applications through the API without user interface integration. By default, Windows will make a 32-bit COM visible to a 32-bit application and 64-bit COM to a 64 application. A mixed use is possible, but requires some additional work: if, for example, you have only installed a 64-bit version of Altova software and want to use it from your 32-bit application, you need to do the following:

connect to an application:
 
	CComPtr < IUnknown > ipApplication;
	HRESULT hRes;
	DWORD dwClsContext = CLSCTX_ALL;
	hRes = ::CoCreateInstance( m_clsidOfApplication, NULL, dwClsContext, IID_IUnknown, 
		(void **)&ipApplication.p );
	if ( !SUCCEEDED( hRes ) )
	{
#if defined( _WIN64 )
		dwClsContext |= CLSCTX_ACTIVATE_32_BIT_SERVER, 
#else // _WIN64
		dwClsContext |= CLSCTX_ACTIVATE_64_BIT_SERVER, 
#endif // _WIN64
		hRes = ::CoCreateInstance( m_clsidOfApplication, NULL, dwClsContext, IID_IUnknown, 
			(void **)&ipApplication.p );
	}
 
	if ( SUCCEEDED( hRes ) )
	{
		// some code
		...
	}
 
 	
 
open CLSID in correct view:
 	
	LONG OpenCLSID( LPCTSTR  strCLSID, REGSAM samDesired, hObjCLSIDKey )
	{
		HKEY hCLSIDKey;
		LONG rc = RegOpenKeyEx( HKEY_CLASSES_ROOT,_T("CLSID"), 0, samDesired, &hCLSIDKey );
		if ( rc == ERROR_SUCCESS )
		{
			LONG lRet = RegOpenKeyEx( hCLSIDKey, strCLSID, 0, samDesired, &hObjCLSIDKey );
			RegCloseKey(hCLSIDKey);
			if ( lRet != ERROR_SUCCESS && samDesired == KEY_READ )
			{
#if defined( _WIN64 )
				samDesired |= KEY_WOW64_32KEY;
#else // _WIN64
				samDesired |= KEY_WOW64_64KEY;
#endif // _WIN64
				// try other view
				rc = OpenCLSID( strCLSID, samDesired, hObjCLSIDKey );
			}
		}
		return rc;
	}
	...
	HKEY hObjCLSIDKey;
	if ( OpenCLSID( < a class id > , KEY_READ, hObjCLSIDKey ) == ERROR_SUCCESS )
	{
		// one can now open subkeys using this key as parent
		...
	}

Please note that when calling each other, Altova applications will try to call a corresponding version, but if the corresponding version is not found, the opposite one will be called when available. This means, for example, if you have installed a 64-bit version of MapForce and a 32-bit version of XMLSpy, they will be able to call each other in order to edit an XML Schema referenced in a MapForce mapping in XMLSpy, or to execute a MapForce transformation from within an XMLSpy project.

Customers Say

“I have learned that there is no substitute for quality tools. And truly, your MissionKit suite is a quality tool, easily the single best resource for enterprise development that I have ever encountered, and in itself a prime example of how software should be written. My sincere compliments on an excellent product.”

Thomas D. Blersch Senior Software Engineer, Exeter Government Services LLC