10 November 2009
0 Beware of Scareware
28 October 2009
0 confirmation
02 October 2009
0 SQL Tutorial - Decrease the retrieval time from database using Multiple threads
SQL Tutorial - SQL Tip - Decrease the retrieval time from database using Multiple threads
How To decrease the retrieval time while retrieving data from a table from database?
Normal retrieval query :
Query with Multi threading
0 SQL Tutorial - Loading data from a text file
SQL Tutorial - SQL Tip - Loading data from a text file
How can I load data into table from a .txt file?
You can load data into table from a .txt file using the below command.
INTO TABLE <table_name> FIELDS TERMINATED BY ',' LINES TERMINATED BY '\r\n';
For Example
Say, the required input file "user.txt" is in the location C:\
INTO TABLE user_name FIELDS TERMINATED BY ',' LINES TERMINATED BY '\r\n';
5 DB2 Tutorial - Making the primary key auto incremental in DB2
DB2 Tutorial - DB2 Tip - Making the primary key auto incremental in db2
How to make a field auto incremental in DB2?
The following query example will show you how to set a field as Auto-increment field in DB2(
ITEMLIST_INDEX Integer GENERATED ALWAYS AS IDENTITY,
RESULTCODE VARCHAR(254),
ADDLINFO VARCHAR (254)
)
1 SQL Tutorial - Insert Zero in the auto incremental field
SQL Tutorial - MySQL Tips1 - Inserting Zero in the auto incremental field
How to insert a " 0" or zero value in the auto incremental column of MySQL ?
The following query will be setting Auto-increment to start from 0This will allow us to insert value zero in the auto incremental column which otherwise can only begin with atleast 1. This change should in no way affect the existing auto-incremental values.
That is, Auto increment value will start from 1 itself but we will be able to insert a record with 0 in the auto increment column.
0 AJAX Tutorial onComplete event of Ajax Updater
AJAX Tutorial - Tips1 - onComplete event of Ajax.Updater
How to ensure that a function or action is called only after the successful execution of the AJAX call ?
Ajax updater has onComplete callback, which will be executed after the successful execution of the AJAX call. This will help to prevent AJAX updater success action before the successful execution of the AJAX call.
parameters: {
searchTerm: p_searchTerm,
searchTermValues: p_searchTermValues,
pageIndex :p_pageIndex,
startIndex : p_startindex,
endIndex :p_endIndex
},
onComplete : function updateValues(){
updateValues1(p_startindex,p_endIndex,p_pageIndex);
}
});
28 September 2009
0 SQL Tutorial - Find and Replace Text in MySQL Database
SQL Tutorial - Tips2- Find and Replace Text in MySQL
How to Find and Replace Text in MySQL Database using SQL Statements?
The syntax of REPLACE is REPLACE(text_string, from_string, to_string)
For example:
0 SQL Tutorial -" NULL in SQL"
SQL Tutorial - Tips1- 'NULL in SQL'
The Four Golden Rules for 'NULL' in SQL
1. Use NULLs to indicate unknown/missing information only. Do not use NULLs in place of zeroes, zero-length strings or other "known: blank values. Update your NULLs with proper information as soon as possible.
2. In ANSI SQL, NULL is not equal to anything, even other NULLs! Comparisons with NULL always result in UNKNOWN
3. Use SET ANSI_NULLS ON, and always use ANSI standard SQL syntax for NULLs. Straying from the standard can cause problems including portability issues, incompatibility with existing code and databases and returning incorrect results.
4. The ANSI standard COALESCE() and CASE syntaxes are preferred over ISNULL() or other proprietary syntax
No Two NULLs Are Created Equal
ANSI SQL three-valued logic (3VL) is that NULL is not equal to anything else. It is not less than, greater than, or even unequal to anything else either.
All NULLs Are Created Not Distinct
From above we know that comparisons with NULL never evaluate to TRUE or FALSE, that NULL is never equal to NULL, and that NULL comparisons always result in UNKNOWN. Now it's time to list the exceptions. In order to simulate NULL equality, and to keep from contradicting themselves in the process, the ANSI SQL-92 standard decreed that two NULL values should be considered "not distinct". The definition of not distinct in the ANSI standard includes any two values that return TRUE for an equality test (e.g., 3 = 3, 4 = 4, etc.), or any two NULLs. This simulated NULL equality is probably most used in the GROUP BY clause, which groups all NULL values into a single partition. In Unique Constraint also NULLs are treated same.
NULLs Flock Together
The ORDER BY clause in SELECT queries places all NULL values together when it orders your results. SQL Server treats NULLs as the "lowest possible values" in your results. What this means is NULL will always come before your non-NULL results when you sort in ascending order, and after your non-NULL results when you sort in descending order
23 September 2009
13 September 2009
0 Basic JAVA Tutorial - JAVA Installation and Set Up Guide
Basic JAVA Tutorial - CHAPTER-8 installation and Set Up of JAVA
Installing and using JAVA
Before we begin JAVA installation, some points on JAVA installation
• For executing Java Programs Java 2 SDK Version 1.4 or higher Version needs to be installed.
• Java 2 SDK Can be downloaded freely from http://java.sun.com
• IDEs for JAVA are Eclipse and Netbeans, and Eclipse can be downloaded freely and doesnot require installation
Setting Environment variables for Java
We need to set some Environmental variables.
• Environmental variable is a variable that describes the operating environment of the process
• Common environment variables describe the home directory, command search path etc.
Environment variables used by JVM
JAVA_HOME
This environment variable is pointing to the Java Installation directory. This environment variable is used to derive all other environment variables used by JVM
set JAVA_HOME=C:\ProgramFiles\JAVA\jdk1.4.3
In UNIX:
export JAVA_HOME=/var/usr/java
CLASSPATH
Path variable is used by OS to locate executable files
set PATH=%PATH%;%JAVA_HOME%\lib\tools.jar
In UNIX:
set PATH=$PATH:$JAVA_HOME/lib/tools.jar:.
Do the Environmental variable settings by typing the given commands in the Command Prompt and Type ‘javac’. It will display all the options of using javac as shown in the diagram. If it says bad command or file name then check the path setting.
Alternate way to set CLASSPATH
set PATH=%PATH%;%JAVA_HOME%\bin
In UNIX:
set PATH=$PATH:$JAVA_HOME/bin
0 Basic JAVA Tutorial - JAVA Architecture
Basic JAVA Tutorial - CHAPTER-6 Architecture of JVM Runtime Environment
JAVA Platform Architecture
The JVM Runtime Environment
The byte codes are stored in class files. At runtime, the bytecodes that make up a java software program are loaded, checked, and run in an interpreter. The interpreter has two functions: it executes bytecodes, and makes the appropriate calls to the underlying hardware.
The Java runtime environment runs code compiled for a JVM and performs four main tasks:
• Loads Code - Performed by the class loader
• Verifies Code - Performed by the bytecode verifier
• Executes Code - Performed by the runtime interpreter
• Garbage Collection - De allocates memory not being used
Class Loader
The class loader loads all classes needed for the execution of a program. The class loader adds security by separating the namespaces for the classes of the local file system from those imported from network sources.
Once all the classes have been loaded, the memory layout of the executable file is determined. At this point specific memory addresses are assigned to symbolic references and the lookup table is created. Because memory layout occurs at runtime, the java technology interpreter adds protection against unauthorized access into the restricted areas of code.
Java software code passes several tests before actually running on your machine. The JVM puts the code through a bytecode verifier that tests the format of code fragments and checks code fragments for illegal code ie code that forges pointers, violates access rights on objects, or attempts to change object type.
The bytecode verifier makes four passes on the code in a program. It ensures that the code follows the JVM specifications and does not violate system integrity. If the verifier completes all four passes without returning an error message, then the following is ensured. The classes follow the class file format of the JVM specification
• There are no access restriction violations
• The code causes no operand stack overflows or underflows
• No illegal data conversions
0 Basic JAVA Tutorial - JAVA Architecture
Basic JAVA Tutorial - CHAPTER-7 Architecture of JVM Runtime Environment
JAVA Platform Architecture Continues..
Garbage Collection
As the objects are dynamically allocated memory by using "new" operator, they must be released for later reallocation. Java handles de-allocation automatically. This technique is called Garbage Collection.
When no references to an object exist, that object is assumed to be no longer needed and the memory occupied by the object can be reclaimed. This is done by Garbage Collection. Garbage Collection occurs periodically during the execution of the program.
Finalize
Finalize method is used when certain objects are required to perform some action when they are destroyed. By using this method, we can define specific actions that will occur when an object is just about to be reclaimed by the garbage collector.
When certain objects are required to perform some action when they are destroyed then those actions can be added by defining finalize() method. Java Run time calls that method whenever it is about to recycle an object of that class.
The Garbage collector runs periodically, checking for objects that are no longer referenced by any running state or indirectly through other referenced objects. Right before an object is freed, the Java Run time calls the finalize() method on that object.
0 Basic JAVA Tutorial - Platform Independence of JAVA
Basic JAVA Tutorial - CHAPTER-5 Platform Independence of JAVA and JVM
JAVA is Platform Independent
Java is a language that is platform independent.
• A platform is the hardware and software environment in which a program runs
• Once compiled, code will run on any platform without recompiling or any kind of modification.
– “Write Once Run Anywhere”
• JAVA Program Portability is made possible by making use of a Java Virtual Machine commonly known as JVM
Always keep onething in mind, only the programs written in JAVA language is portable, JVM or Java platform is not portable. These JAVA platforms are purely platform dependent, it will depend on the underlying Operating system and defenitely hardware also. That is, Windows OS has its own JVM, or JRE, and so as Mac, UNIX, LINUX etc
Java Virtual Machine (JVM)
The source code of Java will be stored in a text file with extension .java
• The Java compiler compiles a .java file into byte code
• The byte code will be in a file with extension .class
• The .class file that is generated is the machine code of the processor.
– Byte code is a binary language
• The byte code is interpreted by the JVM
• JVM varies from platform to platform, or, JVM is platform dependent
• JVM can be considered as a processor purely implemented with software.
• The interface that the JVM has to the .class file remains the same irrespective of the underlying platform.
– This makes platform independence possible
• The JVM interprets the .class file to the machine language of the underlying platform.
• The underlying platform processes the commands given by the JVM
0 Basic JAVA Tutorial - Features of JAVA
Basic JAVA Tutorial - CHAPTER-4
Features of JAVA - Object Oriented
Java is an Object Oriented Language. Object-Oriented design is a technique that helps the programmer visualize the program using real-life objects.
Eventhough JAVA is an Object Oriented language, Unlike C++, It will not support Operator Overloading and Multiple inheritance. But, like every other Object oriented languages JAVA will support method overloading.
Features of JAVA - Robust
JAVA programming language is built in such a way that programmers can easily write Robust Programs.
For any programming language, the main reasons for program failure are:
(1) Memory management mistakes
(2) Mishandled run time errors.
Java has solution to both these problems.
(1) With Java, Memory management is very easy since the de allocation is done by the garbage collector automatically.
(2) Java provides object oriented exception handling to manage run time errors.
Features of JAVA - Platform independent
Java is platform independent or in other words JAVA is Architecture Neutral or simply Portable. About a JAVA program, we can say "Write once, Run anywhere". Java is an Interpreter based language. With Java, the program needs to be compiled only once, and the code generated by the Java compiler can run on any platform. Java is platform independent at both the source and the binary level. Java can be easily ported on any type of system and irrespective of the operating system being used. Java achieves this portability due to its feature of Implementation Independency.
Features of JAVA - Secured
Java is a secured programming language because it provides the user with a Virtual Firewall between the applications and the computer thus ensuring that the data in the user’s system is protected by any possible Infectious contents. This is achieved by confining the Java program within the Java Runtime Environment.
Features of JAVA - Multithreading
Multithreading is the capability for a program to perform several tasks simultaneously within a program. A good example of mutithreading would be one of the game software where the GUI display, sound effect, timer control and score updating are happening within the same process simultaneously. In network programming, a server can serve multiple clients at the same time via mutithreading.
Features of JAVA - Designed for the Distributed Environment
Java is designed for the distributed environment of the Internet. Simply speaking, Java allows objects on two different computers to execute procedures remotely.
Features of JAVA - Simple
Java is a Simpler Language comparing to other Object oriented languages like C++. The reason is, Certain complex features like operator overloading, multiple inheritance, pointers, explicit memory de allocation are not present in Java language.
26 July 2009
0 Method Overloading and Method Overriding in JAVA - A comparison study
Static Polymorphism And Dynamic Polymorphism in JAVA
Static Polymorphism in JAVA is also known as Function Overloading in JAVA. Dynamic Polymorphism in JAVA is also known as Function Overriding in JAVA. Let us compare Function Overloading and Function Overriding in JAVA. Here it goes,the difference between Function Overloading and Function Overriding in JAVA
Static Polymorphism | Dynamic Polymorphism |
Function Overloading – within same class more than one method having same name but differing in signature | Function Overriding – keeping the signature and return type same, method in the base class is redefined in the derived class |
Resolved during compilation time | Resolved during run time |
Return type is not part of method signature | Which method to be invoked is decided by the object that the reference points to and not by the type of the reference |
25 July 2009
0 BASICS OF JAVA - Introduction to JAVA
BASICS OF JAVA - CHAPTER-3 -Introduction to JAVA
A language developed by Sun Microsystems
• A general-purpose language
• High-level language
• Developed initially for consumer devices
• Now-a-days, popular platform to develop enterprise applications
Know more about history of JAVA and some intersting factors about JAVA.
Features of Java
• Object-oriented
• Robust
• Portable or 'Architecture Neutral'
• Secure
• Support for Multithreading at language level
• Designed to handle Distributed applications
• Simpler language
0 BASICS OF JAVA - Object Oriented Concepts (OOC) contd.
BASICS OF JAVA - CHAPTER-2 -Object Oriented Concepts (OOC) contd.
In this page we are discussing about advantages and disadvantages of Object oriented concept. In order to analyse the various advantages and disadvantages of the object oriented concepts, we will compare the object oriented concept against the Procedural Programming methodology.
Object Oriented Programming vs Procedural Programming
Object Oriented Programming | Procedural Programming |
Emphasis on Data; binding of data structures with methods that operate on data | Emphasis on algorithms, procedures |
Real world is represented by objects mimicking external entities. Allows modeling of real life problem into objects with state and behavior | Real world is represented by logical entities and control flow. Tries to fit real life problem into procedural language |
Data (State) is encapsulated effectively by methods (Behavior) | In a given module, data and procedures are separate |
Program modules are integrated parts of overall program. Objects interact with each other by Message passing | Program modules are linked through parameter passing mechanism |
Uses abstraction at class and object level | Uses abstraction at procedure level |
Object Oriented decomposition focuses on abstracted objects and their interaction | Algorithmic decomposition tends to focus on the sequence of events |
Active and intelligent data structures (object) encapsulates all passive procedures | Passive and dumb data structures used by active methods |
Object Oriented Languages: C++, Small Talk, Java, C#, JavaScript etc | Procedural languages: C, COBOL, PASCAL |
0 BASICS OF JAVA Object Oriented Concepts
BASICS OF JAVA - CHAPTER-1 -Object Oriented Concepts (OOC)
Java is an Object-Oriented Language. So before learning java, let us have a look on the Object-Oriented Concepts.
Object Oriented Concepts (OOC)
Class and Object
A class is prototype that defines the variables and the methods (functions) common to all objects of a certain kind.
Elements of a class are :
1. Member Variable: Variables declared within a class
2. Member Functions: Functions or methods declared within the class. These methods operate upon the member variables of the class. So a class is a definition of a set of data and methods (functions). When memory space for this data is actually allocated, we say that class is instantiated i.e an object is created.
An object is a representative or specimen of a class. In other words, object is an instance of a class. Each instance of a class will have its own data. Actually an object is a bundle of related variables and methods (functions).
Objects possess two characteristics :
1. State : condition of an item.
2. Behavior : Observable effects of an operation or event including its results.
State can be of two types : Active state which reflects the behavior and Passive State refers to state which does not change. The behavior of an object forms the interface to the external world.
Features of OOP (Features of Object oriented Concept)
Abstraction:
The process of extracting the essential information and hiding the irrelevant details
Encapsulation:
The process of binding code and data together in the form of a capsule
Inheritance:
The feature by which one class acquires the properties and functionalities of another class
Polymorphism:
The feature that allows the same interface to be used for a general set of actions
Explanations with examples
Abstraction is the process of exposing the relevant things and ignoring the irrelevant details. The easiest way to understand and appreciate this concept of handling complexity is by studying the example of Globe, a model/prototype of earth that is used by students to understand its geography. Globe provides only that information that is required and if too much of information is mentioned in it i.e. streets, lakes etc, it becomes too complex to comprehend. Hence Globe abstracts unwanted information and makes it easy to comprehend the complex earth.
Encapsulation is the mechanism that binds together code and the data it manipulates, and keeps both safe from outside interference and misuse. The data is not accessible to the outside world and only those functions that are wrapped in the class can access it. These functions provide the interface between the object’s data and the program. The insulation of the data from the direct access by the program is called data hiding.
In OOP, code and data are merged into an object so that the user of an object can never peek inside the box. This is defined as encapsulation (i.e. Object is a capsule encapsulating data and behavior). All communication to it is through messages (i.e function calls which we use to communicate to the object). Messages define the interface to the object. Everything an object can do is represented by its message interface. Therefore, we need not know
anything about what is in the object when we use it.
Inheritance is the process by which one class acquires the properties and functionalities of another class. This is important because it supports the concept of hierarchical classification.. Inheritance provides the idea of reusability of code and each sub class defines only those features that are unique to it.
Polymorphism is a feature that allows one interface to be used for a general class of actions. An operation may exhibit different behavior in different instances. The behavior depends on the types of data used in the operation. It plays an important role in allowing objects having different internal structures to share the same external interface. Polymorphism is extensively used in implementing inheritance.
21 June 2009
1 HOW TO AVOID VIRUS, SPREADING THROUGH USB DRIVE
USB Security measures in Windows
DON’T GET PANIC ABOUT THE VIRUS ,Try to avoid it
• Virus & worms are easily spread by carrying it on a removable medium such as USB drive, Flash based Mp3 players(Ipods), CD, Floppy
• USB drive is otherwise called as “Flash Drive”,“Thumb Drive”, “Memory stick”, “External USB Hard Disk”.
• Even though we have very good Antivirus, new Viruses are one step ahead than Antivirus
• We cannot restrict USB Drive, but we can avoid spreading of virus & worms through USB Drive.
• So we have to be little bit careful while working with USB Drive,some precautionary steps are follows
STEP 1:
• Don’t allow the USB Drive to Auto Play after plug in, cancel it.
• Go to My computer
• Devices with Removable storage
• Do not Double click the USB Drive
• Note the drive letter assigned to USB Drive as mentioned in the Figure
• Here its E:
STEP 3:
• Go to Start > Run > Type (the drive letter+:)(Here its E:)- Refer the figure shown below
• Click on "OK" button or Hit the enter key
Now you can view the Contents of your USB Drive• Copy the necessary files only, dont use cntrl+A
Repeat the whole steps whenever you are plug in the USB drive. In this way you can keep your Desktop and Laptop free from viruses & worms.
• It may be a time consuming process, but no other way to avoid the virus.
HOW TO IDENTIFY VIRUS AFFECTED USB DRIVE
If you find such a screen after plugging in the USB drive, its a virus affected one.Immediately click on cancel button
If you had already enabled hidden files and folders view, you can see the virus file from an affected USB drive.
While doing the STEP 3: you can find the virus files as shown below
Remember one thing.
Do not doubleclick or autorun a removable storage device (especially USB drive)
If you doubleclick or autorun it the autorun will be executed which will inturn execute the virus file.
To view or enable the hidden files and folders
• Open any folder• Goto Tools > Folder options > click view tab
• Under view tab goto > Advanced settings > Hidden files and folders
• Click radio button “show hidden files and folders”
• Remove check mark “Hide extension for known file types”
• Remove check mark “Hide protected operating system files”
• Click Apply , ok.
16 April 2009
0 Static IP for UNIX machines
Static IP for red hat Linux:
· Use setup/neat to configure static IP on the machine. Command is # setup or # neat
· This will pop up a new screen with various options to configure IP. Choose the appropriate one.
Static IP for SuSe Linux:
· Use yast to change the IP address of the machine. Command is # yast
· Configure the IP with the given options
Static IP for Solaris:
You should have all the required information regarding the new IP like IP address, subnet mask, Default gateway and name. Modify the following files with the new entry.
· # vi /etc/hosts. Enter the host name and IP address of the machine.
· # vi /etc/netmasks. Enter the subnet mask for the IP.
· # vi /etc/defaultrouter. Enter the default gateway.
Static IP for IBM AIX:
· Use smit to change the IP address. Command is # smitty tcpip
· Configure the IP with the given options
Static IP for HP UX:
· Modify the entries in the file /etc/rc.config.d/netconf
· Give the command # vi /etc/rc.config.d/netconf
· Configure the IP with the given options and reboot the system by command # reboot
· You can also use SAM to change the IP Address of the machine by command #sam and select appropriate options to configure IP Address
0 FEATURES OF OWB (Oracle Warehouse Builder)
FEATURES OF OWB (Oracle Warehouse Builder)
¢ Data Quality
¢ Data Auditing
¢ Fully integrated, rational and relational data modeling
¢ Full cycle management of data and metadata
¢ Create data warehouses
¢ Data Consolidation and Integration
¢ Clean and transform data to provide quality information
Earlier Versions of OWB (Oracle Warehouse Builder)
¢ Oracle9i Warehouse Builder v9.2.0.2.8 for Solaris
¢ Oracle Warehouse Builder 10g Release 1 (10.1.0.4)
¢ Oracle Warehouse Builder 10g Release 2 (10.2.0.1)
¢ Oracle Warehouse Builder 11g Release 1 (11.1.0.6.0) Standalone Software
What’s new in OWB (Oracle Warehouse Builder)
¢ Enhancements to Warehouse Builder Architecture: One Unified Repository
In previous Warehouse Builder releases, the runtime environment and the design environment resided in separate repositories: the runtime repository and the design repository. Beginning in this release, both environments share a single Warehouse Builder repository. If you prefer to separate the environments, you can achieve this by creating multiple repositories.
¢ User Interface Enhancements
In previous releases of Warehouse Builder, editing different types of objects required using different editors. This release provides one common look and feel for all editors, including automatic layout, dockable panels, bird's eye view, and zoom capabilities. A new property inspector standardizes the properties interface for all objects.
¢ Enhancements to Accessing Non-Oracle Data and Metadata
Creating Flat file Targets
In previous releases, you used the Mapping Editor when you wanted to create a new flat file target for which there was no existing metadata to import. You added an unbound flat file operator to the mapping canvas and then used the operator editor to add and define fields for the flat file. Beginning in this release, the preferred method is to use the Create Flat File Wizard. Compared to the previous method, the Create Flat File Wizard enables a wider range of functionality such as specifying the character set and defining single or multiple record types.
Introducing Non ASCII Flat files
In previous releases, importing binary files into Warehouse Builder was difficult or not possible, depending on the complexity of the file. Beginning in this release, you can use the Create Flat File Wizard to introduce non ASCII files into Warehouse Builder
Sampling ASCII flat files
This release introduces enhancements to the Flat File Sample Wizard that include sampling and importing new data types such as GRAPHIC, RAW, and SMALLINT.
Custom Metadata Interface
Beginning with this release of Warehouse Builder, you can define and use SQL- or XML-based custom metadata stores to retrieve definitions of source and target objects such as tables and views
Deploying to Remote and Non-Oracle Targets
Beginning with this release, you can deploy objects to a remote or a non-Oracle database. This means that you can configure a target operator in a mapping to refer to a remote Oracle location or a non-Oracle location.
¢ Enhancements to Accessing Non-Oracle Data and Metadata
Impact Analysis and Change Management
Warehouse Builder now provides graphical tools for analyzing the possible outcomes to proposed metadata changes. Determine the potential costs of your proposed changes
Defining User Defined Properties (UDP’s)
In the previous release, you could assign UDPs only to existing Warehouse Builder repository objects. You defined UDPs using the OMB Plus scripting command OMBDEFINE and prefixed the new property name with UPD_. Beginning in this release, you can define new objects in addition to new properties. Prefix all user defined objects and properties with UD_. Any properties you defined in the previous release using the UDP_ prefix are still valid; however, UD_ is now the preferred prefix for both properties and objects.
New User Defined Objects
Beginning in this release, you can define new folders, first class objects, and second class objects. For each object you can define properties and associations, manage them in the Warehouse Builder repository, and assign custom icons for unique recognition. Because user defined objects are repository objects, you can access metadata reports and lineage and impact analyses.
User Defined Icons
You can import custom icons for unique representation in the user interface of any of the existing objects and user defined objects.
Enhancements to Metadata Security
Beginning in this release, Warehouse Builder offers a user interface for defining and implementing metadata security policies.
¢ ETL Design and Performance Enhancements
Scheduled Process Executions
In previous releases, you were required to use Oracle Workflow to schedule the execution of Warehouse Builder mappings and process flows. Beginning in this release and when using Oracle database release 10g or higher, you can create schedules to plan when and how often to execute mappings and process flows. You can define schedules to execute once or to execute repeatedly based on an interval you define in the user interface
High Performance Data Extraction from Remote Sources
In previous releases, if you designed mappings that extracted data from remote sources, you could expect performance to be slow as data was accessed via database links. Beginning in this release, you can use Transportable Modules to replicate remote Oracle databases to the local Oracle database and thereby achieve rapid data extraction
Pluggable Mappings
This new feature in Warehouse Builder increases your design productivity through reusable logic that you can incorporate into various ETL processes or share between many designers.
Set Based Updates
In previous versions, when you set an Oracle target operator to load using an UPDATE loading type, Warehouse Builder updated the target in row based mode. Beginning with this release, if you configure the Oracle target module to generate 10g PL/SQL code, Warehouse Builder performs UPDATES in set based mode. For modules configured to generate 9i and earlier versions of PL/SQL code, Warehouse Builder performs UPDATES on targets in row based mode.
User Defined Data types
Beginning in this release, Warehouse Builder offers a user interface for creating user defined data types and using them for mapping in Warehouse Builder. You can use the user defined types to model real-world entities such as customers and purchase orders as objects in the database.
¢ Enhancements to Enable Quality Information
Slowly Changing Dimensions
Warehouse Builder now provides support for designing, deploying, and loading relational Type 1, 2, and 3 SCDs. For information on defining SCDs
New Sources and Targets
You can now read data from any source or write data to any target using PL/SQL and Java APIs. You can also read data from or write data to table functions and Oracle streams.
Data Profiling
This new feature in Warehouse Builder enables you to discover the structural content of your data, capture its semantics, and identify any anomalies or outliers prior to loading it in your BI system. With data profiling, you can automatically derive business rules and mappings to clean data, derive quality indices such as Six Sigma, and use auditors to continuously monitor data quality. You can integrate data profiling into your ETL process.
¢ Enabling Business Intelligence
Dimensional Objects
In the previous release, you had to use the OLAP bridge to deploy dimensional objects to an analytic workspace. Beginning with this release, the logical design of the dimensional object is separated from the storage. You can use the same metadata to create and manage both your relational and multidimensional data stores. You define the dimensional object and can then deploy them directly either to a relational schema or to an analytic workspace.
Business Intelligence Objects
Beginning with this release, you can define or derive business intelligence objects that can be integrated with analytical business intelligence tools such as Oracle BI Discoverer and Oracle BI Beans. You can deploy business intelligence objects defined using Warehouse Builder to these tools and then perform adhoc queries on the warehouse data.
¢ Enhancements to Enable Expertise Capture
Beginning with this release, you can create experts that enable you to build your own applications by reusing Warehouse Builder components. Experts are solutions that enable advanced users to design solutions that simplify routine or complex tasks that can be performed by end users.
¢ Terminology Changes
Synchronize replace Reconcile
For an operator such as a source and target operator or a key lookup, Warehouse Builder maintains a version of the object in the repository. Propagating changes between an operator and its repository object is known as synchronizing. In previous releases, this process was known as reconciling or reconciliation. These terms are no longer used.
Refresh replace Synchronize
When multiple users access the same repository, use the refresh command to update the Design Center display. In previous releases, this command was called synchronize. Synchronize now refers to the action of updating an operator with an associated repository object.
User Defined Process replace External Process
In previous releases, an activity that you defined in a process flow to launch an external process was known as an External Process activity. In this release, the term is now User Defined Process.
¢ Improvements to the Documentation Set
The documentation set has been reorganized and revised.
The book formerly entitled the Oracle Warehouse Builder Installation and Configuration Guide is now entitled the Oracle Warehouse Builder Installation and Administration Guide and includes administration information such as implementing security.
Oracle Warehouse Builder User's Guide now includes enhanced introductory and conceptual information.
Oracle Warehouse Builder API and Scripting Reference now include information on using experts and the Expert Editor, which was formerly contained in the User's Guide.
15 April 2009
0 Running ANT
Command Line
If you've installed Ant as described in the Installing Ant section, running Ant from the command-line is simple: just type ant.
When no arguments are specified, Ant looks for a build.xml file in the current directory and, if found, uses that file as the build file and runs the target specified in the default attribute of the <project> tag. To make Ant use a build file other than build.xml, use the command-line option -buildfile file, where file is the name of the build file you want to use
If you use the -find [file] option, Ant will search for a build file first in the current directory, then in the parent directory, and so on, until either a build file is found or the root of the filesystem has been reached. By default, it will look for a build file called build.xml. To have it search for a build file other than build.xml, specify a file argument.
Note: If you include any other flags or arguments on the command line after the -find flag, you must include the file argument for the -find flag, even if the name of the build file you want to find is build.xml.
You can also set properties on the command line. This can be done with the -Dproperty=value option, where property is the name of the property, and value is the value for that property. If you specify a property that is also set in the build file (see the property task), the value specified on the command line will override the value specified in the build file. Defining properties on the command line can also be used to pass in the value of environment variables - just pass -DMYVAR=%MYVAR% (Windows) or -DMYVAR=$MYVAR (Unix) to Ant. You can then access these variables inside your build file as ${MYVAR}. You can also access environment variables using the property task's environment attribute.
Options that affect the amount of logging output by Ant are:
-quiet, which instructs Ant to print less information to the console;
-verbose, which causes Ant to print additional information to the console;
-debug, which causes Ant to print considerably more additional information.
It is also possible to specify one or more targets that should be executed. When omitted, the target that is specified in the default attribute of the project tag is used.
The -projecthelp option prints out a list of the build file's targets. Targets that include a description attribute are listed as "Main targets", those without a description are listed as "Subtargets", then the "Default" target is listed.
Command-line Options Summary
ant [options] [target [target2 [target3] ...]]
Options:
-help, -h | print this message |
-projecthelp, -p | print project help information |
-version | print the version information and exit |
-diagnostics | print information that might be helpful to diagnose or report problems. |
-quiet, -q | be extra quiet |
-verbose, -v | be extra verbose |
-debug, -d | print debugging information |
-emacs, -e | produce logging information without adornments |
-lib <path> | specifies a path to search for jars and classes |
-logfile <file> | use given file for log |
-l <file> | use given file for log |
-logger <classname> | the class which is to perform logging |
-listener <classname> | add an instance of class as a project listener |
-noinput | do not allow interactive input |
-buildfile <file> | use given buildfile |
-file <file> | use given buildfile |
-f <file> | use given buildfile |
-D<property>=<value> | use value for given property |
-keep-going, -k | execute all targets that do not depend on failed target(s) |
-propertyfile <name> | load all properties from file with -D properties taking precedence |
-inputhandler <class> | the class which will handle input requests |
-find <file> | (s)earch for buildfile towards the root of |
-s <file> | the filesystem and use it |
Ant tasks
The following tables provide a short description of each task.
- Archive Tasks (Jar, Ear, Tar, War, GZip, Zip etc.)
- Audit/Coverage Tasks (JDepend, JPorbe, MMetrics, etc. )
- Compile Tasks (javac, jspc, rmic etc.)
- Deployment Tasks (ServerDeploy)
- Documentation Tasks (Javadoc, Stylebook)
- EJB Tasks
- Execution Tasks (Ant, Antcall, Exec, Java, Sleep etc.)
- File Tasks (Attrib, Copy, Copydir, delete, Mkdir etc.)
- Java2 Extensions Tasks (Jarlib-available, Jarlib-display etc.)
- Logging Tasks (Record)
- Mail Tasks (Mail, MimeMail)
- Miscellaneous Tasks (Echo, GenKey, Script, Sql etc.)
- .NET Tasks
- Pre-process Tasks (ANTLR, AntStructure, Import, Xslt/Style etc.)
- Property Tasks (Available, Basename, BuildNumber, LoadFile etc.)
- Remote Tasks (FTP, Telnet etc. )
- SCM Tasks (Cvs, CvsChangeLog, CVSPass etc.)
- Testing Tasks (Junit, JunitReport, Test)
- Visual Age for Java Tasks
Core tasks
- Ant
- AntCall
- AntStructure
- Apply/ExecOn
- Available
- Basename
- BuildNumber
- BUnzip2
- BZip2
- Checksum
- Chmod
- Concat
- Condition
- Supported conditions
- Copy
- Copydir
- Copyfile
- Cvs
- CvsChangeLog
- CVSPass
- CvsTagDiff
- Defaultexcludes
- Delete
- Deltree
- Dependset
- Dirname
- Ear
- Echo
- Exec
- Fail
- Filter
- FixCRLF
- GenKey
- Get
- GUnzip
- GZip
- Import
- Input
- Jar
- Java
- Javac
- Javadoc/Javadoc2
- LoadFile
- LoadProperties
- Mail
- MacroDef
- Manifest
- Mkdir
- Move
- Parallel
- Patch
- PathConvert
- PreSetDef
- Property
- Record
- Rename
- Replace
- Rmic
- Sequential
- SignJar
- Sleep
- Sql
- Style
- Subant
- Sync
- Tar
- Taskdef
- Tempfile
- Touch
- TStamp
- Typedef
- Unjar
- Untar
- Unwar
- Unzip
- Uptodate
- Waitfor
- War
- WhichResource
- XmlProperty
- Xslt
- Zip
Ant command line arguments
Several tasks take arguments that will be passed to another process on the command line. To make it easier to specify arguments that contain space characters, nested arg elements can be used.
value - a single command-line argument; can contain space characters.
file - The name of a file as a single command-line argument; will be replaced with the absolute filename of the file.
path - A string that will be treated as a path-like string as a single command-line argument; you can use ; or : as path separators and Ant will convert it to the platform's local conventions.
pathref - Reference to a path defined elsewhere. Ant will convert it to the platform's local conventions.
line - a space-delimited list of command-line arguments.
It is highly recommended to avoid the line version when possible. Ant will try to split the command line in a way similar to what a (Unix) shell would do, but may create something that is very different from what you expect under some circumstances.
Examples
<arg value="-l -a"/>
is a single command-line argument containing a space character.
<arg line="-l -a"/>
represents two separate command-line arguments.
<arg path="/dir;/dir2:\dir3"/>
is a single command-line argument with the value \dir;\dir2;\dir3 on DOS-based systems and /dir:/dir2:/dir3 on Unix-like systems.
Command-line Options Summary
ant [options] [target [target2 [target3] ...]]
Options:
-help, -h | Displays help information describing the Ant command and its options |
-projecthelp, -p | Print project help information |
-version | Print the version information and exit |
-diagnostics | Print information that might be helpful to diagnose or report problems. |
-quiet, -q | Suppresses most messages not originated by an echo task in the buildfile |
-verbose, -v | Displays detailed messages for every operation during a build. |
-debug, -d | Print debugging information |
-emacs, -e | Produce logging information without adornments |
-lib <path> | Specifies a path to search for jars and classes |
-logfile <file> | Use given file for log |
-l <file> | Use given file for log |
-logger <classname> | Specifies a class to handle Ant logging. |
-listener <classname> | Add an instance of class as a project listener |
-noinput | Do not allow interactive input |
-buildfile <file> | Use given buildfile |
-file <file> | Use given buildfile |
-f <file> | Use given buildfile |
-D<property>=<value> | Defines a property name-value pair on the command line. |
-keep-going, -k | execute all targets that do not depend on failed target(s) |
-propertyfile <name> | load all properties from file with -D properties taking precedence |
-inputhandler <class> | the class which will handle input requests |
-find <file> | Search for buildfile towards the root of the filesystem and use it |