advertisement
7884spec.fm
Trademarks
Draft Document for Review August 23, 2010 10:53 am
IBM, the IBM logo, and ibm.com are trademarks or registered trademarks of International Business
Machines Corporation in the United States, other countries, or both. These and other IBM trademarked terms are marked on their first occurrence in this information with the appropriate symbol (® or ™), indicating US registered or common law trademarks owned by IBM at the time this information was published. Such trademarks may also be registered or common law trademarks in other countries. A current list of IBM trademarks is available on the Web at http://www.ibm.com/legal/copytrade.shtml
The following terms are trademarks of the International Business Machines Corporation in the United States, other countries, or both:
AIX®
DataBlade®
DB2 Universal Database™
DB2® developerWorks®
Distributed Relational Database
Architecture™
DRDA®
IBM®
Informix®
MQSeries®
Rational®
Redbooks®
Redpaper™
Redbooks (logo)
UC2™
WebSphere®
®
The following terms are trademarks of other companies:
Java, and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.
Microsoft, Windows, and the Windows logo are trademarks of Microsoft Corporation in the United States, other countries, or both.
UNIX is a registered trademark of The Open Group in the United States and other countries.
Linux is a trademark of Linus Torvalds in the United States, other countries, or both.
Other company, product, or service names may be trademarks or service marks of others.
x
IBM Informix Developer’s Handbook
advertisement
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
advertisement
Table of contents
- 1 Front cover
- 5 Contents
- 11 Notices
- 12 Trademarks
- 13 Preface
- 13 The team who wrote this book
- 14 Acknowledgements
- 15 Become a published author
- 15 Comments welcome
- 17 Chapter 1. Introduction to IBM Informix
- 18 1.1 Server options
- 18 1.1.1 Informix servers
- 23 1.2 Informix tools for developers
- 24 1.2.1 I-Connect
- 24 1.2.2 Client SDK
- 29 1.2.3 4GL
- 29 1.2.4 Ruby on Rails
- 30 1.2.5 Informix DataBlade Developers Kit
- 30 1.2.6 Informix Spatial DataBlade
- 31 1.2.7 PHP on Informix
- 32 1.3 Informix overview
- 32 1.3.1 Architecture overview
- 35 1.3.2 Informix developer environment
- 36 1.3.3 Informix capabilities
- 39 Chapter 2. Setting up an Informix development environment
- 40 2.1 Informix deployment and setup
- 40 2.1.1 Installation planning
- 40 2.1.2 Informix Server installation
- 41 2.1.3 Configuration
- 47 2.2 Client setup
- 47 2.2.1 Client options
- 49 2.2.2 Setting up IBM Informix Client Software Development Kit
- 56 2.2.3 Setting up IBM Data Server drivers
- 64 2.2.4 Setting up Informix JDBC
- 69 Chapter 3. Working with the ODBC driver
- 70 3.1 ODBC and Informix
- 70 3.2 Setup and configuration
- 70 3.2.1 IBM Informix ODBC Driver
- 82 3.2.2 IBM Data Server Driver for ODBC and CLI
- 86 3.2.3 Verifying connectivity
- 88 3.3 Developing an ODBC application
- 88 3.3.1 Connecting to the database
- 92 3.3.2 Type mapping
- 95 3.3.3 Performing database operations
- 108 3.3.4 Handling special data types
- 124 3.3.5 Error handling
- 129 3.3.6 Troubleshooting
- 137 Chapter 4. Working with ESQL/C
- 138 4.1 Informix ESQL/C
- 139 4.2 Setup and configuration
- 140 4.3 Developing an ESQL/C application
- 140 4.3.1 Creating an ESQL/C application
- 144 4.3.2 Performing database operations
- 153 4.3.3 Data types mapping
- 154 4.3.4 Handling special data types
- 159 4.3.5 Exception handling
- 161 4.3.6 Troubleshooting
- 165 Chapter 5. Working with the JDBC drivers
- 166 5.1 JDBC drivers for an Informix database
- 166 5.1.1 JDBC drivers for Informix database
- 168 5.2 Setup and configuration
- 168 5.2.1 Configuration
- 169 5.2.2 Verify Connectivity with the Informix JDBC driver
- 171 5.2.3 Verify Connectivity with the Data Server Driver
- 173 5.3 JDBC type mapping
- 174 5.4 Performing database operations
- 174 5.4.1 Connection to the database
- 178 5.4.2 Manipulating data
- 185 5.5 Informix additional features
- 185 5.5.1 Batch inserts, updates, and resultset metadata
- 187 5.5.2 BIGSERIAL data type
- 189 5.5.3 Informix Smart Large Objects
- 192 5.5.4 Secure Socket Layer (SSL)
- 196 5.5.5 Typical errors
- 197 5.5.6 Tracing
- 199 Chapter 6. IBM Informix with Hibernate
- 200 6.1 Hibernate for Java
- 200 6.1.1 Hibernate
- 201 6.1.2 Hibernate concepts
- 202 6.2 Setup and configuration
- 202 6.2.1 Installation
- 204 6.2.2 Configuration
- 208 6.3 Using Hibernate with an Informix database
- 208 6.3.1 Components of a Hibernate application
- 213 6.3.2 Working with a Hibernate object
- 221 6.3.3 Using annotations
- 225 Chapter 7. Working with the IBM Informix OLE DB Provider
- 226 7.1 IBM Informix OLE DB Provider
- 226 7.2 Setup and configuration
- 226 7.2.1 Installation and setup
- 227 7.2.2 Verifying connectivity
- 230 7.3 Developing an OLE DB application
- 231 7.3.1 Supported interfaces
- 231 7.3.2 Connecting to database
- 233 7.3.3 Type mapping
- 235 7.3.4 Cursors
- 235 7.3.5 Typical database operations
- 248 7.4 Visual Basic, ADO.NET, and SQL Server
- 248 7.4.1 OLE DB with Visual Basic
- 250 7.4.2 ADO.NET and the OLEDB bridge
- 252 7.4.3 SQL Server
- 255 7.5 Troubleshooting and tracing
- 256 7.5.1 Typical errors
- 259 7.5.2 Tracing
- 263 Chapter 8. Working with the .NET Data Providers
- 264 8.1 Informix and .NET data providers
- 264 8.2 Setup and configuration
- 264 8.2.1 IBM Informix .Net Provider
- 265 8.2.2 IBM Data Server Provider for .NET
- 266 8.2.3 Verifying connectivity
- 269 8.3 Developing a .NET application
- 269 8.3.1 Connecting to database
- 272 8.3.2 Data type mapping
- 274 8.3.3 Performing database operations
- 285 8.3.4 Handling Informix specific data types
- 299 8.3.5 Troubleshooting
- 302 8.4 Visual Studio Add-In for Visual Studio
- 305 Chapter 9. Working with PHP
- 306 9.1 Informix and PHP extensions
- 307 9.2 Setup and configuration
- 307 9.2.1 Installation of OAT
- 309 9.2.2 PDO_INFORMIX
- 310 9.2.3 PDO_IBM
- 310 9.2.4 Verifying the PDO setup
- 310 9.2.5 Verifying connectivity
- 312 9.3 Developing a PHP application
- 312 9.3.1 Connecting to database
- 315 9.3.2 Performing database operations
- 320 9.3.3 Handling complex data types
- 329 9.3.4 Working with PHP extensions
- 333 9.3.5 Exception handling
- 337 9.3.6 Troubleshooting
- 339 Chapter 10. User defined routines
- 340 10.1 An Overview of UDRs and database extensions
- 340 10.1.1 Considerations for user defined routines
- 342 10.1.2 About user-defined routines
- 344 10.1.3 Considerations for extending data types
- 345 10.2 Developing user defined routines
- 346 10.2.1 User defined routines in SQL
- 350 10.2.2 User defined routines in Java
- 357 10.2.3 User defined routines in C
- 362 10.3 DataBlades and bladelets
- 362 10.3.1 Configuration
- 365 10.3.2 IBM Informix provided DataBlades
- 368 10.3.3 Developing a bladelet routine
- 371 Chapter 11. Working with Ruby on Rails
- 372 11.1 A brief overview of Ruby on Rails
- 372 11.1.1 Architecture of Ruby on Rails
- 373 11.1.2 Ruby driver and Rails adapter
- 374 11.2 Setup and configuration
- 374 11.2.1 Ruby Informix driver
- 377 11.2.2 Data Server Ruby driver
- 379 11.2.3 Rails adapters
- 383 11.3 Database operations
- 392 11.4 Using the Rails adapter with Ruby Informix
- 399 11.5 Using the Rails adapter with IBM_DB
- 405 Chapter 12. Informix 4GL Web Services
- 406 12.1 Basic concepts
- 406 12.1.1 IBM Informix 4GL
- 406 12.1.2 Service Oriented Architecture and Web Services
- 406 12.1.3 Web Services development
- 407 12.1.4 Informix 4GL and Web Services
- 407 12.1.5 Components
- 408 12.2 Setup and configuration
- 408 12.2.1 Prerequisites and supported platforms
- 408 12.2.2 Environment
- 410 12.3 I4GL Web Service tools
- 410 12.3.1 Web Service Compiler w4glc
- 412 12.3.2 The w4gl utility
- 413 12.3.3 Web Service Description Language Parser (wsdl_parser)
- 414 12.3.4 I4GL Web Services process
- 414 12.4 Developing a Web Service with I4GL
- 415 12.4.1 Example I4GL function
- 416 12.4.2 Host and application details
- 418 12.4.3 Definition of the Web Service
- 421 12.4.4 Generate the configuration file
- 425 12.4.5 Deployment of the Web Service
- 426 12.4.6 Packaging of the Web Service
- 427 12.4.7 Starting the Axis2 application server
- 427 12.4.8 Consuming the I4GL Web Service
- 430 12.5 Consuming a Web Service with I4GL
- 430 12.5.1 Web service to consume
- 431 12.5.2 Compiling the wrapper code
- 432 12.5.3 Using the Web Service from an I4GL application
- 433 12.6 Troubleshooting
- 433 12.6.1 Typical problems
- 438 12.6.2 Tracing
- 441 Chapter 13. Application development considerations
- 442 13.1 Concurrency and locking
- 442 13.1.1 Types of locks
- 444 13.1.2 Lock duration
- 444 13.1.3 Lock granularity
- 449 13.2 Locking issues and performance
- 450 13.2.1 Deadlocks
- 451 13.3 Isolation levels
- 453 13.4 Configuration options
- 453 13.4.1 Server identification
- 454 13.4.2 Storage space identifiers
- 456 13.4.3 Limiters and limits
- 460 13.4.4 Java configuration parameters
- 461 13.5 Working with your database administrator
- 465 13.5.1 Parameters for negotiation
- 466 13.5.2 Monitoring isolation levels
- 466 13.5.3 Monitoring locks
- 467 13.5.4 Monitoring user threads
- 469 Appendix A. Onconfig parameters
- 471 Appendix B. Accommodating distributed transactions
- 472 B.1 Distributed transactions
- 472 B.2 TP/XA Transaction Manager XA Interface Library
- 473 B.3 XA_TOOL ESQL/C sample
- 481 Related publications
- 481 IBM Redbooks
- 481 Other publications
- 482 Online resources
- 482 How to get Redbooks
- 482 Help from IBM
- 485 Index
- 498 Back cover