- •Contents
- •Notices
- •Trademarks
- •Preface
- •The team who wrote this book
- •Now you can become a published author, too!
- •Comments welcome
- •Stay connected to IBM Redbooks
- •Chapter 1. Introduction
- •1.1 The opportunity of the in-memory database
- •1.1.1 Disk databases cannot expand to memory
- •1.1.2 IBM solidDB IMDB is memory-friendly
- •1.1.3 Misconceptions
- •1.1.4 Throughput and response times
- •1.2 Database caching with in-memory databases
- •1.2.1 Databases are growing
- •1.2.2 Database caching off-loads the enterprise server
- •1.2.3 IBM solidDB Universal Cache
- •1.3 Applications, competition, and the marketplace
- •Chapter 2. IBM solidDB details
- •2.1 Introduction
- •2.2 Server architecture
- •2.2.1 Database access methods and network drivers
- •2.2.2 Server components
- •2.3 Data storage in solidDB
- •2.3.1 Main-memory engine
- •2.4 Table types
- •2.4.1 In-memory versus disk-based tables
- •2.4.2 Persistent versus non-persistent tables
- •2.4.3 Choosing between different table types
- •2.5 Transactionality
- •2.5.1 Concurrency control and locking
- •2.5.2 Isolation levels
- •2.5.3 Durability levels
- •2.6 solidDB SQL extensions
- •2.6.1 solidDB SQL standard compliance
- •2.6.2 Stored procedures
- •2.6.3 Triggers
- •2.6.4 Sequences
- •2.6.5 Events
- •2.6.6 Replication
- •2.7 Database administration
- •2.7.1 Configuration settings
- •2.7.2 ADMIN COMMAND
- •2.7.3 Data management tools
- •2.7.4 Database object hierarchy
- •Chapter 3. IBM solidDB Universal Cache details
- •3.1 Architecture
- •3.1.1 Architecture and key components
- •3.1.2 Principles of operation
- •3.2 Deployment models
- •3.3 Configuration alternatives
- •3.3.1 Typical configuration
- •3.3.2 Multiple cache nodes
- •3.3.3 SMA for collocation of data
- •3.3.4 solidDB HSB servers for high availability
- •3.4 Key aspects of cache setup
- •3.4.1 Deciding on the replication model
- •3.4.2 Defining what to replicate
- •3.4.3 Starting replication
- •3.5 Additional functionality for cache operations
- •3.5.1 SQL pass-through
- •3.5.2 Aging
- •3.5.3 Improving performance with parallelism
- •3.6 Increasing scale of applications
- •3.6.1 Scaling strategies
- •3.6.2 Examples of cache database applications
- •3.7 Enterprise infrastructure effects of the solidDB Universal Cache
- •3.7.1 Network latency and traffic
- •3.7.3 Database operation execution
- •Chapter 4. Deploying solidDB and Universal Cache
- •4.1 Change and consideration
- •4.2 How to develop applications that use solidDB
- •4.2.1 Application program structure
- •4.2.2 ODBC
- •4.2.3 JDBC
- •4.2.4 Stored procedures
- •4.2.5 Special considerations
- •4.3 New application development on solidDB UC
- •4.3.1 Awareness of separate database connections
- •4.3.2 Combining data from separate databases in a transaction
- •4.3.3 Combining data from different databases in a query
- •4.3.4 Transactionality with Universal Cache
- •4.3.5 Stored procedures in Universal Cache architectures
- •4.4 Integrate an existing application to work with solidDB UC
- •4.4.1 Programming interfaces used by the application
- •4.4.2 Handling two database connections instead of one
- •4.5 Data model design
- •4.5.1 Data model design principles
- •4.5.2 Running in-memory and disk-based tables inside solidDB
- •4.5.3 Data model design for solidDB UC configurations
- •4.6 Data migration
- •4.7 Administration
- •4.7.1 Regular administration operations
- •4.7.2 Information to collect
- •4.7.3 Procedures to plan in advance
- •4.7.4 Automation of administration by scripts
- •Chapter 5. IBM solidDB high availability
- •5.1 High availability (HA) in databases
- •5.2 IBM solidDB HotStandby
- •5.2.1 Architecture
- •5.2.2 State behavior of solidDB HSB
- •5.2.3 solidDB HSB replication and transaction logging
- •5.2.4 Uninterruptable system maintenance and rolling upgrades
- •5.3 HA management in solidDB HSB
- •5.3.1 HA control with a third-party HA framework
- •5.3.2 HA control with the watchdog sample
- •5.3.3 Using solidDB HA Controller (HAC)
- •5.3.4 Preventing Dual Primaries and Split-Brain scenarios
- •5.4 Use of solidDB HSB in applications
- •5.4.1 Location of applications in the system
- •5.4.2 Failover transparency
- •5.4.3 Load balancing
- •5.4.4 Linked applications versus client/server applications
- •5.5 Usage guidelines, use cases
- •5.5.1 Performance considerations
- •5.5.2 Behavior of reads and writes in a HA setup
- •5.5.3 Using asynchronous configurations with HA
- •5.5.4 Using default solidDB HA setup
- •5.5.5 The solidDB HA setup for best data safeness
- •5.5.6 Failover time considerations
- •5.5.7 Recovery time considerations
- •5.5.8 Example situation
- •5.5.9 Application failover
- •5.6 HA in Universal Cache
- •5.6.1 Universal Cache HA architecture
- •5.6.2 UC failure types and remedies
- •6.1 Performance
- •6.1.1 Tools available in the solidDB server
- •6.1.2 Tools available in InfoSphere CDC
- •6.1.3 Performance troubleshooting from the application perspective
- •6.2 Troubleshooting
- •Chapter 7. Putting solidDB and the Universal Cache to good use
- •7.1 solidDB and Universal Cache sweet spots
- •7.1.1 Workload characteristics
- •7.1.2 System topology characteristics
- •7.1.3 Sweet spot summary
- •7.2 Return on investment (ROI) considerations
- •7.2.1 solidDB Universal Cache stimulates business growth
- •7.2.2 solidDB server reduces cost of ownership
- •7.2.3 solidDB Universal Cache helps leverage enterprise DBMS
- •7.2.4 solidDB Universal Cache complements DB2 Connect
- •7.3 Application classes
- •7.3.1 WebSphere Application Server
- •7.3.2 WebLogic Application Server
- •7.3.3 JBoss Application Server
- •7.3.4 Hibernate
- •7.3.5 WebSphere Message Broker
- •7.4 Examining specific industries
- •7.4.1 Telecom (TATP)
- •7.4.2 Financial services
- •7.4.3 Banking Payments Framework
- •7.4.4 Securities Exchange Reference Architecture (SXRA)
- •7.4.5 Retail
- •7.4.6 Online travel industry
- •7.4.7 Media
- •Chapter 8. Conclusion
- •8.1 Where are you putting your data
- •8.2 Considerations
- •Glossary
- •Abbreviations and acronyms
- •Index
overall performance and reduce critical data access response times. Moreover, as a portion of the transactions are now executed in the solidDB cache running off the mainframe, additional mainframe resources become available to either increase overall throughput to facilitate business growth, or to be used for other applications.
7.3 Application classes
IBM solidDB can be easily integrated in a number of application frameworks. These frameworks facilitate application development in Java or C programming languages by abstracting a number of database concepts from the application layer and accessing the database as a generic JDBC or ODBC data source. This simplifies the process of porting an application to use a different database server, because changes are needed only in the database connectivity layer that is managed by the framework, rather than in the application code itself.
An application server provides the infrastructure for executing applications that run your business. It insulates the infrastructure from hardware, operating system, and the network. An application server also serves as a platform to develop and deploy your web services and Enterprise JavaBeans (EJBs), and as a transaction and messaging engine while delivering business logic to users on a variety of client devices. The application server acts as middleware between back-end systems and clients. It provides a programming model, an infrastructure framework, and a set of standards for a consistent designed link between them.
Many applications written within these application development paradigms can benefit from low database transactional latency and improved database throughput resulting from the solidDB in-memory database technology and its ability to bring data close to the application, as discussed in 7.1, “solidDB and Universal Cache sweet spots” on page 220.
The solidDB SMA functionality can be used within these frameworks as long as the solidDB server runs on the same computer as the application server. This way provides optimal database access using shared memory only, as illustrated in Figure 7-2 on page 221.
The following sections introduce a set of frameworks that have been tested with IBM solidDB 6.5. More detailed setup instructions are available on the following IBM solidDB Support portal, and samples are provided in the solidDB installation package:
http://www.ibm.com/software/data/soliddb/support
Chapter 7. Putting solidDB and the Universal Cache to good use 231
7.3.1 WebSphere Application Server
IBM WebSphere Application Server is the IBM runtime environment for Java-based applications. WebSphere Application Server provides the environment to run your solutions and to integrate them with every platform and system as business application services that conform to the service-oriented architecture (SOA) reference architecture.
WebSphere Application Server is a key SOA building block. From the SOA perspective, with WebSphere Application Server you can perform the following functions:
Build and deploy reusable application services quickly and easily
Run services in a secure, scalable, highly available environment
Connect software assets and extend their reach
Manage applications effortlessly
Grow as your needs evolve, reusing core skills and assets
WebSphere Application Server is available on a wide range of platforms and in multiple packages to meet specific business needs. By providing the application server that is required to run specific applications, it also serves as the base for other WebSphere products, such as IBM WebSphere Enterprise Service Bus, WebSphere Process Server, WebSphere Portal, and many other IBM software products.
More information about using solidDB with the WebSphere Application Server is provided in the “Configuring WebSphere Application Server with solidDB” article, available on the IBM solidDB Support portal:
http://www.ibm.com/support/docview.wss?uid=swg21406956
The article describes how to setup IBM WebSphere Application Server V7.0 with IBM solidDB V6.5 as a data store. A simple application provided with the solidDB package is used as an example. The article assumes basic familiarity with WebSphere Application Server, solidDB, and JDBC.
The task overview is as follows:
1.Start the solidDB server and the WebSphere Application Server.
2.Create solidDB JDBC providers and solidDB data sources.
3.Install the SolidTestEar application.
4.Run the SolidTestEar application.
232 IBM solidDB: Delivering Data with Extreme Speed
7.3.2 WebLogic Application Server
WebLogic Application Server is an application server product, owned by the Oracle Corporation, is a part of the Oracle WebLogic Java EE platform product family.
More information about using solidDB with the WebLogic Application Server is provided in the “Configuring WebLogic Server for IBM solidDB” article, available on the IBM solidDB Support portal at:
http://www.ibm.com/support/docview.wss?uid=swg21439319
The article describes how to setup Oracle WebLogic Server with solidDB 6.5 as a data store. A simple WebLogic application provided with the solidDB package is used as an example. The article assumes basic familiarity with the WebLogic Server, solidDB, and JDBC.
The task overview is as follows:
1.Start the WebLogic Server.
2.Start the solidDB server.
3.Create the solidDB JDBC data source.
4.Set up the environment.
5.Deploy and run the sample application.
7.3.3JBoss Application Server
JBoss Application Server (or JBoss AS) is an open-source Java-based application server product. It was originally developed by JBoss Inc, and is now owned by Red Hat.
More information about using solidDB with the JBoss Application Server is provided in the “Configuring JBoss Application Server for IBM solidDB” article, available on the IBM solidDB Support portal at:
http://www.ibm.com/support/docview.wss?uid=swg21452681
The article describes how to setup JBoss Application Server with solidDB 6.5 as a data store. A simple JBoss application provided with the solidDB package is used as an example. The article assumes basic familiarity with the JBoss Application Server, solidDB, and JDBC.
Chapter 7. Putting solidDB and the Universal Cache to good use 233
The task overview is as follows:
1.Set up the environment
2.Deploy the solidDB JDBC data source
3.Start the solidDB server
4.Start the WebLogic Server
5.Deploy and run the sample application
7.3.4Hibernate
Hibernate is an open source persistence and query framework that provides object-relational mapping of Plain Old Java Objects (POJOs) to relational database tables, and data query and retrieval capabilities. Hibernate enables you to write database applications without writing SQL statements.
The mapping between objects and the solidDB database is facilitated with a solidDB dialect for Hibernate. The dialect enables the Hibernate library to communicate with solidDB. It contains information about the mapping of Java types to SQL types and the functions the solidDB database supports with Hibernate. In general, a Java class maps to a database table and a Java type maps to an SQL data type.
Hibernate eases migration between different databases: you can write an application for a database that will in principle work with all databases supported by Hibernate, that is, with any database that provides a dialect.
More information about using solidDB with Hibernate is provided in the “Hibernate and solidDB” article, available on the IBM solidDB Support portal at:
http://www.ibm.com/support/docview.wss?uid=swg21440246
The article describes how to get started using Hibernate with IBM solidDB. It also includes the solidDB dialect for Hibernate (SolidSQLDialect.jar), and instructions on how to build and run a sample application.
The task overview is as follows:
1.Configure your environment
2.Create mappings
3.Start the solidDB server
4.Run the sample application
234 IBM solidDB: Delivering Data with Extreme Speed
