598f5c8e7c916794b9537c6a8394d6d9.ppt
- Количество слайдов: 78
EM 410 Upgrading Your SQL Anywhere Studio Applications Robert Waywell Senior Product Support Engineer i. Anywhere Solutions Rwaywell@sybase. com
Objectives Focus on behavior and architectural changes rather than new features. Develop an understanding of necessary changes to migrate an existing SQL Anywhere Studio application from SQL Anywhere 5. 5. x, Adaptive Server Anywhere 6. x or 7. x software to Vail. Determine when and how to upgrade the database file.
Topics Introduction Upgrade Tools Client-Server Applications SQL Remote Applications Mobi. Link Applications Ultra. Lite Applications Required Files
Introduction 1) A 5. 5. x, 6. x, or 7. x database file can be loaded on an 8. 0 database engine without being upgraded. 2) The benefits of many new features can be obtained without upgrading the database file. e. g. Multi-processor support Improved Network Communications Enhanced optimizer Thinner client layer Dynamic Caching 3) Even if the database file is not upgraded, upgrading the software can introduce new behaviors.
Introduction Upgrading can involve multiple layers and components: - Front-end Application Operating System Hardware SQL Anywhere Studio Software Database File
Reasons to Upgrade Software Performance Improvements Platform Support - New OS versions are only supported by current versions of released software. Improved Stability - Reduced chance of corruption - Bug fixes are made in current versions, only back ported to active versions - More robust DBValid SQL Anywhere Studio Supported Platforms and Support Status http: //my. sybase. com/detail? id=1002288
Utility Changes DBISQL and Sybase Central now Java based. - Use JDBC rather than ESQL - Use TDS instead of Cmdseq communications protocol ASA User's Guide PART 6. The Adaptive Server Family CHAPTER 33. Adaptive Server Anywhere as an Open Server Characteristics of Open Client and j. Connect connections
Reasons to Upgrade the Database File Functionality requires it. e. g. SQL Remote required changes to system information between 6. x and 7. 0 Integrity Check e. g. Catch invalid date values (pre-5. 5. 03 bug #446424) Performance Improvements - Separate Primary Key/Foreign Key structures - New index structures for long indexes - HASH SIZE, Patricia Trie - Enhanced Statistics - Modify Page Size - If database has grown, a larger page size may be more appropriate
Upgrade Practices 1) Always make a full backup before starting an upgrade. 2) Benchmark performance. 1) Check the PLAN() function for key queries. 2) Measure performance of your standard tests. 1. 3) If you will be using DBUpgrade ensure that you run DBValid. 1. Should be part of your regular backup strategy.
Upgrade Practices (cont) 4) Test Many intentional behavior changes. Fix bugs Improve compliance to standards Unexpected side effects. May have been well intentioned. May be a combination of changes. Application may have been coded to a bug. Reliance on non-static features. e. g. Error message text Assertion Numbers
Upgrade Practices (cont) 5) ODBC Datasources Need to be recreated. 1. Even if not using ODBC, may need to modify startup and connection parameters. 1. 6) Between 5. 5. x and 6. 0, moved from a proprietary installation program to using Install. Shield. 1. Install. Shield has a silent install feature that lets you record a response file to replay. 2. Also provide template Install. Shield scripts to install common components.
Topics Introduction Upgrade Tools DBUpgrade DBUnload Client-Server Applications SQL Remote Applications Mobi. Link Applications Ultra. Lite Applications Required Files
DBUpgrade What it does Updates the system tables, provides new database options, adds or modifies system procedures. This process is not recoverable. You must: 1) Perform a full backup before starting the upgrade. 2) Perform a full backup after completing the upgrade. When to use it When upgrading the database in-place. When changes to the physical file format are not important. Possibly when upgrading for platform support.
DBUpgrade (cont) Limitations Does not modify the physical file format. • No benefit from: • Separate Primary Key – Foreign Key structure. • Enhanced Index Structures • Improved statistics recording Does not validate the data. • Only modifies the necessary system objects
DBUnload What it does Unloads data and schema, generating a SQL script and . dat files. When to use it When you want to take advantage of changes to the physical data store. Process of unloading and reloading the database both validates and defragments the data. Creating and loading the new database Completed by reading the SQL script via ISQL
DBUnload - Limitations Some pieces of schema were previously stored verbatim. This can lead to problems in reloading views that require qualified table names. grant connect to rob identified by sql; grant dba to rob; connect rob; create table test ( row_id int default autoincrement primary key, row_text char(30) ); create view test_view as select row_id, row_text from test;
DBUnload – Limitations (Views) In Pre-5. 0. 02 databases, the table referenced in the view would not be qualified with the owner id (“rob”) before being stored in the database. To get around this: 1) Undocumented –hu switch on DBUnload • In the reload. sql file, writes out a SET CONNECTION statement before the CREATE VIEW statement 2) Edit reload. sql 1) GRANT GROUP to all users that own database objects 2) GRANT MEMBERSHIP IN GROUP <. . > TO DBA • This will work for as long as no object names are repeated with different owner id’s. • e. g. “rob”. ”t 1” and “DBA”. ”t 1”
DBUnload – View Dependencies Views may reference other views. If views have been created dropped, recreated, then they may be “out of order” in the system table CREATE VIEW v 1 … CREATE VIEW v 2 … DROP VIEW v 1 CREATE VIEW v 3 … CREATE VIEW v 1 … DBUnload –j
DBUnload – Database Initialization DBInfo Log File Mirror Log File Compression Page Size Encryption Blank Padding Case Sensitivity Collation Sequence Characteristics not covered by DBInfo j. Connect Support Java Support JDK Version Sys. syscolumns & sysindexes views
DBUnload – Database Initialization (cont) Test for: j. Connect Support SELECT * FROM systable WHERE table_name LIKE 'jdbc%‘ Note: 7. 0 and above use Java version of DBISQL and Sybase Central Java Classes SELECT * FROM sysjar - file will be empty if Java classes are not installed JDK Version 5. 5. x – No Java in the database 6. x - JDK 1. 1. 6 7. x - JDK 1. 1. 8 8. x - SELECT db_property(‘JDKVersion’)
DBUnload – Database Initialization (cont) Default collation sequences changed Default collation depends on OS that the database is initialized on. SELECT PROPERTY( 'Default. Collation' ) “Internal” collation used in 5. 5. x has been deprecated and replaced by 850 Latin 1 DBUnload –ar … will use 1252 Latin 1 when creating the new database
DBUnload – SQL Remote Systems 1. Need to maintain log offset information SQL Remote User's Guide 11. Administering SQL Remote for Adaptive Server Anywhere Transaction log and backup management Unloading and reloading a consolidated database • Instructions apply to both consolidated and remote databases 2. New system users added in Version 6. 0 Can not use DBUnload –a? switches Must do a manual unload/reload May get an error “at least one user in this database has a user id which does not match its orig” If you get this error, you should compare the sysuser table in the new database to the original database.
Topics Introduction Upgrade Tools Client-Server Applications Architecture Behavior Changes SQL Remote Applications Mobi. Link Applications Ultra. Lite Applications Required Files
Architecture At this point, let’s look at how the file components have changed between versions and how this impacts both the files required for deployment and the way these components interact. Version 5. 5. x 6. x 7. x 8. x
Version 5. 5. x Standalone Engine ODBC Translator Wtr 50? . dll Client Application ODBC Driver Wod 50? . dll Language DLL Wl 50? ? . dll ESQL Library Dbl 50? . dll Client-Server Dbclien? . exe Language DLL Wl 50? ? . dll TCPIP IPX Net. Bios Net. Beui Database Server Dbsrv 50? . exe Language DLL Wl 50? ? . dll Shared Memory Named Pipes DDE HLI Database Engine Dbeng 50? . exe Language DLL Wl 50? ? . dll
Version 5. 5. x – Key Points 1. ODBC driver works through the ESQL library In this context, ODBC was not a “native” interface to the database engine 2. DBClient is a separate process This model was a good choice historically when inter-process communication was relatively inexpensive 3. The language dll is used by several different components and contains language specific resource strings Maintaining these strings in a separate component facilitates internationalization
Version 6. x Personal Server (Standalone Engine) ODBC Translator Dbodtr 6. dll Dbsrv 6. dll Client Application ODBC Driver DBODBC 6. dll Client Application Language DLL Dbl? ? 6. dll Shared Memory Named Pipes ESQL Library Dblib 6. dll Client-Server Dbport 6. dll TCPIP IPX Net. Bios Net. Beui Database Server Dbsrv 6. exe Language DLL Dbl? ? 6. dll Dbsrv 6. dll Database Engine Dbeng 6. exe Language DLL Dbl? ? 6. dll
Version 6. x – What Changed? ODBC is now a native interface, that communicates directly with the database engine independently of the ESQL library One layer of translation has been omitted Network communications are now handled through a dll rather than through a separate process On current operating systems, intra-process communication is more efficient that inter-process communication making this model more efficient than the 5. 5. x model
Version 6. x – What Changed? (cont. ) The internal communications protocol between the client components and the database server also changed at this time with the side effect that the 5. 5. x client cannot communicate directly with the 6. x server A client side compatibility library is available that allows 5. 5. x client applications to communicate with a 6. x server This library replaces the original dbl 50? . dll For local machine connections, DDE and HLI are no longer supported interfaces
Version 6. x – 16 -bit Applications When a 16 -bit application thunks up to a 32 -bit ODBC driver, the 32 -bit ODBC driver is now part of a 16 -bit context According to Microsoft Knowledge Base article# Q 140697: “This means that no Win 16 application running on Windows 95 can use a Win 32 driver that issues any threading commands. ” 16 -bit applications that previously ran on Windows 95/98 by thunking up to the 32 -bit ODBC driver, you will now be limited to using the 16 -bit ODBC driver for network connections - 16 -bit applications on Windows NT and 2000 can use thunking and connect across the network Since no 16 -bit client support is available in ASA 7 or Vail, 16 -bit applications would be limited to using a 6. x or lower 16 -bit client to connect to the Vail server
Version 7. x Personal Server (Standalone Engine) ODBC Translator Dbodtr 7. dll Dbsrv 7. dll Client Application ODBC Driver DBODBC 7. dll Client Application Language DLL Dbl? ? 7. dll Shared Memory Named Pipes ESQL Library Dblib 7. dll Client-Server TCPIP SPX(IPX) Net. Bios Net. Beui Database Server Dbsrv 7. exe Language DLL Dbl? ? 7. dll Dbsrv 7. dll Database Engine Dbeng 7. exe Language DLL Dbl? ? 7. dll
Version 7. x – What Changed? The dbport 6. dll which previously handled network communications has been eliminated and this functionality has been rolled up into the dbodbc 7. dll and dblib 7. dll The exception is that IPX (as opposed to SPX) support is still maintained in a separate dll since it has been deprecated This step simplifies the EBF process for client applications by eliminating one file from the deployment list
Version 8. x Personal Server (Standalone Engine) ODBC Translator Dbodtr 8. dll Dbsrv 8. dll Client Application ODBC Driver DBODBC 8 dll Client Application Language DLL Dbl? ? 8 dll Language DLL Dbl? ? 8. dll Shared Memory Named Pipes ESQL Library Dblib 8. dll Client-Server TCPIP SPX(IPX) Net. Bios Net. Beui Database Server Dbsrv 8. exe Language DLL Dbl? ? 8. dll Dbsrv 8. dll Database Engine Dbeng 8. exe Language DLL Dbl? ? 8. dll
Version 8. x – What Changed? No significant changes in the file components required to deploy an 8. x client-server application relative to a 7. x client-server application The previous slides have highlighted the differences between major versions and the core files required for deployment Additional files would be required to support External Function Calls, Java in the database, NT Performance monitor
Topics Introduction Upgrade Tools Client-Server Applications Architecture Behavior Changes SQL Remote Applications Mobi. Link Applications Ultra. Lite Applications Required Files
Behavior Changes Behavior Changes in in 6. 0 7. 0 Patches 8. 0
Behavior Changes in 6. 0 1. Thread_count option ignored 1. This option specified the number of internal tasks to be used by the engine to process queries 2. Only relevant at the engine/server level 3. Specified by –gn switch on the server 2. Max_statement_count 1. Introduced in 6. 0 2. Limits the number of prepared statements per connection 3. Default is 50, to disable it set it to 0
Behavior Changes in 6. 0 (cont) Max_cursor_count - Introduced in 6. 0 - Limits the number of cursor in use by a given connection - Default is 50, to disable it set it to 0 1. Licensing 1. As of 6. 0, the server limits the total number of client connections for both Per Seat and Concurrent User licenses 2. DBLic utility lets you re-license the database server
Behavior Changes in 6. 0 (cont) TCPIP Connections - In 5. 5. x actually used UDP, not TCP - 6. 0 uses UDP for broadcasts, but uses TCP once the connection is established - May require changes to the configuration of firewalls, routers and gateways 1. Default Port Number Changed 1. was port 1498 in 5. 5. x, 2638 in 6. 0 and above 2. Database Starting Permissions 1. controlled by the –gd switch 2. Default is different between the Personal Server and Network Server 3. To get the same behavior as in 5. 5. x need to specify “–gd all”
Behavior Changes in 6. 0 (cont) DBTOOL statement dropped 1. provided access to the database utilities 1. DBBackup 2. DBValid 2. In 5. 5. x this functionality was available through ISQL 3. As of 6. 0, functionality was incorporated in the database engine 4. Requires changes to any scripts that previously used the DBTOOL statement
Behavior Changes in 6. 0 (cont) 1. TSQL Outer Join Changes 1) “A table cannot participate in both a Transact-SQL outer join clause and a regular join clause” WHERE R. x *= S. x AND S. y = T. y 2) “You cannot use a subquery that contains the null-supplying table of an outer join” WHERE R. x *= S. y AND EXISTS ( SELECT * FROM T WHERE T. x = S. x )
Behavior Changes in 6. 0 (cont) % Comments 1. unload with the same version that you will be running the reload 2. Stored procedures may need to change 3. Percent_as_comment database option 1. Default is ON to give historic behavior 1. Nearest_century 1. Default changed from 0 to 50 2. Anything > 50 assumed to be 19 xx 3. Anything < 50 assumed to be 20 xx
Behavior Changes in 6. 0 (cont) Global Temporary Tables There may only be 1 user connected to the database, that has referenced the global temporary table at the time you alter it.
Behavior Changes in 6. 0 Summary To make a 6. 0 database/engine look like a 5. 5. x database/engine: Engine Switches -gn
Behavior Changes Behavior Changes in in 6. 0 7. 0 Patches 8. 0
Behavior Changes From ASA 6 to ASA 7 Deprecated and Unsupported Features Behavior Changes
Deprecated and Unsupported Features in 7. 0 Win 3. x and Win. CE 2. 0 no longer supported IPX protocol deprecated SPX is the preferred alternative NUMBER function deprecated A modified, safer version of this function is provided in Vail Deprecated network communication parameters Broadcast and Comm. Auto. Stop no longer have any effect No DBClient compatibility executable
Behavior Changes in 7. 0 ISQL Changes Default version of ISQL became a Java version INPUT statement • Dropped support for DIF and WATFILE file formats • Added support for EXCEL file format OUTPUT statement • Dropped support for DIF, TEXT, and WATFILE file formats • Added support for EXCEL and HTML file formats Server name space changes Starting with 7. 0, a client connection is able to find a server by name even if it is running on a port other that the default port of 2638 The side effect of this change is that you can no longer start 2 servers using the same name, but on different ports within the same visible network.
Behavior Changes in 7. 0 (cont. ) No separate network ports library The functionality in the client-side library dbport 6. dll has now been included in the dblib. X. dll or dbodbc. X. dll This change reduces the number of files that must be deployed for client installations Since this file had to be the same build as the client libraries, there was limited benefit to maintaining it as a separate library Path settings The names of the command line utilities do not include a version number This means that if you have multiple versions of ASA on a single machine, then you must qualify the path appropriately to ensure that you start the expected version of the utility In addition, the command line name of the stored procedure debugger has changed to dbprdbg
Behavior Changes in 7. 0 (cont. ) Connection Behavior Change - Same machine connections typically use shared memory - Previously, if Commlinks parameter was specified, and no server was found on the specified protocol, then a shared memory connection would be attempted as a fall-back Dbisqlc –c “uid=dba; pwd=sql; eng=myengine; links=tcpip” - Now, we will only look for a server on TCPIP and won’t try shared memory as a default - To get the historic behavior, need to explicitly specify shared memory in the links parameter Dbisqlc –c “uid=dba; pwd=sql; eng=myengine; links=tcpip, shmem” Note: By default the Personal Server starts both Shared Memory and TCPIP listeners.
Behavior Changes in 7. 0 (cont. ) ODBC SQLDescribe. Col Behavior The @@identity field is now described as SQL_BIGINT, previously it was SQL_INTEGER ANSI_UPDATE_CONSTRAINTS Default value is OFF for database files created prior to 7. 0 Default value is CURSORS for database files created with 7. 0 or above This option determines whether a given cursor will allow updates or not If you have upgraded a database file to version 7. x or above by unloading and reloading the database, then you may need to set the value of this option to OFF in order to get the same behavior you had previously expected
Behavior Changes in 7. 0 (cont. ) Identifier Length Limit All identifiers are now limited to 128 bytes, previously, some identifiers were allowed to be longer than 128 bytes. Identifiers include user id’s, table and column names, and the names of other objects in the database. Most identifiers are stored in system tables and are defined as CHAR(128) j. Connect connections There were changes to the way the REMOTEPWD connection field is populated for j. Connect 4. 2 User Defined errors Can now define multiple user defined errors within a stored procedure or batch
Behavior Changes in 7. 0 (cont. ) LOAD TABLE and UNLOAD TABLE security A new server switch (-gl) was introduced to control who could execute these statements The default for a personal server on a non-Unix platform is all The default for a network server on all platforms and the personal server on Unix platforms is DBA To obtain the historic behavior with a 7. x or Vail server then you will need specify: • dbsrv 7 –gl all …
Behavior Changes in 7. 0 (cont. ) @@identity value in triggers Prior to 7. 0, only the last identity value set was available This value is now nested Example: 1) Insert into t 1 -> this table has an identity column and fires a trigger 2) Trigger inserts into t 2 which also has an identity column 3) Within the trigger, the value of @@identity will reflect the value set by the insert in to t 2 4) After exiting the trigger, the value of @@identity will reflect the value set by the insert in to t 1
Behavior Changes in 7. 0 Summary To make a 7. 0 database/engine look like a 6. 0 database/engine: Engine Switches -x ipx to start IPX protocol -gl all to specify the permissions for using LOAD TABLE and UNLOAD TABLE Database Options SET OPTION public. Ansi_update_constraints = ‘OFF’ * Particularly if using DBUnload to migrate the database file since the default for a 7. 0 initialized database is to have this option set to ‘CURSORS’
Behavior Changes in 7. 0 – Summary (cont) To make a 7. 0 database/engine look like a 5. 5. x database/engine: Use the settings specified to make a 6. x database/engine look like a 5. 5. x database/engine plus the settings to make a 7. x database/engine look like a 6. x database/engine.
Behavior Changes Behavior Changes in in 6. 0 7. 0 Patches 8. 0
Behavior Changes Within ASA 7 Patches Aliases must be defined before first reference (7. 0. 2) ODBC autocommit • (7. 0. 0) this was modified to utilize the databases CHAINED mode which executes a COMMIT after each operation • The side effect of this change was that COMMIT’s were executed between statements within a stored procedure • This was a significant change from the previous behavior in which the COMMIT was issued by the ODBC driver which meant that a stored procedure call would execute as a single batch • (7. 0. 1) this change has since been reverted to provide the historic behavior of versions 6. x and below
Behavior Changes Behavior Changes in in 6. 0 7. 0 Patches 8. 0
Behavior Changes in 8. 0 User Supplied Selectivity Estimates Disabled for this beta release Row Ordering Less predictable than previously Must use an ORDER BY clause to ensure order Access plan changes Lower probability of an index being used, however net performance of any given access plan should improve If you have queries that are running more slowly in Vail, then we want to hear about them
Behavior Changes in 8. 0 (cont) Cursor Changes Current behavior now adheres more closely to the defined standards May result in changes in cursor sensitivity which in turn could impact existing applications OPEN CURSOR on insert not supported NUMBER(*) function changes Use of the NUMBER function in a WHERE or HAVING clause will now generate an error The NUMBER function may now generate negative numbers
Behavior Changes in 8. 0 (cont) DBBackup Transactions can now span log files. Benefit is reduced blocking during the backup process. Can no longer assume that all transactions are complete by the end of a log file if truncating the log file as part of an online backup.
Deprecated and Unsupported Features in 8. 0 Deprecated Collations A number of collations have been replaced or dropped Existing databases using these collations will continue to work with the 8. 0 engine The character set conversion functionality can be used to migrate these databases to a current collation via an unload and reload sequence -e switch no longer supported This switch enabled the encryption of the network packets sent between the client and server This functionality has been replaced by certificate based encryption via the –ec switch NONE parameter has been deprecated for the ISQL_PLAN option
Behavior Changes in 8. 0 Summary No current changes in 8. 0 require any switches or options to mimic a 7. 0 database/engine. 8. 0 requires the same switches and options to mimic a 6. 0 or 5. 5. x database that you would use with 7. 0 Remember: Not all changes are configurable. In fact most changes in behavior can not be turned off. Deprecated features are supported in (at least) the version that they were deprecated in. Support for a deprecated feature is not dropped for at least 1 full version.
Topics Introduction Upgrade Tools Client-Server Applications SQL Remote Applications Mobi. Link Applications Ultra. Lite Applications Required Files
SQL Remote Applications DBXtract uses internal reload(7. 0. 0) -. dat file path is now relative to the server - Need to specify –xx to get the historic behavior Message link parameters stored in the database (6. 0. 3) - if not found in the database, will still be read from the registry, . ini file, or environment variable Message format changed (6. 0. 0) - compression of the messages was introduced in 6. 0. 0 - To continue to use messages with the 5. 5. x format, you need to set the database option Compression = -1 SET OPTION public. Compression = ‘-1’
Topics Introduction Upgrade Tools Client-Server Applications SQL Remote Applications Mobi. Link Applications Ultra. Lite Applications Required Files
Mobi. Link Applications (8. 0) Mobi. Link user authentication Must specify –zu+ if not using authentication Client Setup Now use Publications and Synchronization Subscriptions Shutdown DBMLStop will only shut down a server when executed from the same machine. TCP/IP Liveness Keep_alive is now on (1) by default. Mobi. Link & TCP/IP Keep-Alive http: //my. sybase. com/detail? id=1013181
Mobi. Link Applications (7. 0) System tables and scripts previously prefixed with ul_ * are now prefixed with ml_* Stored procedure names also changed: Sp_table_script = ml_add_table_script Sp_connection_script = ml_add_connection_script DBSSrv 6 was renamed to DBMLSrv 7 Synchronization scripts now require a script version
Mobi. Link Applications – Upgrade scripts are provided under: %asany 8%Mobi. Linkupgrade6. 0. x %asany 8%Mobi. Linkupgrade7. 0. x • Readme. txt file in that directory provides instructions on using the scripts • Existing Mobi. Link applications do not need to be upgraded to communicate with a newer version of the Mobilink server Recommended ODBC Drivers for Mobi. Link http: //my. sybase. com/detail? id=1011880
Topics Introduction Upgrade Tools Client-Server Applications SQL Remote Applications Mobi. Link Applications Ultra. Lite Applications Required Files
Ultra. Lite Applications All Ultra. Lite applications need to be recompiled as part of the upgrade process. Ultralite applications do NOT need to be recompiled to upgrade the Mobi. Link server.
Ultra. Lite Applications (8. 0) Running the Ultra. Lite generator automatically upgrades the analyzer components in the reference database. Version 8. 0 Ultra. Lite applications require a Mobi. Link server of version 8. 0 or above.
Ultra. Lite Behavior Changes (6. x - 7. 0) New synchronization function call and data structure 6. x ULSynchronize( &sqlca, m_Emp. ID, ULSerial. Stream(), m_Synch. Parms ); - Limited to 4 parameters - Changing or adding to the parameter list required a change to the function prototype - Any changes to the function prototype would require changes to the Ultra. Lite applications source code
Ultra. Lite Behavior Changes (6. x - 7. 0) 7. x ul_synch_info; ULInit. Synch. Info( &info ); info. user_name = m_Emp. IDStr; info. version = SCRIPT_VERSION; info. stream = m_Stream; info. stream_parms = m_Synch. Parms; info. observer = Observer. Func; ULSynchronize( &sqlca, &info ); - Additional members can be added to the ul_synch_info structure without affecting existing applications
Ultra. Lite Behavior Changes (7. 0 – 7. 0. 1) Dropped support for DOS Now require Code. Warrior 6 or above
Topics Introduction Upgrade Tools Client-Server Applications SQL Remote Applications Mobi. Link Applications Ultra. Lite Applications Required Files
Required Files Version 7. 0 ASA User's Guide PART 5. Database Administration and Advanced Use CHAPTER 28. Deploying Databases and Applications Version 8. 0 ASA Programming Guide 12. Deploying Databases and Applications