Professional Documents
Culture Documents
Information Management
Introduction to Informix v2
Presentation
An IBM Proof of Technology
PoT.IM.09.1.078.01
Introduction to Informix
IBM Software
Page 3
IBM Software
Introductions
• Please introduce yourself
• Current integration
technologies/tools in use
IBM Software
Agenda
• Getting to know the data server
– Overview
– Architecture, including extensibility
– Key components
Page 4
IBM Software
IBM Software
ISBN-13: 978-1-58347-076-3
6 Introduction to Informix – V2 ISBN-10: 158347076X
© 2013 IBM Corporation
Page 5
IBM Software
IBM Software
Page 6
IBM Software
IBM Software
Page 7
IBM Software
IBM Software
Page 8
IBM Software
– Zend framework
• Supported through Informix’s DRDA protocol
– Ruby / Rails
• Several gem and adaptors available
– Perl / Python
• DBD::Informix and DBD::ODBC support for Perl
• InformixDB driver for Python
– .Net
• Informix .Net provider – Informix specific provider
• IBM Data Server .Net provider – Uses the DRDA protocol © 2013 IBM Corporation
13 Introduction to Informix – V2
IBM Software
Page 9
IBM Software
IBM Software
Page 10
IBM Software
IBM Software
Page 11
IBM Software
IBM Software
Page 12
IBM Software
– As the number of processes increases, each process waits longer and longer
for its turn on the CPU/core
p5
p4 p4 p4
p6
p3 p3 p3 p7
p2 p2 p2 p8
p1 p1 p1 p1
IBM Software
100
CPU
utilization
Page 13
IBM Software
– Integrated parallelism
CPU 1 CPU 2 CPU 3 CPU 4
Can control the O/S to a degree
Scalable
IBM Software
Page 14
IBM Software
IBM Software
VP
End-user tasks
© 2013 IBM Corporation
26 Introduction to Informix – V2
Page 15
IBM Software
100
CPU
utilization
IBM Software
Page 16
IBM Software
IBM Software
Page 17
IBM Software
• Virtual portion
– User thread stacks for
operations, in-memory
sort space and other
objects
• Tunable but dynamic
IBM Software
Page 18
IBM Software
IBM Software
Page 19
IBM Software
IBM Software
– List – potential data values for fragmentation are known and relatively limited
• Some support of out-of-bounds data values
Page 20
IBM Software
Write
Sort
Time to DSA processes
process tasks concurrently
DSA breaks tasks
Join into subtasks
Scan
IBM Software
Page 21
IBM Software
Informix extensibility
IBM Software
Page 22
IBM Software
IBM Software
– The typical (and only) relational database oriented approach is to create a self-
referencing table
Page 23
IBM Software
– Procedural
• Select all employees for the specified manager
Select * from
• Recursively select all employees under each employee e1,
person employee e2,
employee e3,
• Performance impact: execution time increases
employee e4,
exponentially with each level employee e5
where e5.mgr_id = some_val
and e4.mgr_id = e5.emp_id
– Set processing and e3.mgr_id = e4.emp_id
and
• For each level, select the employees e2.mgr_id = e3.emp_id
and
• Performance impact: join complexity increases e1.mgr_id = e2.emp_id;
with each level
IBM Software
Page 24
IBM Software
IBM Software
select y.name
from e_yellow_pages y
where contains ( y.location,
circle( :gps_loc, ‘30 miles’ ) )
and y.business match “automotive service”
and doccontains( y.description,
“porsche and brakes” )
and not booked ( y.occupied, period
(today,today+5));
Page 25
IBM Software
IBM Software
– Each event has to have its own LMN 2013-01-01 09:30:00.00000 12.44 10
row storing the event data plus KCD 2013-01-01 09:30:00.00000 194.00 10000
redundant data that doesn’t
LMN 2013-01-01 09:30:00.00000 12.54 250
change from one event to the
next
As events occur, row count
explodes
© 2013 IBM Corporation
48 Introduction to Informix – V2
Page 26
IBM Software
– Complex Querying
• Can be difficult to write SQL to work with the data
IBM Software
Stock Transactions
XYZ 2006-01-01, daily, {(12.34,1234567), (12.56,950000), (12.34,5555567),..}
LMN 2006-05-05, daily, {(199.08,678900), (198.55,345000), (198.12,850250),..}
NOP 2003-09-01, daily, {(9.34,890567), (9.56,989000), (9.40,1000780),..}
Page 27
IBM Software
– Space Savings
• Provides high degree of space saving
• Can be over 80% more efficient over standard relational layout
– Usability
• Bundled routines provide most commonly used functionality
• Can write custom functions if needed
• Handles operations hard or impossible to do in standard SQL
IBM Software
Competition 970,000,000
Competition 228
Page 28
IBM Software
IBM Software
This application
was written in
PHP and Perl
Page 29
IBM Software
IBM Software
Page 30
IBM Software
IBM Software
Key components
Page 31
IBM Software
Key components
• While pages aren’t administered directly, their size is important
– Set when a dbspace is created
• For each page size used in the instance, a separate buffer pool (of
that page size) is created
– So a page’s data can be stored in a single buffer
– The size of each buffer pool is configurable
– All spaces of a given page size use a single buffer pool of that size © 2013 IBM Corporation
59 Introduction to Informix – V2
IBM Software
Key components
• Part of the instance / database design process (discussed later)
should include determining the most efficient page size for the
most important and / or largest tables and indexes
– Dbspaces using those different page sizes would be created
– When deploying / creating the database, tables would be created in the “right
sized” dbspace
Page 32
IBM Software
IBM Software
Key components
• In earlier versions of Informix, a chunk’s size was fixed and
unchangeable once created
– This works best when cooked files are used for chunks
• The file’s size is increased
Page 33
IBM Software
IBM Software
Key components
• In earlier versions of Informix, a dbspace’s size was static
– Its size was determined by the number and size of its chunks
– If a dbspace was running out of space, the only solution was to add another
chunk
• As a result, there are two options when planning for potential out-
of-space conditions in a dbspace
– Allow the underlying chunks to dynamically expand
Page 34
IBM Software
IBM Software
Key components
• Critical files, locations or objects
– $INFORMIXDIR
• The directory where the Informix binary is installed
• Usually /opt/IBM/informix/version_number
• $INFORMIXDIR/bin needs to be in the $PATH on the server hosting Informix
instances
– onconfig.some_name
• The instance’s configuration file
• Where instance processor, memory and other parameters are set
• Is located in $INFORMIXDIR/etc
– sqlhosts
• Contains connection information for Informix data services
• It’s like a phone book – what server(s) are hosting Informix services and what port
numbers are being used?
• Is located in $INFORMIXDIR/etc
Page 35
IBM Software
Key components
• Critical files, locations or objects (cont.)
– /etc/services (or equivalent, O/S dependent)
• Edited to reflect which port numbers are being used for Informix service
communication
• Port number entries from this file are used in conjunction with the sqlhosts file
IBM Software
Key components
• Critical instance components
– rootdbs
• The core dbspace in the instance, is typically named rootdbs
• Contains instance-level databases and other objects
• Location and size defined in $ONCONFIG
– Physical log
• Contains “before” images of changed data
• Used to ensure transactional consistency during normal operations (rolling back
aborted transactions) and when restarting the instance after an abnormal shutdown
• The instance can not function without it
• Initial location and size defined in $ONCONFIG
• Created in the rootdbs when an instance is initialized, it is usually moved to a
dedicated log space
• Can be moved or resized dynamically while the instance is operational
Page 36
IBM Software
Key components
• Critical instance components (cont.)
– Logical Logs
• Contains transaction records of changed data in logged databases
An instance must
have at least 3
logical logs
• Location and
size defined in
$ONCONFIG
IBM Software
Key components
• Critical instance components (cont.)
– Logical Logs (cont.)
• Created in the rootdbs when an instance is initialized, these logs are usually
moved to a dedicated log space
• Logical logs can be dynamically created or dropped while the instance is operational
• When creating a logical log, its size and the dbspace it’s stored in can be specified
• Logical logs are cyclical objects, will be over written with new transaction information
• Filled logical logs MUST be backed up / archived regularly to enable re-use
• Logical log backups are critical components when attempting to restore an
instance or parts thereof
• When planning an instance’s final configuration, how many logical logs should there
be and what size?
• It depends on perceived business risk and backup / recovery strategy
• Best practice – logs should fill every 15 - 20 minutes under normal workloads,
should have enough logical logs to hold 1 - 2 days of transactions
© 2013 IBM Corporation
70 Introduction to Informix – V2
Page 37
IBM Software
Key components
• Best practice for installing Informix
11_7
12_1
shared_libs
IBM Software
Key components
• A peek at $ONCONFIG
Parameters
Page 38
IBM Software
Key components
• A peek at $ONCONFIG
IBM Software
Key components
• A peek at $SQLHOSTS
Page 39
IBM Software
IBM Software
Page 40
IBM Software
IBM Software
• More, separately allocated disk allocations on different disks are better than multiple
subsets from a single RAIDSET
• Otherwise I/O becomes serialized
• Must, when possible, design to the physical devices to ensure throughput while
minimizing I/O contention
• Ensure tables are created in dbspaces using the most efficient row size for the data
• Increases buffer efficiency
• Minimizes wasted space
Page 41
IBM Software
– As a result
• There should never be a unique index in a database
• If uniqueness is required, it’s a business rule to be enforced with the appropriate
constraint
IBM Software
– For example
Data in the table
my_table 1|some_text_1
(col1 integer, 2|some_text_2
col2 varchar(75), 3|some_text_3
. . . . .); 4|some_text_4
5|some_text_5
6|some_text_6
7|some_text_7
etc
© 2013 IBM Corporation
80 Introduction to Informix – V2
Page 42
IBM Software
IBM Software
Page 43
IBM Software
• Most administrators use local authentication for this ID rather than using LDAP or
other mechanisms
IBM Software
– If using raw space, create the character-based partitions and the symbolic links
to them
Page 44
IBM Software
/dev/rmt/c3t4d0/snum
IBM Software
– Required to
• Create the informix ID and group if it doesn’t already exist
• Change file ownership and set security permissions
Page 45
IBM Software
IBM Software
– Can re-execute the installer to add, or delete functionality as needed after first
install
Page 46
IBM Software
Informix
Extensions and Backup Demonstration Enterprise Admin
and database Dataload Utilities GLS Base Server
Tools Restore Replication Utilities
scripts
Performance Western
J/Foundation onunload
ON-Bar Monitoring Europe
Database
dbload Monitoring Eastern Europe
extensions TSM
CSDK I-Connect
Japanese
OAT Thai
IBM Software
Page 47
IBM Software
IBM Software
Page 48
IBM Software
IBM Software
• Instance data
» Cooked file support only at this time, not raw
• Both
Page 49
IBM Software
IBM Software
– Same functionality can be used for other Informix utilities so they function
properly in the absence of pre-set environment parameters
• Supported by the oninit, onmode, oncheck, onstat, ontape, onclean,
onload, onlog, onunload, onparams and onspaces binaries
Page 50
IBM Software
– Best practice
• Monitor initialization through the instance log via tail –f
i – initialize instance
• Execute the initialization command v – verbose command output
w – wait for instance stability
oninit -ivwy before returning command
prompt
y – yes, execute the
initialization © 2013 IBM Corporation
97 Introduction to Informix – V2
IBM Software
Page 51
IBM Software
IBM Software
Page 52
IBM Software
IBM Software
Page 53
IBM Software
IBM Software
Page 54
IBM Software
IBM Software
$INFORMIXDIR/OAT/StartApache
Or
$INFORMIXDIR/OAT/StopApache
Page 55
IBM Software
IBM Software
Page 56
IBM Software
IBM Software
Page 57
IBM Software
IBM Software
Page 58
IBM Software
• Can either use CLI utilities or direct SQL against the instance’s
shared memory structures
– SQL queries would be executed against the sysmaster, sysadmin or sysha
databases
• Many of the tables and columns in these tables are pointers into the instance’s
shared memory
IBM Software
– onclean – used to force the instance offline and clean up any residual shared
memory; rarely used, usually only if the O/S operating state is affected
– oncheck – check and repair tables, indexes and dbspaces for inconsistencies
Page 59
IBM Software
IBM Software
Page 60
IBM Software
– File – starts the utility and executes the contents of file containing SQL
operations
© 2013 IBM Corporation
117 Introduction to Informix – V2
IBM Software
Page 61
IBM Software
IBM Software
– When finished entering the commands, use the esc key to exit input mode and
be able to Run (or execute) the command(s)
• Results will be displayed in the utility window
• May need to use the Next option to scroll through all the results
Page 62
IBM Software
dbaccess stores
– To enter SQL
q
then
n
esc
then
r
© 2013 IBM Corporation
121 Introduction to Informix – V2
IBM Software
q
then
c
– Use the cursor keys to select the file name, press enter / return to select
Page 63
IBM Software
IBM Software
Page 64
IBM Software
(expression) 107
IBM Software
(expression) 108
Page 65
IBM Software
IBM Software
Page 66
IBM Software
• For the purposes of this presentation, will look at tasks that need to
occur in a newly initialized instance
– Creation of additional spaces for instance and end-user data storage
– Creation of end-user databases and tables
IBM Software
Page 67
IBM Software
• Examples:
onspaces –c –d index_1 –p
/opt/IBM/informix/devices/inst_1/inst1_idx_1 –o 0 –s 100000
onspaces –c –d archive_space –p /
opt/IBM/informix/devices/inst_1/inst1_arc_2y –s 1000000 –o 0 –k 12
IBM Software
• Examples:
Page 68
IBM Software
IBM Software
• Once created, delete the original logical logs from the rootdbs
Page 69
IBM Software
– Overriding rule –
model the data
the way the
business uses it
IBM Software
Multiset List
Row
Set
Named Unnamed
© 2013 IBM Corporation
136 Introduction to Informix – V2
Page 70
IBM Software
– Can contain built-in, collection, opaque, distinct, another row type data
types
• Caveat: no serial or serial8
ADVANTAGES DISADVANTAGES
Less coding More complex
Refers to a group of elements by a
Not simple SQL
single name
Intuitive Sys Adm is more complex
No “alter type” statement, must drop
and recreate
IBM Software
Page 71
IBM Software
insert statement:
select statement:
select * from student where name.lname matches "Doe”;
student_id 1234
name ROW('John ','Doe ')
address ROW('1234 Main Street ','
,'Anytown ','TX','75022 ')
company Acme Software
IBM Software
Multiset List
Row
Set
Named Unnamed
© 2013 IBM Corporation
140 Introduction to Informix – V2
Page 72
IBM Software
• Useful when
– The data is meaningless without the context of the other members in the
collection (e.g., golf scores, to-do list, set of names)
IBM Software
Page 73
IBM Software
IBM Software
Multiset List
Row
Set
Named Unnamed
© 2013 IBM Corporation
144 Introduction to Informix – V2
Page 74
IBM Software
– Distinct
• Data type modeled on an existing data type
• Uses inheritance to incorporate the internal structure of the source type
• Has a unique name to distinguish it from other similar “types”
• Might have operations and casts defined over its source types
– Opaque
• Data type that is unknown to the database server
• You must define the internal structure, functions, and operators for the type
IBM Software
– Will require casts (implicit or explicit) to execute operations using two or more
distinct types
• Not discussed here
Page 75
IBM Software
– All access to an opaque type is through functions written by the user. You
define the storage size of the data type and input and output routines
IBM Software
Page 76
IBM Software
IBM Software
Page 77
IBM Software
IBM Software
– ON-Bar
• Parallelized, multi-threaded
• Supports multiple simultaneous backup devices, including tape and disk
• Requires an external tape management system
• Informix Primary Storage Manager (PSM) is included in the Informix binary
• Can backup the entire instance or just a subset of dbspaces
• Can restore to an instance, dbspace or to a moment-in-time © 2013 IBM Corporation
152 Introduction to Informix – V2
Page 78
IBM Software
• Additional functionality has been added so that the utility can scan
a backup and restore specific data objects from the backup, aka
table-level restore
– Controlled by a command file that is used to determine what data is extracted
from the backup and into which table the data is placed
• Does not have to be the table that originally held the data
IBM Software
Page 79
IBM Software
IBM Software
– Regardless of the of the overall strategy, it is critical to backup and protect the
instance’s logical logs as they fill
• Either utility can be used to back up the logical logs
• Once backed up, they need to be rotated off-site with the instance backup
– The same utility MUST be used for instance and logical log backups
• Can NOT backup instance with ON-Bar and use ontape for logical log backups
Page 80
IBM Software
L0 L1 L1 L2 L2 L1 L0 L1 L2
IBM Software
– Setting LTAPEDEV to /dev/null will result in filled logical logs being marked
available for re-use immediately
• They are not backed up and will be overwritten
• Making it very hard to restore from
• However, instance operations will not be suspended if the logical logs roll and a
logical log backup has not occurred
Page 81
IBM Software
See the Informix Backup and Recovery Guide for more information on these
parameters
Will also have to configure storage pools and other structures in the external
storage management system
IBM Software
– Best practice is to define target locations for instance and logical log backups
through the provided utilities
• Not discussed here
Page 82
IBM Software
ontape –s –L backup_level
– ON-Bar
• Space backup (can be all spaces [aka instance] or just a named set)
onbar –b –w [ -L backup_level ]
IBM Software
• Rather than forcing a full instance backup, a fake backup sets flags in the instance’s
reserved pages as though the backup occurred and the administrative operation can
complete
• Obviously can’t restore from these!
• Once all the administrative operations are completed, a normal backup should be
created immediately to capture the instance changes
© 2013 IBM Corporation
162 Introduction to Informix – V2
Page 83
IBM Software
ontape –s –L 0 –t STDIO -F
• ON-Bar
onbar –b –F
IBM Software
Page 84
IBM Software
• Dbspace-specific
ontape –r –D dbspace_name
Note: there other syntax options not shown here, for example physical-only restore
© 2013 IBM Corporation
165 Introduction to Informix – V2
IBM Software
• It is important to use the same basic option on the restore as was used for the
backup
• Whole instance vs dbspace (ie. with or without the –w flag)
• One of the nice features of ON-Bar is that an interrupted restore can be restarted
from the point of interruption rather than having to restart from the beginning
Page 85
IBM Software
• Dbspace-specific
• Notice, only available with dbspace backup syntax (without the –w flag)
• Logical only
• Restores logical logs to previously restored dbspaces
» Only available without the –w flag
IBM Software
Page 86
IBM Software
IBM Software
Page 87
IBM Software
Reference materials
For more information about Informix:
● Informix Software
http://www-306.ibm.com/software/data/informix/
● IBM Informix DeveloperWorks
http://www.ibm.com/developerworks/db2/products/informix/index.html
● Customer Success Stories
http://www-
306.ibm.com/software/success/cssdb.nsf/softwareL2VW?OpenView&Count=3
0&RestrictToCategory=dmmain_InformixDynamicServer
● International Informix Users Group
http://www.iiug.org/index.php
● Recent IBM Informix Redbooks™ Publications
http://www.redbooks.ibm.com/abstracts/sg247488.html?Open
http://www.redbooks.ibm.com/abstracts/sg247847.html?Open
http://www.redbooks.ibm.com/abstracts/sg247522.html?Open
http://www.redbooks.ibm.com/abstracts/sg247556.html?Open © 2013 IBM Corporation
171 Introduction to Informix – V2
IBM Software
Supplemental material
Page 88
IBM Software
Supplemental material
• Screenshots of administrative utilities
– dbschema – to create a schema of the physical instance structures
Output
created with
SQL Admin
API
commands
IBM Software
Supplemental material
• Screenshots of administrative utilities
– dbschema – to create a schema of the physical instance structures
Output
created with
onspaces /
onparams
commands
Page 89
IBM Software
Supplemental material
• Screenshots of administrative utilities (cont.)
– onparams– to administer the physical and logical logs
IBM Software
Supplemental material
• Screenshots of administrative utilities (cont.)
– onstat– instance monitoring
• -p – general instance operating profile
Page 90
IBM Software
Supplemental material
• Screenshots of administrative utilities (cont.)
– onstat– instance monitoring
• -d – dbspace and chunk information
IBM Software
Supplemental material
• Screenshots of administrative utilities (cont.)
– onstat– instance monitoring
• -g glo – VP utilization
Page 91
IBM Software
Supplemental material
• Screenshots of administrative utilities (cont.)
– onstat– instance monitoring
• -g sch – VP and O/S interaction
IBM Software
Supplemental material
• Screenshots of administrative utilities (cont.)
– onstat– instance monitoring
• -g iof – I/O throughput, dbspace level
Page 92
IBM Software
Supplemental material
• Screenshots of administrative utilities (cont.)
– onstat– instance monitoring
• -g wai – threads in wait states
IBM Software
Supplemental material
• OAT
– The first time OAT is invoked after installation, some setup is required
Page 93
IBM Software
Supplemental material
• OAT (cont.)
– An environment and binary compatibility check is made
IBM Software
Supplemental material
• OAT (cont.)
– Web server and OAT parameters are confirmed
Page 94
IBM Software
Supplemental material
• OAT (cont.)
– Infrastructure updates may occur as part of initialization
IBM Software
Supplemental material
• OAT (cont.)
– Can determine which additional bundled modules to install
• Recommend installing all of them
Page 95
IBM Software
Supplemental material
• OAT (cont.)
– Once initialization completes, will go to the primary login screen
• Need to configure instance connectivity first by selecting the Admin tab
IBM Software
Supplemental material
• OAT (cont.)
– In the Admin tab, select Manage Connections : Add Connection
• Enter instance connection information
• Do not have to include the user ID and password
Page 96
IBM Software
Supplemental material
• OAT (cont.)
IBM Software
Supplemental material
• OAT (cont.)
– Once configuration is complete, return to the Login tab and connect to an
instance by selecting the OAT Group, then the Server dropdown to select the
instance
• Configured parameters, including ID and password (if configured) will populate the
rest of the form
Page 97
IBM Software
Supplemental material
• OAT (cont.)
– Depending on the privileges associated with the login ID, once logged in to
OAT, the administration dashboard will appear
• Notice the menu on the left, there are numerous options available for monitoring and
administration
IBM Software
Supplemental material
• OAT (cont.)
– Snapshot of all instances configured in OAT
Page 98
IBM Software
Supplemental material
• OAT (cont.)
– General overview of a single instance
IBM Software
Supplemental material
• OAT (cont.)
– General overview of a single instance
Page 99
IBM Software
Supplemental material
• OAT (cont.)
– The instance Health Advisor
IBM Software
Supplemental material
• OAT (cont.)
– Overview of instance storage
Page 100
IBM Software
Supplemental material
• OAT (cont.)
– Latest backup operations
IBM Software
Supplemental material
• OAT (cont.)
– Logical log information
• Physical log is available as well
Page 101
IBM Software
Supplemental material
• OAT (cont.)
– Operations controlled by the instance scheduler
• Can click on an entry to deep dive into that operation and make changes to when
and how it operates
IBM Software
Supplemental material
• OAT (cont.)
– Instance memory utilization
Page 102
IBM Software
Supplemental material
• OAT (cont.)
– VP utilization
IBM Software
Supplemental material
• OAT (cont.)
– Editing the $ONCONFIG
Page 103
IBM Software
Supplemental material
• OAT (cont.)
– Changing database permissions
IBM Software
Supplemental material
• OAT (cont.)
– Heat graphs (table extents)
Page 104
IBM Software
Supplemental material
• OAT (cont.)
– Heat graphs (buffer pool)
IBM Software
Supplemental material
• OAT – mobile
– The mobile product has basic monitoring functionality only
• Didn’t seem reasonable to try typing critical commands on such a small user
interface
• Device setup is similar to browser setup
Page 105
IBM Software
Supplemental material
• OAT – mobile (cont.)
– Instance log and alerts
IBM Software
Supplemental material
• OAT – mobile (cont.)
– Instance log and alerts
• Some customization of what is displayed is available
Page 106
IBM Software
Supplemental material
• OAT – mobile (cont.)
– Performance tab with options for different subsystems
IBM Software
Supplemental material
• OAT – mobile (cont.)
– Performance tab with options for different subsystems
Page 107
IBM Software
Supplemental material
• OAT – mobile (cont.)
– Performance tab with options for different subsystems
• Can drill down for more information
IBM Software
Supplemental material
• OAT – mobile (cont.)
– General instance and session information
Page 108
IBM Software
IBM may not offer the products, services, or features discussed in this document in other countries.
Consult your local IBM representative for information on the products and services currently available in
your area. Any reference to an IBM product, program, or service is not intended to state or imply that
only that IBM product, program, or service may be used. Any functionally equivalent product, program, or
service that does not infringe any IBM intellectual property right may be used instead. However, it is the
user's responsibility to evaluate and verify the operation of any non-IBM product, program, or service.
IBM may have patents or pending patent applications covering subject matter described in this
document. The furnishing of this document does not grant you any license to these patents. You can
send license inquiries, in writing, to:
For license inquiries regarding double-byte (DBCS) information, contact the IBM Intellectual Property
Department in your country or send inquiries, in writing, to:
The following paragraph does not apply to the United Kingdom or any other country where such
provisions are inconsistent with local law: INTERNATIONAL BUSINESS MACHINES
CORPORATION PROVIDES THIS PUBLICATION "AS IS" WITHOUT WARRANTY OF ANY KIND,
EITHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
OF NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Some
states do not allow disclaimer of express or implied warranties in certain transactions, therefore, this
statement may not apply to you.
This information could include technical inaccuracies or typographical errors. Changes are periodically
made to the information herein; these changes will be incorporated in new editions of the publication.
IBM may make improvements and/or changes in the product(s) and/or the program(s) described in this
publication at any time without notice.
Any references in this information to non-IBM Web sites are provided for convenience only and do not in
any manner serve as an endorsement of those Web sites. The materials at those Web sites are not part
of the materials for this IBM product and use of those Web sites is at your own risk.
IBM may use or distribute any of the information you supply in any way it believes appropriate without
incurring any obligation to you.
Any performance data contained herein was determined in a controlled environment. Therefore, the
results obtained in other operating environments may vary significantly. Some measurements may have
been made on development-level systems and there is no guarantee that these measurements will be
the same on generally available systems. Furthermore, some measurements may have been estimated
through extrapolation. Actual results may vary. Users of this document should verify the applicable data
for their specific environment.
Information concerning non-IBM products was obtained from the suppliers of those products, their
published announcements or other publicly available sources. IBM has not tested those products and
cannot confirm the accuracy of performance, compatibility or any other claims related to non-IBM
products. Questions on the capabilities of non-IBM products should be addressed to the suppliers of
those products.
All statements regarding IBM's future direction and intent are subject to change or withdrawal without
notice, and represent goals and objectives only.
This information contains examples of data and reports used in daily business operations. To illustrate
them as completely as possible, the examples include the names of individuals, companies, brands, and
products. All of these names are fictitious and any similarity to the names and addresses used by an
actual business enterprise is entirely coincidental. All references to fictitious companies or individuals are
used for illustration purposes only.
COPYRIGHT LICENSE:
This information contains sample application programs in source language, which illustrate programming
techniques on various operating platforms. You may copy, modify, and distribute these sample programs
in any form without payment to IBM, for the purposes of developing, using, marketing or distributing
application programs conforming to the application programming interface for the operating platform for
which the sample programs are written. These examples have not been thoroughly tested under all
conditions. IBM, therefore, cannot guarantee or imply reliability, serviceability, or function of these
programs.
The following terms are trademarks of International Business Machines Corporation in the United States,
other countries, or both:
Adobe, Acrobat, Portable Document Format (PDF), and PostScript are either registered trademarks or
trademarks of Adobe Systems Incorporated in the United States, other countries, or both.
Cell Broadband Engine is a trademark of Sony Computer Entertainment, Inc. in the United States, other
countries, or both and is used under license therefrom.
Java and all Java-based trademarks and logos are trademarks of Sun Microsystems, Inc. in the United
States, other countries, or both. See Java Guidelines
Microsoft, Windows, Windows NT, and the Windows logo are registered trademarks of Microsoft
Corporation in the United States, other countries, or both.
Intel, Intel logo, Intel Inside, Intel Inside logo, Intel Centrino, Intel Centrino logo, Celeron, Intel Xeon, Intel
SpeedStep, Itanium, and Pentium are trademarks or registered trademarks of Intel Corporation or its
subsidiaries in the United States and other countries.
UNIX is a registered trademark of The Open Group in the United States and other countries.
Linux is a registered trademark of Linus Torvalds in the United States, other countries, or both.
ITIL is a registered trademark and a registered community trademark of the Office of Government
Commerce, and is registered in the U.S. Patent and Trademark Office.
Other company, product and service names may be trademarks or service marks of others.