한국어 Login Register

CUBRID 2008 R2.1 Release Note

Contents

  1. Introduction to CUBRID 2008 R2.1
  2. Getting Started with CUBRID 2008 R2.1
  3. What's New in CUBRID 2008 R2.1
  4. What's New in CUBRID Manager 2008 R2.1
  5. Caution
  6. Bug Report and Feedback

1. Introduction to CUBRID 2008 R2.1

CUBRID 2008 R2.1 operates a database management system with improved performance at a lower cost than do earlier versions, and it supports the following key features which match customer requirements.

l Improved features and performance for large volume data processing

l Enhanced the High Availability feature

l Hierarchical query support

l Increased availability in English furthering global competitiveness

The features and performance related to large volume data processing in CUBRID 2008 R2.1 have been dramatically improved, which has led to the increase in its reading and writing throughput by approximately 4% and 7%, respectively (see QA Completion Report). The High Availability feature, which was available in the previous version, has also been enhanced to provide more stable services.

In addition, CUBRID 2008 R2.1 supports hierarchical query operations and provides more efficient output of data which is hierarchically structured. Also, the English strings displayed in CUBRID have been improved and the manual is available in English.

We have received from users bug reports and issues over the past 4 months and have addressed them in CUBRID 2008 R2.1 in order of the priority of the issues.

For more information about bug and issue fixes, see What's New in CUBRID 2008 R2.1 below.

2. Getting Started with CUBRID 2008 R2.1

About the License

Open Source License

CUBRID 2008 has separate licenses for the server engine and interface. As shown in the figure below, the CUBRID server engine adopts GPL v2 license or higher, and the CUBRID Manager and interface (API) adopt the BSD license. This allows its users to develop, distribute and sell various software applications without opening their source code to the public. (See the CUBRID web site http://www.cubrid.com for more information.)

image2.jpg

Figure 1 License Model

System Requirements

Supported Operating Systems

Microsoft Windows : XP, 2003 and Vista (32/64 bits)

Linux Kernel 2.4 or higher (glibc 2.3.4 or higher)

Hardware Requirements

CPU : 400 Mhz Pentium II or higher

Memory : 32 MB RAM or higher; 128 MB is recommended for better system operation.

HDD : 60 MB - 180 MB of HDD space is required for a minimum installation, but additional space is necessary for user data storage. 500 MB is recommended for better system operation.

Software Requirements

To run the CUBRID Manager and use Java stored procedures, Java Runtime Environment (JRE) 1.5 or higher must be installed on your operating system.

On the Windows platform, the “Microsoft Visual C++ 2008 Redistributable Package (x86)” must be installed. (See the Microsoft Windows Install section of the Install chapter for more information.)

Compatibility

Backward Compatibility

CUBRID 2008 R2.1 provides backward compatibility for applications. That is, you can use existing applications with CUBRID 2008 R2.1 without updates. However, CUBRID 2008 R2.1 version libraries must be linked to those applications using the CUBRID C API or CCI.

In addition, CUBRID Manager 2008 R1.x cannot connect to CUBRID 2008 R2.1. CUBRID Manager 2008 R2.0 or higher must be installed for a connection to be made.

Database Compatibility

1. CUBRID 2008 R2.0 and CUBRID 2008 R2.1

Additional migration is not required because CUBRID 2008 R2.1 and CUBRID 2008 R2.0 use the same volume image structure.

2. CUBRID 2008 R1.x and CUBRID 2008 R2.0 or higher

Because the volume image structure of CUBRID 2008 R2.0 is different, it is not compatible with database volumes of the CUBRID 2008 R1.x version. To use a CUBRID 2008 R1.x version database with CUBRID 2008 R2.0 or higher, migration is required. (See the CUBRID 2008 R1.x ???? CUBRID 2008 R2.0 ?? ???? ?????? chapter for more information about migration.)

3. CUBRID 2008 R2.0 or higher (32-bit) and CUBRID 2008 R2.0 or higher (64-bit)

In CUBRID 2008 R2.0 or higher, both 64-bit and 32-bit versions use the same volume image structure. Therefore, a database migrated to CUBRID 2008 R2.0 or higher can be used in either of the two versions.

Interoperability

The 32-bit version Broker works with the 32-bit version Server; the 64-bit version Broker works with the 64-bit version Server. (Figure 2)

image002.png

Figure 2 Interoperability of the 32-/64-Bit Versions

As in the previous version, CUBRID 2008 R2.0 offers interoperability and is supported in different operating systems. For example, the 64-bit Server for Windows and the 64-bit Broker for Linux can work with together.

As an exception, it is also possible to configure replication between the 32-bit master and 64-bit slave database systems.

Installation

If you are using CUBRID migrated from earlier versions, see the Migrating CUBRID 2008 R1.x version to CUBRID 2008 R2.0 or higher chapter.

Cautions on Upgrading

l Added reserved words

Because hierarchical query operations are supported, the reserved words NOCYCLE and SIBLINGS have been added. Note that an error may occur after an upgrade if these reserved words are used as column names in earlier versions. To use them as column names, they must be enclosed in double quotes (" ").

(See What's New in CUBRID Manager 2008 R2.1 for more information about hierarchical queries.)

For more information about all the reserved words used in CUBRID 2008 R2.1, see the manual (the Reserved Words chapter of the CUBRID SQL Guide).

l Backing up the configuration file

Make sure to back up the existing configuration file before upgrading to prevent accidental overwriting. (See the Migrating CUBRID 2008 R1.x version to CUBRID 2008 R2.0 or higher section of the Keep the old CUBRID directories chapter for more information.)

l Checking the Java Runtime Environment version

Check whether the version to be installed is CUBRID 32-bit or 64-bit. Then, check whether the Java Runtime Environment version (32-bit or 64-bit) is the same as the CUBRID version. (See the Configuring the Java Environment section for more information.)

l Checking parameters

The following parameters may have a changed meaning or feature, so check carefully before using.

APPL_SERVER_MAX_SIZE : Its default value has been changed. (See the CUBRID 2008 R2.0 Release Note for more information.)

SQL_LOG : Its features have been extended. (See the CUBRID 2008 R2.0 Release Note for more information.)

l Reconfiguring replication

You need to reconfigure the replication environment of the system that has used the replication feature of CUBRID 2008 R1.x. (See the Reconfigure replication section for more information.)

Selecting a Package for the Operating Environment

The installation packages available in CUBRID 2008 R1.x and CUBRID 2008 R2.x are as follows: In CUBRID 2008 R2.1, you need to select and install one of the four installation packages available in CUBRID 2008 R2.x.

image003.png

Figure 3 Packages Available in CUBRID 2008 R1.x and R2.x

Installing on RedHat-based Linux

1. Check the library version

CUBRID supports only glibc 2.3.4 or higher, so check the glibc version by executing the following command and upgrade if necessary.

% rpm -q glibc 

// RPM -based distribution (RedHat, Fedora, SuSe etc.)

2. Check the operating system version

If you are using 64-bit Linux, you will see something like x86_64 that indicates that your operating system is 64-bit. 32-bit Linux supports only CUBRID 32-bit and 64Bit Linux supports both CUBRID 32-bit and 64-bit; select and install one of them.

% uname -a 

Linux host_name 2.6.18-53.1.14.el5xen #1 SMP Wed Mar 5 12:08:17 EST 2008 x86_64 x86_64 x86_64 GNU/Linux

3. Install

The installation package is provided as a script that includes the Linux RPM, tar.gz, or binary. If you are going to upgrade your CUBRID, it is recommended to use a directory that is different from the directory in which the current version is installed. If you install the new CUBRID to the existing directory, you need to determine whether or not to keep the previous configuration file.

Installing on Microsoft Windows

1. Check the Windows version

Select [My Computer] > [System Properties], and check the version. For Windows XP, if it is 32-bit Windows, the Windows name is displayed as shown in Figure 4, and if it is 64-bit Windows, the word "x64 Edition" is displayed as shown in Figure 5. 32-bit Windows supports only CUBRID 32-bit; 64Bit Windows supports both CUBRID 32-bit and 64-bit.

image5.gif

Figure 4. 32-Bit Windows

image6.gif

Figure 5. 64-Bit Windows

2. Install

With the installation program, to install the complete CUBRID, select ALL. To install the CUBRID Manager and Interface, select CLIENT_ONLY (Figure 6).

image006.jpg

Figure 6 Selecting the Installation Type

If you install CUBRID 2008 R2.0 or higher, check whether the "Microsoft Visual C++ 2008 Redistributable Package (x86 or x64)" is installed (Figure 7). If the Redistributable Package is not installed, stop installation and go to its web site and download it. Then, start the CUBRID installation again.

image7.png

Figure 7 Checking the Installation of the Microsoft Visual C++ 2008 Redistributable Package

You can download the Microsoft Visual C++ 2008 Redistributable Package via the link below. (Check the installation language.)

For x86, http://www.microsoft.com/downloads/details.aspx?familyid=9b2da534-3e03-4391-8a4d-074b9f2bc1bf

For x64, http://www.microsoft.com/downloads/details.aspx?familyid=bd2a6171-e2d6-4230-b809-9a8d7548c1b6

Configuring the Java Environment

To use the CUBRID Manager and Java stored procedures, Java Runtime Environment 1.5 or higher must be installed. If they are not installed, download the Java Runtime Environment from the Java web site.

If the java_stored_procedure parameter in the CUBRID configuration file (cubrid.conf) is set to yes, CUBRID 64-bit needs a 64-bit Java Runtime Environment, and CUBRID 32-bit needs a 32-bit Java Runtime Environment. For example, when you run CUBRID 2008 R2.1 64-bit in a system in which a 32-bit JAVA Runtime Environment is installed, the following error occurs.

% cubrid server start demodb 

This may take a long time depending on the amount of recovery works to do.

WARNING: Java VM library is not found : /usr/java/jdk1.5.0_15/jre/lib/amd64/server/libjvm.so: cannot open shared object file: No such file or directory.

Consequently, calling java stored procedure is not allowed

l How to check the version of the Java Runtime Environment

Use the "java-version" command to check the version of the Java Runtime Environment. If a 64-bit Java Runtime Environment is installed, you can see the underlined word "64-bit" as shown below.

% java -version 

Java(TM) SE Runtime Environment (build 1.6.0_05-b13)

Java HotSpot(TM) 64-Bit Server VM (build 10.0-b19, mixed mode)

l Configuring the Java environment on the Linux platform

Configure the JAVA_HOME and LD_LIBRARY_PATH environment variables. The environment variable LD_LIBRARY_PATH must include the directory in which the dynamic library libjvm.so is located.

- An example of installing 64-bit JDK 1.6 and configuring the environment variables in a Bash shell

% JAVA_HOME=/usr/java/jdk1.6.0_05 % LD_LIBRARY_PATH=$JAVA_HOME/jre/lib/amd64:$JAVA_HOME/jre/lib/amd64/server:$LD_LIBRARY_PATH % export JAVA_HOME % export LD_LIBRARY_PATH 

- An example of installing 32-bit JDK 1.5 and configuring the environment variables in a Bash shell

% JAVA_HOME=/usr/java/jdk1.5.0_10 % LD_LIBRARY_PATH=$JAVA_HOME/jre/lib/i386/:$JAVA_HOME/jre/lib/i386/client:$LD_LIBRARY_PATH % export JAVA_HOME % export LD_LIBRARY_PATH 

l Configuring the environment on the Windows platform

Go to My Computer > System Properties > Advanced > Environment Variables > Edit System Variables and configure the JAVA_HOME environment variable as shown below. Then, add the directory where the Java executable is located to the Path.

image9.png

Figure 8 Editing the JAVA_HOME Environment Variable

image10.png

Figure 9 Adding the Java Directory to the Path

Migrating CUBRID 2008 R1.x version to CUBRID 2008 R2.0 or higher

Migration Process Summary

How to migrate from CUBRID 2008 R1.x version (hereinafter, R1.x) to CUBRID 2008 R2.0 version or higher (hereinafter, R2.x) is summarized below.

To perform migration, you must reconfigure the replication environment for the system that has used the replication feature of R1.x, and configure a slave database by using the backup of the migrated master database.

Text Box:
Figure 10. Migration Process with the Migration ToolText Box:
Figure 11. Migration Process with Unload/Load

Migration Scenario

l Migrating R1.x on the 64-bit system to R2.x 64-bit

This scenario is only for upgrading CUBRID but continuing to use 64-bit systems including the operating system. Follow the migration process as shown in Figure 10. This process applies to most systems that use CUBRID 2008 R1.x on 64-bit Linux.

l Migrating R1.x on the 32-bit system to R2.x 64-bit

This scenario is about installing a new operating system and configuring a new database for migration. Because the previous CUBRID database cannot be used, follow the migration process shown inFigure 11. This process applies to new systems being configured.

l Migrating R1.x on the 32-bit system to R2.x 32-bit

This scenario is only for upgrading CUBRID but configuring to use 32-bit systems including the operating system. This process applies to most systems that use CUBRID 2008 R1.x on 32-bit Windows. Follow the migration process as shown in Figure 10.

Migration with the Migration Tool

1. Shutdown the database

Before migrating to R2.x, shutdown the database process by executing the following command.

% cubrid service stop 

2. Back up R1.x

Back up the R1.x database considering the case you have to return to R1.x from R2.x. In addition, this backup will be helpful if the database is damaged due to a system error occurring during migration. Backup all the databases to be migrated by using the following command.

% cubrid backupdb -S 

3. Keep the old CUBRID directories

Keep the previously installed CUBRID directories. A migration tool only changes the database volume, so you need to at least keep the databases.txt file and configuration files such as cubrid.conf, cubrid_broker.conf, and cm.conf in the $CUBRID/conf directory.

4. Install R2.x

See the Installing on RedHat-based Linux and Installing on Microsoft Windows sections for installation instructions.

5. Run the migration tool

Modify the CUBRID_DATABASES environment variable or get the information of the database to be migrated by copying R1.x databases.txt to the installation directory of CUBRID 2008 R2.x. Execute the bin/migrate_r20 utility in the directory where the CUBRID is installed to migrate an earlier version of database.

% export CUBRID_DATABASES=/old/databases % cp /old/databases/databases.txt /new/databases/ % migrate_r20 

6. Back up R2.x

Backup the migrated database to prepare for a future restore. To prevent overwriting the R2.x backup file to the R1.x backup file, backup the R1.x backup file and store it separately before creating the R2.x database backup. The backup file will be named _bkxxxxx, and it is assumed that the demodb database is the one to be migrated in the example below.

% mkdir R1x_backup % mv demodb_bk* R1x_backup % cubrid backupdb -S demodb 

7. Reconfigure replication

If the previous system used the replication feature, configure a new replication environment by using the backup file of the migrated master database, instead of migrating the slave database. See the CUBRID Manual (the Database Migration chapter in the Administrator's Guide) to understand how to implement replication.

8. Modify the CUBRID configuration file and start a database

Modify the existing CUBRID configuration file for R2.x. For the changes in R2.x, see the Cautions on Upgrading section in Checking parameters and 3. Keep the old CUBRID directories above. Now, start a database and the service.

% cubrid service start % cubrid server start 

Migrating with Database Unload/Load

To understand the migration process, see the CUBRID Manual (the Database Migration chapter in the Administrator's Guide).

If the previous system used the replication feature, the slave database configures a new replication environment by using the backup file of the master database that has already been migrated. See the CUBRID Manual (the Database Migration chapter in the Administrator's Guide) to understand how to implement replication.

3. What's New in CUBRID 2008 R2.1

New Features

CUBRIDSUS-1828 Additional options to the configure script when building the Linux version

If the --disable-cubridenv option is specified to the configure script when building CUBRID in a Linux environment, now CUBRID no longer uses the CUBRID environment variables nor the CUBRID_DATABASES environment variable.

(If the environment variables exist when the process starts, a warning message is displayed.)

In addition, the following options can be used for configuration, so CUBRID can be installed in a user-specified directory. (Compliant with the Filesystem Hierarchy Standard)

Related options

--prefix installation directory (default: /cubrid)

--bindir binary file directory (default: $prefix/bin)

--libdir library directory (default: $prefix/lib)

--includedir C header file directory (default: $prefix/include)

--with-confdir configuration file directory (default: $prefix/conf)

--with-jspdir JSP support directory (default: $prefix/java)

--with-jdbcdir JDBC directory (default: $prefix/jdbc)

--with-msgdir message file directory (default: $prefix/msg)

--localstatedir database volume directory (default: $prefix/var)

--with-logdir log file directory (default: $prefix/log)

--with-tmpdir temporary file directory (default: $prefix/tmp)

--with-demodir demo database directory (default: $prefix/demo)

--with-compatdir earlier version compatible file directory (default: $prefix/compat)

However, if --disable-cubridenv option is not specified to the configure script just as in the earlier building method, both CUBRID and CUBRID_DATABASES environment variables work the same as in earlier versions.

CUBRIDSUS-1522 Hierarchical Query execution

The Hierarchical query feature was added; it returns the rows of the result set in a hierarchical order based upon data forming a vertical hierarchical relationship between the rows in a table. With this feature, the reserved words such as NOCYCLE and SIBLINGS are added.

For more information about hierarchical queries, see the manual (Data Retrieval > Hierarchical Query in the CUBRID SQL Guide).

The additional reserved words are not allowed to be used as names of a table, column, or variable. However, they should be enclosed in double quotes (" ") or square brackets ([ ]) to be used as the name of table, column, or variable. See the manual (the Reserved Words chapter in the CUBRID SQL Guide) for more information.

Enhanced Features

CUBRIDSUS-1550 Changed the restart condition of the CAS process

The restart condition of the CAS process according to memory usage now can be determined by the value of the APPL_SERVER_MAX_SIZE parameter configured in cubrid_broker.conf. (Only available in the Linux version)

If APPL_SERVER_MAX_SIZE is 0 or less, the process restarts when the memory usage becomes twice the initial usage.

If APPL_SERVER_MAX_SIZE is greater than 0, the process restarts when the memory usage exceeds the set value.

If APPL_SERVER_MAX_SIZE is not specified, the default is 0.

CUBRIDSUS-1545 Added the client IP information when outputting the broker status

To display the IP address of the clients that are connected to the broker when the utility below is entered, the "CLIENT IP" field has been added as shown below.

% cubrid broker status -f 

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

ID PID QPS LQS PORT PSIZE STATUS CPU LAST ACCESS TIME DB HOST LAST CONNECT TIME CLIENT IP

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

1 5964 12 0 30001 6680 CLOSE WAIT 0.00 2009/11/14 11:03:39 demodb localhost 2009/11/14 11:03:39 192.168.100.123

The address of the connected client ("CLIENT IP" = "192.168.100.123") is displayed as the last header in the status output.

CUBRIDSUS-1333 Changed the output format in the Broker SQL log

In the SQL log of the Broker, the total elapsed time of the transaction was not displayed. Now, the elapsed time is outputted and the string "elapsed time" is also added before the elapsed time.

The following is an example of the SQL log that outputs the total elapsed time of the transaction.

11/09 16:15:35.015 (0) ...

11/09 16:15:36.020 (0) *** elapsed time 0.001

CUBRIDSUS-1802,1825 Fixed the Broker SQL log management utility broker_log_top

An abnormal termination which occurred when executing the broker_log_top utility due to inappropriate SQL log processing for Java stored procedures has been fixed.

In addition, a temporary log can be outputted to the Broker SQL log file, and the "END OF LOG" string can precede the temporary log. The broker_log_top utility can identify this string and work accordingly.

The following is an example of the SQL log that outputs the "END OF LOG" string.

11/14 11:03:39.675 (0) ...

11/14 11:03:39.675 (0) END OF LOG

CUBRIDSUS-1245, 1669 Added a feature that displays the currently connected database in the CSQL Interpreter

When the session command database is executed in the CSQL Interpreter, the information of the connected database is displayed as shown in the example below. In addition, HA mode status is also outputted for a server that is running in HA mode.

The following is an example of this feature.

csql> ;database demodb@hostname 

// If the server is running in HA mode, the following output can be returned.

csql> ;database demodb@hostname [active] 

(Available values of HA mode are active, standby and maintenance.)

CUBRIDSUS-941 Fixed an error message for JDBC binding

If binding is attempted using a method such as setString without an object to bind to a query statement when using JDBC, the inappropriate error message "Connection or Statement might be closed" was displayed. This error message is changed to "Missing or invalid position of the bind variable provided."

CUBRIDSUS-2035 Added a function that collects the primary key information through JDBC

A function that collects the primary key information using the getPrimaryKeys method of Java DatabaseMetaData interface has been added.

See the URL below for more information about the getPrimaryKeys method.

http://download.oracle.com/javase/6/docs/api/java/sql/DatabaseMetaData.html

CUBRIDSUS-1420 Added a feature that outputs the server statistics using the cubrid statdump utility

A feature that outputs the statistics about server operations using the cubrid statdump utility during the server process has been added.

For more information about how to use the utility, see the CUBRID 2008 R2.1 Manual (Database Management > Database Server Operation Statistics in the Administrator's Guide).

CUBRIDSUS-1055 Added a feature that outputs the online parameter information in the Windows version

The feature of CUBRID 2008 R2.0 version (see below) that outputs online parameter information is now supported in the Windows version of CUBRID 2008 R2.1.

Online parameter information output feature (extracted from the CUBRID 2008 R2.0 Release Note)

The parameter information of the CUBRID database server is stored in the cubrid.conf file. In earlier versions, you could not check the information of changed parameters if you modify the cubrid.conf file while the database server is running. However, in the CUBRID 2008 R2.0, you can check the parameters of the running CUBRID server/client by using the following command.

CUBRIDSUS-1466 Added the --no-statistics option to the cubrid loaddb utility

The --no-statistics option has been added to the cubrid loaddb utility. If the --no-statistics option is used, class statistics information required for the query plan is not updated when executing the loaddb utility. This option can be used to save time required to load data for the cubrid loaddb utility by not updating class statistics information when loading a small amount of additional data to a table that already has a large volume of data.

CUBRIDSUS-1622 Added the output time to the archive log information file

To check the contents of archive log information file more easily, the output time precedes a log item in the _lginf file.

The following is an example of archive log information file for the demodb database.

Time: 10/22/09 19:29:44.864 - COMMENT: CUBRID/LogInfo for database /home/cubrid/databases/demodb

Time: 10/22/09 19:29:44.864 - ACTIVE: /home/cubrid/databases/demodb/demodb_lginf 5000 pages

CUBRIDSUS-1610 Added a feature that limits the number of archive log files

The number of archive log files is limited by the log_max_archives parameter in the CUBRID configuration file (cubrid.conf). If the number of archive log files exceeds the limit, the oldest file(s) are automatically deleted.

The history of automatically deleted archive log files is recorded in the _lginf file in the directory in which the database exists.

The following is an example of an information file indicating the 4th archive log of the demodb database is automatically deleted.

Time: 10/23/09 11:15:28.037 - REMOVE: 4 /home/cubrid/databases/demodb/demodb_lgar004 to

4 /home/cubrid/databases/demodb/demodb_lgar004.

REASON: Number of active log archives has been exceeded the max desired number.

CUBRIDSUS-590 Added a dynamic library for the operation on Windows 2000

To enable CUBRID 2008 R2.0 version or higher to run on Windows 2000, a dynamic library file (dbghelp.dll) is required. Now, the CUBRID installation file detects the version of Windows and automatically installs the dbghelp.dll library in the CUBRID installation directory if it is Windows 2000.

Enhanced Performance

CUBRIDSUS-1834 Fixed that a process reflecting replicated transaction logs is no longer affected by the lock timeout setting

When maintaining a lock to a slave database for a long time in replication or HA configuration (e.g. updating statistics for large capacity table), a lock timeout may occur to the repl_agent process or the applylogdb process, so that data is not properly updated. To prevent this, the lock timeout is set to -1 (unlimited waiting) for these two processes regardless of the value of the lock_timeout_in_secs parameter in the cubrid.conf file.

CUBRIDSUS-1799,1565 Modified the critical section algorithm to improve performance

The critical section algorithm that is used to handle files required by the current transaction during commit or rollback execution is improved. To ensure the order of threads entered into the critical section, the FCFS (First-Come First-Served) algorithm is now used, so that a starvation problem is resolved, which can be caused by competition among threads.

This improves performance by reducing the time required for the critical section when the server processes a transaction as well as the cost required for synchronization of multiple threads.

CUBRIDSUS-738,1625 Added the background archiving option

To prevent the performance degradation of a server when a large archive log is created, the background archiving option is now added, which allows archive logs to be created continuously using a separate thread. This also creates a temporary log volume in the format of _lgar_t.

The background archiving can be enabled with “background_archiving=yes” in $CUBRID/conf/cubrid.conf.

When operating a large volume of database, this option can dramatically improve performance.

CUBRIDSUS-1266 Improved the processing time when committing a specific transaction

If one column was included in multiple indexes, and the column contained over one million entries of duplicate data and if you wanted to convert the data to other data simultaneously, time to commit the corresponding transaction might slow down because of the inefficient algorithm. This problem has been fixed.

Resolved Errors

CUBRIDSUS-1667 Resolved the problem of incomplete transactions when retrieving metadata using JDBC

When retrieving metadata using the DatabaseMetaData interface in the application that uses JDBC,

the transaction could not be completed because a commit was not automatically executed even in auto commit mode. This problem has been fixed.

CUBRIDSUS-1833 Fixed the problem of being unable to retrieve the entire table list through ODBC

When executing a query to retrieve the list of all the tables in an application that uses ODBC, there occurred a pointer error and the query result could not be collected. This problem has been fixed.

CUBRIDSUS-1397 Fixed an error that the default auto commit mode is enabled when creating a new connection in Java stored procedures

Even when the auto commit mode was set to OFF after creating a new connection in Java stored procedures, the auto commit mode was enabled because of an algorithm error. This problem has been fixed.

CUBRIDSUS-1797 Fixed the query result error when using the partition table and the plan cache simultaneously

When users used the partition table and the plan cache simultaneously, the plan cache operated abnormally or an expected result was not obtained because the comparison expression between partition target column and the host variable, which exist in the WHERE clause of a query statement, was not properly processed. This problem has been fixed.

CUBRIDSUS-1462 Fixed the problem of restarting repl_agent when using the group replication feature

After configuring group replication, when users inserted a large amount of data into a table that was not used anymore and forcibly terminated the repl_agent process, the process did not restart properly and an error occurred. This problem has been fixed.

CUBRIDSUS-1425 Fixed the problem of terminating repl_agent when the replication error is outputted if the primary key to be replicated is large

If the primary key was over 1024 bytes and an error occurred during replication, repl_agent abnormally terminated and a memory overflow occurred where a log is outputted for the error. This problem has been fixed. In addition, the log output feature has been improved to output the accurate position where the error occurs.

CUBRIDSUS-1237 Fixed an IO error which occurred while repl_agent reads a log page

When restarting a transaction which was abnormally terminated while the repl_agent process reads a log page in the replicated transaction log file, an IO error occurred because the transaction log was deleted inappropriately. This problem has been fixed.

CUBRIDSUS-1846 Revised server error messages

The syntax errors and typos have been corrected for the strings to be displayed when an error occurred on the server. (see the cubrid.msg file.)

The name of an archive log was outputted incorrectly in a log file either when the log file was forcibly deleted while reading the archive log or there was a hardware error. This problem has been fixed.

When there occurred LOCK TIMEOUT for several transactions simultaneously, an obscure error message "No message available." was displayed because there was competition among the threads that handle those transactions. This problem has been fixed.

CUBRIDSUS-1809 Fixed the problem of stopping caused by a string conversion error when executing the cubrid unloaddb utility

If the memory buffer overflowed when the cubrid unloaddb utility converted a large size of data to strings, the operation stopped before it could be completed. Now, if it is expected the memory buffer will overflow, the converted strings are directly written to the file.

CUBRIDSUS-1850 Fixed the range optimization algorithm when executing a query with a multiple-attribute index

When a query statement, which scanned a multiple-attribute index, executed a range calculation for the two keys in the WHERE clause, the query result was outputted incorrectly because of the error of an algorithm that checks and combines the range. This problem has been fixed.

CUBRIDSUS-1604 Fixed the error result when adding a negative value to TIME type value

The result of a query statement which adds a negative value to the TIME type value was different from the result of a query statement which subtracts a positive value to the TIME type value because the TIME type range was not properly considered. This problem has been fixed.

CUBRIDSUS-1546 Fixed the problem of a wrong UNDO log during ROLLBACK after executing a GLO related method

When users performs ROLLBACK after executing INSERT_DATA(), which is a GLO related method, through the CSQL interpreter, the UNDO log was incorrectly recorded and it fell into infinite wait state when the COPY_TO() method was called. This problem has been fixed.

CUBRIDSUS-1502 Fixed the query optimization error for a specific query statement

When the number of SELECT list columns of an unrelated sub-query was more than 3, and the third and columns thereafter and other columns, which are specified as an '=' operation, are specified as an '=' operation and a constant, an error occurred with a client that executes the query. This problem has been fixed.

The following is an example of a query statement with this problem in earlier versions.

SELECT output FROM foo WHERE (a, b, output) IN (SELECT a, b, output FROM bar) and output = '1';

CUBRIDSUS-1493,1494 Added an overflow detection error for a specific type value

Now, there occurs the overflow error when TIMESTAMP, DATE, or DATETIME type value is out of its maximum or minimum value.

In addition, there occurs the overflow error when INT or SHORT type value is smaller than its minimum value.

CUBRIDSUS-1472 Fixed the problem of a wrong plan being executed when the query plan cache storage is full

If the number of query plans stored in the server exceeded the number specified in the max_plan_cache_entries parameter of the CUBRID configuration file (cubrid.conf), a wrong plan was executed. This problem has been fixed.

CUBRIDSUS-1433 Fixed a problem that ORDERBY_NUM() does not work when optimizing a query

A wrong query was executed because the ORDER BY clause, of which a sorting item is a constant, was omitted while rewriting a query statement through the query optimizer when processing a specific query. This problem has been fixed.

The following is an example of a query statement with this problem in earlier versions.

SELECT a, b, c… WHERE a = ? AND b = ? … ORDER BY 1, 2 FOR orderby_num() < 3;

CUBRIDSUS-1337 Fixed an error occurring by mistake when creating an index after automatically expanding a temporary volume

When an index was created after a temporary volume was expanded because of an insufficient temporary volume space, a transaction may be aborted because of an erroneous configuration. This problem has been fixed.

CUBRIDSUS-1182 Fixed an error caused by memory overflow while parsing the expressions in the IN clause when executing a query statement

Memory overflow occurred because internal memory was continuously increased for parsing to check the validity of over 500 expressions after the IN clause of a requested query statement. This problem has been fixed.

CUBRIDSUS-1168 Fixed the problem of the optimization for a specific query, which includes a sub-query that has ORDERBY_NUM(), being executed incorrectly

A specific query with a sub-query that has ORDERBY_NUM() was executed incorrectly by the query optimizer and a wrong result was outputted. This problem has been fixed.

The following is an example of a query statement with this problem in earlier versions.

csql> CREATE TABLE foo (i INT); csql> INSERT INTO foo VALUES (3); csql> INSERT INTO foo VALUES (4); csql> SELECT * FROM (SELECT i FROM foo ORDER BY i FOR ORDERBY_NUM() = 1) a WHERE i <> 3; 

=== ===

There are no results. // If the previous error occurs 4 is outputted

4. What's New in CUBRID Manager 2008 R2.1

New Features

CUBRIDSUS-1864 Supporting multiple JDBC

CUBRID Manager 2008 R2.1 supports multiple JDBC connections which allow it to use a CUBRID 2008 R1.4 version or higher JDBC driver to connect to a corresponding version server. With this feature, the CUBRID Manager can execute queries by connecting to multiple versions of CUBRID servers. However, some administration features of the CUBRID Manager are only available with CUBRID 2008 R2.0 version or higher. As shown below, the CUBRID Manager can select multiple JDBC drivers through JDBC proxy.

image012.png

The most recent version of the JDBC driver that is included in the CUBRID Manager distribution is located in the plugins directory. If you want to use other versions of JDBC drivers, you can add or delete JDBC drivers in [File > Preferences].

cm_101.png

You can select one of the registered CUBRID JDBC drivers when connecting to host. The selected JDBC driver is the default driver used to connect to the database of a corresponding host. In addition, it can be selected from [Tools > New Query] or New Query (new_query.png) in the toolbar.

CUBRIDSUS-1863 Executing some operations as a background operation

In earlier versions, if it took a long time to process one database, another host or database could not be executed simultaneously. To fix this problem, some key operations or some tasks which take a long time to be processed can be executed in the background. Those operations and tasks include:

Item

Operation

Database related

Create Database, Unload/load Database,

Backup/Restore Database, Rename Database,

Copy Database, Optimize Database,

Compact Database, Check Database

Table related

Import/Export Data , Delete All Records,

Change data by converting NULL columns into NOT NULL columns

Volume related

Add a volume

The background execution feature is enabled if [Background Execution] is selected. (See the figure below.)

cm_102.png

When a task which is executing in the background is finished, a message with the execution result appears.

cm_103.png

CUBRIDSUS-2069 Creating 32-bit and 64-bit binaries

CUBRID Manager 2008 R2.0 has been developed based on Eclipse version 3.3. To create 32-bit binary and 64-bit binaries separately and make it also properly work on Windows 2008 64-bit environment, CUBRID Manager 2008 R2.1 has been developed based on Eclipse 3.5 (Galileo) version which supports a Windows 2008 64-bit environment. Therefore, the CUBRID Manager that is built with 64-bit properly works on a Windows 2008 64-bit environment.

Enhanced Features

CUBRIDSUS-1790,1414 Added a database login function for the Query Editor

In this version, if you select [Tools > New Query] or New Query (new_query.png) in the toolbar, you can login as the currently logged in user or another user by using the Database Login dialog. (See the figure below.)

However, only the admin account is allowed to change the broker port which is part of the information necessary to connect to the database that is registered as a host under special supervision. And only the basic character group configured for the corresponding database is displayed. (If it is not specified by users, the basic character group of the operating system is used.)

cm_104.png

CUBRIDSUS-394 Added reconfiguration of AUTO_INCREMENT value to the Manager

In this version, in the [Edit Column], you can change a seed value, an incremental value, and a current value for an auto-increment defined column.

cm_105.png

CUBRIDSUS-1874 Added detailed connection information to the Query Editor

In the Query Editor, [Select Database] displays the information of a database that is currently connected to. In earlier versions, only the name of the connected database was displayed. In this version, [DB account]@[DB name]:[host information] is displayed. ([host information] is displayed only when users enter the host information in the login information.)

If no database information is selected or the login has DBA authorization, it is emphasized with a yellow color as shown below. The drop-down button is used to select another database to connect to.

cm_108.pngcm_106.pngcm_107.png

CUBRIDSUS-1866 Added a character group selection feature for a file that is imported by the Import Data

In earlier versions, characters are broken if the character group of an external file is different from the character group of a database in the table [Import Data] function. To fix this problem, a file is now imported based on the character group users have configured.

In addition, when entering data into a database, the data can be now entered by using the character group that is configured as part of the database connection information.

cm_109.png

CUBRIDSUS-1860 Improved the Confirm Password when changing the CUBRID Manager password

In this version, if you want to change a CUBRID Manager password, the Manager asks your password before changing it in order to confirm it. You can change a password of “admin” by selecting [Tools]>[Change password] or right-clicking a host node on the navigation tree.

CUBRIDSUS-1782 Supporting a tab style display of the broker status pane

In earlier versions, when you wanted to monitor broker status information, it was impossible to monitor multiple broker information simultaneously. The information view area is partitioned based on the entirety of broker information and individual broker information. In this version, multiple broker information can be monitored simultaneously and each one can be added in the tab style. Now, multiple broker information tabs for several hosts can be activated, so [broker name]@[host name]:[manger port] is displayed in the broker status view title.

cm_111.png

CUBRIDSUS-1770 Changed a database server start/stop icon

The database server start/stop icon in the toolbar is changed to menu_start.png (Service Start) menu_stop.png(Service Stop) icons.

CUBRIDSUS-1766 Improved modifying/deleting of a value in the result window of Query Editor

If a query is executed when the “OID Information View” option in the Query Editor is enabled, the OID of the corresponding table is displayed together and a user can modify or delete data in the query result window for the data which is displayed with OID. In the CUBRID Manager 2008 R2.1, this function can be easily enabled by toggling in the Query Editor toolbar.

However, the “OID Information View” option in the Query Editor is only applicable to the corresponding Query Editor. It does not mean that the default Query Editor option is changed.

cm_112.png

CUBRIDSUS-1722 Improved Host > Properties > Start Service

In this version, “Set database auto start” can be selected only when the [server] checkbox is selected in [Start Service] as shown in the below figure.

cm_113.png

CUBRIDSUS-1634 Improved the display of UTF-8 strings when viewing the SQL log in the Manager

In earlier versions, when a string group such as UTF-8 was used as an input string group to a database, the strings in the SQL log of the Manager were displayed as broken strings. To fix this problem, you can now specify a string group when displaying an SQL log.

cm_114.png

CUBRIDSUS-1324 Setting the default value when changing the NULL attribute to a NOT NULL attribute

In this version, when changing the NULL attribute to the NOT NULL attribute, all existing NULL data is changed simultaneously to guarantee the integrity of data and schema. The scenarios are as follows:

When there is no default value:

[Column Name] There is no default value for a column. Do you want to configure it?

YES: Configure the default value without further proceeding.

NO: Additional question

[Column Name] Although the column attribute is changed to NOT NULL, there may be NULL value. Do you want to continue?

l YES: Proceed (schema change is made.)

l NO: No changes made

When there is a default value:

[Column Name] The NULL value of a column can be changed to a default value. It may take a long time depending on the amount of data if you proceed. Do you want to continue?

l YES: Proceed (schema and data changes are made.)

l NO: No changes made

Resolved Errors

CUBRIDSUS-1816,1758,1719,1527,1503,1500,1402,1400 Fixed abnormal operations when executing a specific query in Query Editor

In earlier versions, when executing a specific sub-query or a query such as external join, there were abnormal results because the Query Editor analyzed a query to execute and limited the number of results by ROWNUM. This problem has been fixed.

CUBRIDSUS-1786 Fixed an error caused when a NULL and an empty character (‘’) are not distinguished in the [Import Data]

In earlier versions, the number of columns was not matched because a NULL and an empty character (‘’) were not distinguished in an Excel file when executing [Import Data]. This problem has been fixed.

CUBRIDSUS-1781 Fixed the problem of the Manager administrator's password not being properly changed when only one Manager server port is open

The CUBRID Manager server uses a total of two ports, i.e. the ports specified in the cm_port parameter of the configuration file (conf/cm.conf) and the next higher port. Therefore, when using a firewall function, i.e. only one port is open and the next port is not open, and the CUBRID Manager does not work properly.

Especially, when changing the first admin user's password, the second port is used to check if the password was changed successfully. If the second port is not open, this checking task is not done properly and the change can not be cancelled from the password change dialog. Therefore, it is unavoidable to forcibly terminate the CUBRID Manager. In this version, however, the changing process can be cancelled in the password change dialog.

CUBRIDSUS-1772,1773 Fixed an error which occurs when registering/deleting Java stored procedures

In earlier versions, only [Class Name] was verified when checking a Java function during the Java stored procedure registration. In this version, however, [Class Name].[Function Name] is verified.

In addition, if a reserved word such as TEST is used when executing a statement that deletes a Java stored procedure, TEST is automatically converted to a string like “TEST”.

CUBRIDSUS-1746 Fixed an outdentation error in the Query Editor

When outdenting a line in the Query Editor, it actually indented the line. This problem has been fixed.

CUBRIDSUS-1730 Fixed the problem of a part of screen not being properly displayed when the basic font is 125% in Windows 7

When the basic font is 125% in the Windows 7, the size of some screens is not adjustable and the input box is not visible. This problem has been fixed.

CUBRIDSUS-1705 Fixed the problem of the unloading of a reference table not working when unloading a database in the Manager

When trying to unload a portion of a table during database unloading, unloading a related reference table would not work properly. This problem has been fixed.

CUBRIDSUS-1690 Fixed the problem of an error occurring when entering a multiple line query in the query automation function of the Manager

An error occurred when registering a multiple line query in the query automation function. This problem has been fixed.

CUBRIDSUS-1646 Fixed the problem of a slave DB not being synchronized with a master DB when a table is deleted from the master DB

When a table in the master DB was deleted under replication configuration status, the deletion was not updated to the slave DB. This problem has been fixed.

CUBRIDSUS-1475 Fixed an error that occurred when an external key was added while creating and editing a table

When an external key was added using the external key addition function in the table editing, an error occurred. This problem has been fixed.

CUBRIDSUS-1456 Fixed the problem of an error message not being displayed even when database backup has failed

Now, when database backup fails, an error message is displayed and it shows why it failed.

CUBRIDSUS-1454 Providing detailed information about the execution result of the backup automation feature

When the backup automation feature is executed, information about backup success or failure is now recorded into a log and it can be referred to later.

CUBRIDSUS-1446 Fixed the problem of a registered query automation being deleted

When the same query ID was registered to several databases using query automation, a query registered before was deleted. This problem has been fixed.

CUBRIDSUS-1220 Fixed the problem of an error log file not being created when starting the database server on Windows

When starting the database server in a Windows environment, an error log file of the database server was not automatically created. This problem has been fixed.

CUBRIDSUS-2004 Fixed an error that occurred in the database navigation pane when there was no database information

An error occurred in the database navigation pane if there was no database on a connected server when the CUBRID Manager started. This problem has been fixed.

5. Caution

Failback time may be delayed if a Java stored procedure is used in the HA configuration

There may be a failback time delay if a Java stored procedure is used in the HA configuration.

Cautions required for loading from R1.x by using files unloaded from CUBRID 2008 R2.0 or higher

When unloading (unloaddb) a database that has a SERIAL from CUBRID 2008 R2.0 version or higher, the ALTER SERIAL statement is included in the created file. If you load (loaddb) this file to R1.x, an error occurs. Therefore, you cannot migrate the file to an R1.x database by using the cubrid loaddb utility.

Cautions for using queries that change multiple records with a single UPDATE query during replication

The current version of the replication feature does not allow changing multiple rows with a single UPDATE statement which can violate the UNIQUE constraint. If this occurs, the following error message is displayed in the database server log.

// Example 
CREATE TABLE example (id INT); 
INSERT INTO example VALUES (1); 
INSERT INTO example VALUES (2); 
UPDATE example SET id = id + 1 WHERE id > 0; // Error query // Error message in English 

Current version of replication does not allow changing multiple rows with a single UPDATE statement which can violate the UNIQUE constraint.

Caution when using the group replication feature

When using the group replication feature, you need to create schemas in the Master and Slave according to the same procedures to replicate data between the Master and the Slave. That is, if a new column is added to a table, that is created in the Master, by using the ALTER statement, a table must be created in the Slave using the same procedures and a new column must be added by using the ALTER statement.

Caution when using the cubrid unloaddb -i option

When using the database unloading utility, i.e. cubrid unload, the name of a table, which is at the end of a file which is given as -i (--input-class-file) option, must be followed by the line change character (' '). That is, the last one of the entered files must be followed by the line change character (' ').

Caution when attempting restore by using the backup of an earlier version

When you attempt database restore by using a later version of the cubrid restoredb utility for a backup file which was created by the earlier version of cubrid backupdb utility, an error message saying the same version must be used is displayed.

Caution when configuring CUBRID environment variables on Windows

If a string that ends with backslash ('\') is used as a CUBRID environment variable on Windows environment, an error may occur during a CUBRID process operation. Therefore, be careful not to use '\' at the end of a directory.

6. Bug Report and Feedback

CUBRID welcomes your active participation in bug reporting and looks forward to your candid feedback. You can register your bug reports and feedbacks at the following URLs.

l Bug Report

CUBRID Open Source Project Issue Tracker - http://sourceforge.net/tracker/?group_id=280608

l Feedback

CUBRID Open Source Project Forum - http://sourceforge.net/projects/cubrid/forums

CUBRID Community Web Site - http://www.cubrid.org




You are either using a very old browser or a browser that is not supported.
In order to browse cubrid.org you need to have one of the following browsers:



Internet Explorer: Mozilla Firefox: Google Chrome: