Application performance problem determination is not trivial and can be further complicated by complexity of the environment. As the complexity of the environment increases, so is the effort expended to isolate the problem. This article demonstrated numerous tools to help isolate the components causing a performance bottleneck. We've looked at test cases of Java applications, Java routines, and networks for determining the causes of performance issues. We have also discussed diagnosing authentication performance problems on various platforms. |
One means of monitoring the status of an IBM® DB2® Universal Database? (UDB) instance is by capturing snapshots of database system monitor data. A snapshot of monitor data describes the state of database activity at the particular point in time that a snapshot is taken. This approach of database system monitoring is particularly useful in evaluating the performance of a database system, and in detecting potential problems. |
In the discussion of these performance tips, we assume that you are familiar with basic DB2 administration and performance practices as well as with the basics of DB2s pureXML support. For example, you should know about XML columns, XML indexes, and how to query XML data with SQL/XML and XQuery. All these prerequisites are covered in articles previously published on developerWorks (see Resources). |
PHP is a top Web development language, and the Java? programming language is popular for business application development. Thus, to utilize the strengths of each language on the AIX® Version 5.3 operating system, the PHP Java Bridge has been developed. The goal of this series is to get AIX 5.3 developers up to speed in integrating both PHP and Java technology in Web application development. |
The most recent step in the evolution of Java development in the DB2 environment is the DB2 UDB JDBC Universal Driver. This new driver offers many advantages and improvements that make it the optimal choice for application development. In this article, gain an understanding of the inner workings of the driver and see how it can fit in with your overall application development plan. |
Java 1.5 brings to us the offering of the CachedRowSet interface. CachedRowSet objects allow for us to grab data from a database. We can then disconnect from our database and manipulate and scroll through our data locally. To synchronize any changes we might have made to our CachedRowSet object, we can simply reconnect to our database and persist our changes. You can learn more about the CachedRowSet interface in "Using the Java CachedRowSet implementation with DB2 UDB/" (developerWorks, June 2004). In this article, we'll study WebRowSet objects. I suggest you familiarize yourself with the CachedRowSet by reading my CahedRowSet article before you delve into this one. |
An excellent way to understand the main options on the db2trc command is to try them. We will explore a very simple example using the SAMPLE database that comes with DB2 UDB. First, we will turn the trace facility on, specifying an 8-MB trace buffer. We will be tracing into shared memory (rather than to a file), using the -i option, which stops the trace as soon as the buffer is full. (The -l option, on the other hand, preserves the last trace records, because the buffer is allowed to wrap, or overwrite existing records. This is the default behavior.) The buffer size can be specified in bytes or megabytes. To specify megabytes, append M (or m) to the value. |
|
In many content applications, you need to generate sequential numbers, such as Customer#, automatically. DB2 Content Manager (CM) does not provide a data type for this purpose, but you can use the GenSequence utility to address this problem. This utility will take advantage of underlying DB2 database to generate the sequence numbers. |
The JDBC Type 4 driver is also a pure Java implementation that is just called a JDBC Type 4 driver for now, because there is no package for it in DB2 Version 7. DB2 Version 7 does not support a JDBC Type 4 driver. In an upcoming release of DB2 you can expect to see this support. An application using a JDBC Type 4 driver does not need to interface with a DB2 client for connectivity because this driver comes with Distributed Relational Database Architecture Application Requester (DRDA AR) functionality built into the driver. |
This article addresses the issue of tuning the SQL being used to access a database for a typical activity. To simplify the problem of how to monitor the SQL statements in an application, I have written a Java program called DB2Trace.java that assists you in using the DB2 Universal Database event monitor to identify which SQL statements are consuming the most resources. |
In this article I shed light on a subinterface of the CachedRowSet interface called the JoinRowSet interface. As you will see, the JoinRowSet Java interface allows you to perform JOIN-like operations on your database data while disconnected from your database. The JOIN operation occurs on the client, not the database server. Based upon your findings in this article, you might want to consider using JoinRowSet objects in your application architecture. Doing so can offload computational stress from your IBM DB2 Universal Database Server. |
Here at the Developer Technical Support Center in Dallas, we find that most of the Independent Software Vendors (ISVs) who need help with using multiple language support on DB2 ask how to set up their database and operating system environments for MBCS support. So this article is intended for developers and others who, like the ISVs we work with, need to set up a MBCS database on DB2 Universal DatabaseTM Version 8 in an English operating system environment. The basic guidelines in this article can also be applied to any single-byte character set (SBCS) language environment. |
The AIX 5L operating system version 5.2 brings an exciting new set of features to improve server manageability. The features are a part of the continuing development of the strategic vision of IBM to implement Capacity Upgrade on Demand (CUoD). A key part of this vision is the ability to divide a system into logical partitions (sometimes called as virtual servers) and resize a logical partition on the fly. You can add or remove physical memory (RAM), processors (CPU) and PCI I/O slots from the partitions. A logical extension of this feature is the ability to move these resources among the partitions without having to reboot a partition or a system. This feature is called Dynamic Logical PARtitioning (DLPAR). |
The "Viper" release of DB2 for Linux, Unix, and Windows platforms introduces another option. This new beta release supports XML data as a first-class type. To do so, IBM extended DB2 to include: |
IBM database management systems such as DB2 for z/OS, IBM DB2 for Linux®, UNIX®, and Windows®, and IBM Informix® Dynamic Server (IDS) come with a vast number and variety of administrative functions and routines. While these routines make administrative data server information easily accessible for remote database applications and tools, at the same time, they tightly couple the application with the connected data server. This is mainly because of differences in syntax, security options, as well as access methods for the different data servers, and sometimes even between different data server versions. As a result, applications and tools suffer from higher implementation complexity, slow integration, and reuse characteristics. This article presents multiple techniques to work with the common SQL API procedures, a set of stored procedures that exist across all IBM data servers and tackle the above-mentioned challenges. |
This kind of tracing may be a little bit problematic, as it requires changes to the source code, which is not desirable under all circumstances. When the data source is defined separately from the source code, which is true if an application server like WebSphere is used, the trace properties can be specified together with the definition of the Data Source. This allows an activation/deactivation of tracing without changes to the source code. Further information on this topic is provided by the following technote: Enabling DB2 Universal JDBC Driver (JCC) tracing on WebSphere Application Server V5 |
This article introduced DB2 UDB performance monitoring and tuning fundamentals using a sample Java program (PERFORMER). You can apply the simple step-by-step performance tuning examples to improve the performance on your own DB2 UDB database system. Moreover, you had the opportunity to learn how to evaluate and analyze access plans and fix "bad queries." In Part 2 of this article series, we will use a more complete database scenario that builds on top of the one used in this article. We will discuss other performance monitoring and tuning techniques, and the use of the Design Advisor, the activity monitor, table snapshot functions, and other tools. Part 2 also covers OLTP, DSS, and mixed workloads. |
The javax.sql.RowSet interface was introduced to the Java language in J2SE Version 1.4. With the shipping of the Java 2 Standard Edition version 1.5, we will see enhancements to this interface and implementations of the interface bundled with the language. The RowSet interface is the result of JSR 114, which outlined an initiative to "'disconnect' tabular data from its source?" thereby increasing ?the scalabilty of applications and the flexibility of the programming model." I used a beta version of Tiger (Java 1.5) to develop against. If you are using a previous version of Java and would like to try out the reference implementation of the RowSet, you can download the reference implementation from Sun Microsystems. For our example, we will be playing with a CachedRowSet implementation. |