Amazon deals

Showing posts with label db2. Show all posts
Showing posts with label db2. Show all posts

Wednesday, September 10, 2008

Don't move a database that has it's tables linked in db2

Hey guys, don't make the mistake I did by trying to move a database that has its tables linked. You'll get an sql error numbered 3304.

LOAD is a very fast and direct way to get data from a file residing in the file system into a table in your database. LOAD does not use SQL INSERT statements, as does IMPORT. Instead, it writes the data directly to the data pages in the tablespace. Additionally, less logging occurs to further improve performance of the load process.

So, we need to keep the behavior of LOAD itself in mind. If there are any dependent tables (tables that have a foreign key referencing the table into which data is to be loaded, for example), they might be placed in the CHECK PENDING state. Additionally, further constraints could also result in the table not being available right after the LOAD operation, requiring you to run the SET INTEGRITY SQL statement first.

So, you could either set INTEGRITY SQL or you could do the mapping in your buisness logic using entity beans.

Monday, August 25, 2008

Hibernate...

This video is a part of our continuous approach towards learning by sharing knowledge together. We deal with hibernate plugin onto the reverse engineering process we discussed earlier.

[googlevideo=http://video.google.com/videoplay?docid=7169964626981764870]

Saturday, August 9, 2008

Reverse Engineering : An insight into the process of reverse engineering databases

Lets first look into the definition of reverse engineering. Reverse engineering (RE) is the process of discovering the technological principles of a device, object or system through analysis of its structure, function and operation. Reverse Engineering is a very powerful technique for discovering the structures of databases. There are many tools available like Apache Cayenee,Oracle Designer etc. What I want to talk thorough here is the concept of reverse engineering and its relevance into enterprise application development. You must be knowing that in the 3 tier system of Enterprise Applications other than the business code in the middle tier a lot of coding goes into both data access and modification in the innermost layer. So an enterprise app could be seen as a concentric sperical shell of three layers with the ineermost core dedicated to database(say db2),its connections and data access. Once we have this core, i.e. we know exactly what data is to be delt with we could use a tool to map the database directly to code(POJO and DAO combination in case of EJB's) and then build the rest of the application on top of this. This is reverse of the actual front end to back end conceptuation we tend to do and is termed reverse engineering. Its a relatively fast and effective method wherein the focus is exactly on the application data, enabling us to build on both existing databases and our own data logic on any given scenario.

Monday, July 28, 2008

Moving a db2 database

You must have encountered this problem sometime while working on db2. It doesn't have a proper GUI for direct moving of a database from one system to another. Here are the detailed steps.

Step1:
Export using following command sequence

/>db2move databasename export

Commet: this generates files Export.out - ASCI info about export db2move.lst - has table info tabn.ixf - info exchange format, holds data .msg -message files tabna.nnn - large object data

/>db2look -d databasename -e -a -o outputfilename.sql

Comment: generates the sql file holding DDL data

Step2:
move all files to the target system

Step3:
Import using following command sequence

/>db2 create databasename
comment: creates the database
/>db2 -tvf sqlfile.sql
comment: structure the generated database with the sql file from the export
/>db2move databasename load

/*HURRAY DATABASE MOVED */