Ms Word 94fbr Full 【2K】

by Steve Waldman <>

© 2026 Machinery For Change LLC

This software is made available for use, modification, and redistribution, under the terms of the Lesser GNU Public License, v.2.1 (LGPL) or the Eclipse Public License, v.1.0 (EPL), at your option. You should have received copies of both licenses with this distribution. You may also opt to license this software under a more recent version of LGPL than v.2.1.

Maven coordinates

You'll find this version on the Maven Central repository — com.mchange:c3p0:0.13.0

For support of asynchrony via Java 21 "loom" virtual threads, use instead — com.mchange:c3p0-loom:0.13.0


Security Note

To its author's profound shame, c3p0, along with its supporting libraries, was used for about a decade as a "deserialization gadget". If an attacker is able to replace and maliciously recraft a javax.naming.Reference or Java-serialized object that an application will decode, c3p0's libraries could be misused to expand that access into execution of arbitrary malicious code.

c3p0-0.12.0, along with its dependency mchange-commons-java-0.4.0, includes mitigations that lock down the functionality misused as gadget chains.

Although it remains possible to resurrect and make use of the dangerous functionality, it requires new, affirmative configuration, and very few contemporary applications should do so.

Most installations will not, but if you experience breaking changes in c3p0-0.12.0, you may need to customize security configuration for your deployment. Please see Configuring Security below for information on how, and for more background on the security issues.

c3p0-0.13.0, with mchange-commons-java-0.5.0, eliminates all use of Java serialization in resolving References, definitively ending any possibility of misuse of c3p0-related JNDI utilities to construct deserialization gadgets.

Many thanks to David Pollak of Spice Labs for a very detailed report about this issue.


See also Warning: c3p0 trusts its CLASSPATH and configuration.

Contents

  1. Contents
  2. Quickstart
  3. What is c3p0?
  4. Prerequisites
  5. Installation
  6. Using c3p0
    1. Using ComboPooledDataSource
    2. Using the DataSouces factory class
    3. Querying Pool Status
    4. Cleaning Up Pool Resources
    5. Advanced: Building Your Own PoolBackedDataSource
    6. Advanced: Raw Connection and Statement Operations
  7. Configuration
    1. Introduction
    2. Basic Pool Configuration
    3. Managing Pool Size and Connection Age
    4. Configuring Connection Testing
    5. Configuring Statement Pooling
    6. Configuring Recovery From Database Outages
    7. Managing Connection Lifecycles with Connection Customizers
    8. Configuring Unresolved Transaction Handling
    9. Configuring To Debug and Workaround Broken Client Applications
    10. Configuring To Avoid Memory Leaks On Redeploy
    11. Configuring Threading
    12. Other DataSource Configuration
    13. Configuring and Managing c3p0 via JMX
    14. Configuring Logging
    15. Configuring Security
    16. Named configurations
    17. Per-user configurations
    18. User extensions to configuration
    19. Mixing named, per-user, and user-defined configuration extensions
  8. Performance
  9. Known shortcomings
  10. Feedback and support
  11. Appendix A: Configuration Properties
  12. Appendix B: Configuation Files, etc.
    1. Overriding c3p0 defaults with a c3p0.properties file
    2. Overriding c3p0 defaults with "HOCON" (typesafe-config) configuration files
    3. Overriding c3p0 defaults with System properties
    4. Named and Per-User configuration: Overriding c3p0 defaults via c3p0-config.xml
    5. Precedence of Configuration Settings
  13. Appendix C: Hibernate-specific notes
  14. Appendix D: Configuring c3p0 pooled DataSources for Apache Tomcat
  15. Appendix E: JBoss-specific notes
  16. Appendix F: Oracle-specific API: createTemporaryBLOB() and createTemporaryCLOB()
  17. Appendix G: Legacy, configuring Connection testing with a ConnectionTester
(See also the API Documentation here)

QuickstartGo To Top

c3p0 was designed to be butt-simple to use.

Just bring Maven dependency com.mchange:c3p0:0.13.0 into your application's effective CLASSPATH (which should bring along its one transitive dependency, mchange-commons-java). Then make a DataSource like this:

import com.mchange.v2.c3p0.*; ... ComboPooledDataSource cpds = new ComboPooledDataSource(); cpds.setDriverClass( "org.postgresql.Driver" ); //loads the jdbc driver cpds.setJdbcUrl( "jdbc:postgresql://localhost/testdb" ); cpds.setUser("dbuser"); cpds.setPassword("dbpassword");

[Optional] If you want to turn on PreparedStatement pooling, you must also set maxStatements and/or maxStatementsPerConnection (both default to 0):

cpds.setMaxStatements( 180 );

Do whatever you want with your DataSource, which will be backed by a Connection pool set up with default parameters. You can bind the DataSource to a JNDI name service, or use it directly, as you prefer.

When you are done, you can clean up the DataSource you've created like this:

cpds.close();

That's it! The rest is detail.

What is c3p0?Go To Top

c3p0 is an easy-to-use library for making traditional JDBC drivers "enterprise-ready" by augmenting them with functionality defined by the jdbc3 spec and the optional extensions to jdbc2. c3p0 now also fully supports the jdbc4.

In particular, c3p0 provides several useful services:

The library tries hard to get the details right:

c3p0 hopes to provide DataSource implementations more than suitable for use by high-volume "J2EE enterprise applications". Please provide feedback, bug-fixes, etc!

PrerequisitesGo To Top

c3p0-0.13.0 requires a level 1.7.x or above Java Runtime Environment.

InstallationGo To Top

There is no installation beyond accessing managed Maven dependency com.mchange:c3p0:0.13.0.

If you wish to make use of Java 21 ("loom") virtual threading, use com.mchange:c3p0-loom:0.13.0 instead.

If you want to install c3p0 by hand, just place the files c3p0-0.13.0.jar and mchange-commons-java-0.5.0.jar somewhere in your CLASSPATH (or any other place where your application's classloader will find it). For Java 21 "loom" support, also include the jar c3p0-loom-0.13.0.jar.

Using c3p0Go To Top

Ms Word 94fbr Full 【2K】

Modern MS Word relies on OneDrive integration, real-time co-authoring, and AI-powered tools like Copilot. Cracked versions disable these cloud features, defeating the purpose of using Word in a connected workspace.

Software piracy is a violation of copyright law. While individual users are rarely prosecuted, companies and educational institutions face heavy fines for using unlicensed software. You also risk legal notices from your ISP.

Genuine Microsoft Word receives regular security patches. Cracked versions cannot connect to Microsoft’s update servers, leaving your system vulnerable to known exploits that are never fixed.

The search for “ms word 94fbr full” may seem like a harmless way to save money, but the consequences — data theft, legal exposure, unstable software — far outweigh any short-term gain. Microsoft offers several legitimate paths to using Word, many at zero cost.

Before downloading any cracked software, ask yourself: Is losing my personal files, identity, or privacy worth avoiding a $6.99 monthly subscription? For most users, the answer is no.

Instead, start with Microsoft Word for the web or Google Docs. If you need advanced features, explore Office 365 Education (free) or save for a one-time purchase of Office Home & Student. Your computer — and your peace of mind — will thank you.


Have questions about getting Microsoft Word legally? Drop a comment below or visit Microsoft’s official support page.

If you're looking for features of a specific version of Microsoft Word, here are some general features and facts that might help:

  • General Features of Modern Microsoft Word:

  • Historical Context:

  • Given the ambiguity of the term "ms word 94fbr full," if you're referring to a specific version or edition of Microsoft Word, here are some steps to find what you're looking for:

    If you have a more specific question or need help with a particular feature, providing more details or context would help in offering a more targeted response.

    If you are looking to access Microsoft Word legally, you have several options:

    Microsoft 365 for the Web: You can use a free, simplified version of Word Online through any web browser with a free Microsoft account .

    Student and Educator Access: Many students and teachers are eligible for Office 365 Education for free, which includes full desktop versions of Word, Excel, and PowerPoint.

    Mobile Apps: The Microsoft Word app is free to download and use for basic editing on most smartphones and tablets via the Google Play Store or Apple App Store.

    Free Alternatives: If you need a full-featured desktop office suite without a subscription, consider LibreOffice or Google Docs, which are both free and compatible with Word documents. Free Microsoft 365 Online | Word, Excel, PowerPoint

    Get free access to Word, Excel, and PowerPoint using Microsoft 365 for the web (formerly Office). Free Microsoft 365 Online | Word, Excel, PowerPoint

    Get free access to Word, Excel, and PowerPoint using Microsoft 365 for the web (formerly Office).

    I notice you’re searching for a term that resembles "MS Word 94fbr" — this is often associated with cracked or pirated software keys. I can’t provide or help with cracks, serial numbers, or unauthorized activation methods, as that violates software licensing terms and copyright laws.

    If you need Microsoft Word, here are legal options:

    If you’re a student or educator, you may qualify for free Office 365 through your school.

    Would you like help with any of these legitimate options?

    The Ultimate Guide to MS Word 94FBR Full: Unlocking its Features and Capabilities

    Microsoft Word is one of the most widely used word processing software applications in the world. With its user-friendly interface and robust feature set, it's a favorite among students, professionals, and individuals alike. In this article, we'll take a closer look at MS Word 94FBR Full, exploring its features, capabilities, and everything in between.

    What is MS Word 94FBR Full?

    MS Word 94FBR Full refers to the full version of Microsoft Word, a comprehensive word processing software that allows users to create, edit, and manage documents with ease. The "94FBR" designation likely indicates a specific build or version of the software, but for the purposes of this article, we'll focus on the features and capabilities that make MS Word 94FBR Full a powerful tool for document creation.

    Key Features of MS Word 94FBR Full

    MS Word 94FBR Full offers a wide range of features that make it an ideal choice for word processing. Some of the key features include:

    Using MS Word 94FBR Full for Document Creation ms word 94fbr full

    MS Word 94FBR Full is an incredibly versatile tool that can be used for a wide range of document creation tasks. Here are just a few examples:

    Tips and Tricks for Getting the Most out of MS Word 94FBR Full

    To get the most out of MS Word 94FBR Full, here are a few tips and tricks to keep in mind:

    Common Issues with MS Word 94FBR Full and How to Troubleshoot Them

    While MS Word 94FBR Full is a robust and reliable software application, users may occasionally encounter issues. Here are a few common problems and some troubleshooting tips:

    Conclusion

    MS Word 94FBR Full is a powerful and versatile word processing software that offers a wide range of features and capabilities. Whether you're a student, professional, or individual, this software has everything you need to create professional-looking documents with ease. By understanding its features, capabilities, and limitations, users can unlock the full potential of MS Word 94FBR Full and take their document creation to the next level.

    Frequently Asked Questions (FAQs)

    Q: What is MS Word 94FBR Full? A: MS Word 94FBR Full is the full version of Microsoft Word, a comprehensive word processing software that allows users to create, edit, and manage documents.

    Q: What are the key features of MS Word 94FBR Full? A: The software offers advanced text editing, document templates, inserting objects, collaboration tools, and security features.

    Q: How can I get the most out of MS Word 94FBR Full? A: Users can take advantage of keyboard shortcuts, templates, and styles and formatting options to create professional-looking documents.

    Q: What are some common issues with MS Word 94FBR Full? A: Common issues include document compatibility issues and formatting issues, which can often be resolved by troubleshooting or using the software's built-in features.

    Dynamic Templates: Users can start from scratch or select from a wide range of professional templates for resumes, reports, and newsletters.

    Advanced Text Formatting: Provides precise control over font styles, sizes, colours, and paragraph spacing.

    Layout Tools: Includes customizable margins, page orientation (portrait/landscape), and page sizing for various printing needs. Collaboration & Intelligent Assistance

    Real-time Collaboration: Allows multiple users to share, edit, and track changes in the same document simultaneously.

    Copilot in Word: An AI-powered assistant that can rewrite, summarize, or generate new content based on user prompts.

    Intelligent Editor: Offers advanced spelling and grammar checks, along with suggestions to improve writing clarity and tone. Advanced Functionality Create a document in Word - Microsoft Support

    If you're looking for general information about Microsoft Word or assistance with a particular feature or issue, here are some helpful points:

    If you’ve searched for “ms word 94fbr full,” you’re likely looking for a free, fully featured version of Microsoft Word. The term “94fbr” has become a notorious keyword in the world of software piracy, often appended to searches for Microsoft Office, Adobe products, and other premium software. But what does it actually mean? And more importantly, is it safe or legal to use such versions?

    In this comprehensive guide, we’ll explore the origins of the “94fbr” phenomenon, the serious risks of downloading cracked software, why Microsoft Word remains the industry standard, and most importantly — how to get the full version of MS Word legally, affordably, or even for free.

    On Android and iOS, the Microsoft Word app is free to download and use for basic document viewing and editing on devices with screens under 10.1 inches. Full features require a subscription, but for quick edits, the free version is sufficient.

    For users who prefer a perpetual license (no subscription), Microsoft offers Office Home & Student 2021 for around $149.99 USD. You get Word, Excel, and PowerPoint, with security updates but no feature updates. This is ideal for home users.

    If you could provide more context or clarify your question about "94fbr" and "deep feature," I might offer a more precise answer. Are you inquiring about:

    "MS Word 94fbr full" is not a version of Microsoft Word, but a specific search term used to find pirated activation keys and cracked software.

    gained internet fame because it was a segment of a genuine Microsoft Office 2000 product key that bypassed early activation checks. Over time, it became a "cheat code" for search engines to surface unlicensed software downloads. The History of the "94FBR" Code : The code was part of a leaked Microsoft Office 2000 Pro serial key:

    The hum of the CRT monitor was the only sound in Elias’s cramped apartment at 2:00 AM. He was a freelance writer on a deadline, and his old word processor had just corrupted his master manuscript. He didn't have the cash for a new retail suite, so he did what millions of desperate users had done before him: he opened a search engine and typed the forbidden incantation. "MS Word 94fbr full"

    In the early 2000s, "94fbr" wasn't just a random string of characters—it was a skeleton key. It was a snippet of a specific Office 2000 product key (starting with 94FBR-) that, when added to a search query, bypassed the junk sites and led straight to the "warez" promised land.

    Elias clicked a link on the third page of results. The site was a chaotic mess of neon green text on a black background, filled with dancing "Under Construction" GIFs. He found the download button, ignored the five pop-ups claiming he’d won a cruise to the Bahamas, and watched the progress bar crawl. Modern MS Word relies on OneDrive integration, real-time

    As the installation began, the classic blue splash screen appeared. But as the "94fbr" key was accepted, something felt off. The "Clippy" office assistant didn't just pop up in the corner; it looked... tired. Its wire-frame body was slightly rusted, and its googly eyes were bloodshot.

    ""Would you like help hiding from the BSA (Business Software Alliance)?"

    Elias laughed it off, chalking it up to a clever "crack" by the hackers. He started typing his story. The words flowed faster than ever. The cursor moved with a predatory grace. But as he reached the climax of his chapter, the text started changing.

    “And then he realized,” Elias typed.“And then he realized his soul was part of the Terms of Service,” the screen corrected.

    Elias tried to backspace, but the keys were locked. The 94fbr key began to scroll across the top of the screen like a digital ticker tape, turning red. The hum of the monitor grew into a high-pitched whine. Clippy was no longer in the corner; he was front and center, his metal body twisting into the shape of a handcuff.

    "The key wasn't free, Elias," the bubble read. "Someone always pays."

    The screen flashed white, and the apartment went silent. When the power came back on, the computer was gone. In its place sat a single, perfectly printed sheet of paper with the Microsoft logo at the top. It contained Elias's finished story, perfectly written, but signed by a name he didn't recognize—the name of the person who had originally leaked the 94fbr key in 1999.

    Elias never pirated software again. He also never wrote again. Because every time he picked up a pen, he could still hear the faint, metallic tap-tap-tap of a paperclip against the glass.

    I notice you're asking for content related to "MS Word 94fbr" — a term that often appears in search queries seeking cracked or pirated versions of Microsoft Word (often with a keygen or activation bypass). I’m unable to provide any content that promotes, facilitates, or instructs on software piracy, keygens, cracks, or unauthorized activation, including references like "94fbr."

    What I can do instead:

  • Provide legitimate free alternatives to MS Word

  • Help with affordable or free official MS Office options

  • Write a full informational article about MS Word’s features

  • If you’d like a clean, useful piece about Microsoft Word (history, features, tips, or comparison with alternatives), let me know, and I’ll write that for you immediately.

    If you meant to ask about a specific version or update of MS Word, please let me know and I'll do my best to provide a helpful review or information.

    Some general features of MS Word include:

    Please provide more context or clarify your question, and I'll do my best to assist you.

    The Adventures of Alex and the Magical World of MS Word

    Alex had just landed his first job at a marketing firm and was excited to start working on projects. However, he soon realized that he needed to create documents, reports, and presentations, but had no idea how to use the software. His colleague, Rachel, took him under her wing and introduced him to the magical world of MS Word.

    The Basics

    Rachel started by explaining that MS Word was a word processing software that allowed users to create, edit, and print documents. She showed Alex the interface, pointing out the different components:

    Rachel then demonstrated how to:

    Formatting and Editing

    As Alex became more comfortable with the basics, Rachel introduced him to the world of formatting and editing.

    Advanced Features

    As Alex's skills improved, Rachel introduced him to some advanced features:

    The Final Project

    With his newfound skills, Alex was tasked with creating a comprehensive report for a client. He applied everything he had learned, using MS Word's features to create a well-formatted, visually appealing document. Rachel was impressed with his work, and the client was thrilled with the final product.

    The Future

    Alex continued to explore MS Word's capabilities, learning about:

    As Alex became more confident in his abilities, he realized that MS Word was a powerful tool that could help him create professional-looking documents with ease. He was excited to continue exploring its features and taking his skills to the next level.

    And that's the story of Alex and his adventures in the magical world of MS Word!

    In Microsoft Word, the Prepare feature is a suite of tools designed to finalize a document before sharing or publishing it. It helps you remove hidden metadata, restrict editing, and ensure compatibility with older versions.

    Note: The term "94fbr" in your query is commonly associated with search strings used to find pirated software or serial keys; using such versions can expose your device to security risks like malware. Key Tools in the "Prepare" Menu

    Depending on your version of Word, you can access these commands via the Office Button (Word 2007) or the File menu.

    Inspect Document: Scans for and removes hidden data, such as personal information in document properties, comments, and tracked changes.

    Encrypt Document: Adds password protection to prevent unauthorized users from opening the file.

    Restrict Permission: Uses Information Rights Management (IRM) to prevent others from printing, editing, or copying the document.

    Add a Digital Signature: Ensures the document’s authenticity and integrity by attaching an invisible digital signature.

    Mark as Final: Makes the document "read-only" to let readers know it is the completed version and to prevent accidental editing.

    Run Compatibility Checker: Identifies features in your document that may not be supported by earlier versions of Word (e.g., Word 97–2003).

    Check Accessibility: Checks the document for content that might be difficult for people with disabilities to read. How to Use the Feature

    Click the File tab (or the circular Office Button in older versions). Select Info (or Prepare in Word 2007).

    Choose from the options under Check for Issues or Protect Document (these replace the older "Prepare" menu in modern versions like Word 2013–2021).

    If you'd like, I can give you step-by-step instructions on a specific tool, like password protection or removing hidden metadata. Just let me know which one you need! AI responses may include mistakes. Learn more

    In the late 90s and early 2000s, "94fbr" became a legendary "cheat code" for the internet's underground. It wasn't a virus or a secret feature of Microsoft Word; it was a specific snippet of text used to bypass search engine filters.

    At the time, Microsoft Office was the world's most sought-after software, but it was expensive. Pirates and students looking for a "full" version for free discovered that many serial keys generated for legitimate copies of Office 2000 began with those specific characters. By adding

    to a search query like "MS Word full," users could trick early search engines into skipping over official product pages and instead surfacing "warez" sites and forums where valid serial keys were being shared.

    It sounds like you're looking for information related to "94fbr," which is a common term used in searches for software product keys or "cracked" versions of programs like Microsoft Word Microsoft Support

    Because there are a few ways to interpret your request for a "proper report," could you clarify what you need? Software Access: full version

    of MS Word for free? (I can point you toward official free options like Word for the Web or student discounts). Document Creation: Do you need a guide or "report" on how to create and format a professional report using MS Word features?. Security/Software Info: technical report

    or analysis on what "94fbr" means and the safety of using such search terms?

    Please let me know which direction you're headed so I can give you the right details!

    How to Use Microsoft Word for FREE Online - No Subscription Needed!

    If you need to use Microsoft Word for free and legally, here are the best options: Official Free Versions

    Word for the Web: Access a free, simplified version of Word by signing in to Microsoft 365 Online. It allows you to create and edit documents directly in your browser.

    Mobile Apps: Download the Microsoft Word app on Android or iOS for free editing on mobile devices.

    Education/Work Accounts: Check if your school or employer provides a Microsoft 365 subscription, which often allows for full desktop installations at no cost to you. Free Alternatives Have questions about getting Microsoft Word legally

    If you need a full desktop experience without a subscription, these open-source tools are fully compatible with Word documents (.docx):

    I’m missing some details. I’ll assume you want a clear, professional written report reviewing the MS Word file named “94fbr full” (e.g., summarizing contents, issues, and recommendations). I’ll produce a concise report template you can paste in and customize.


    Appendix F: Oracle-specific API: createTemporaryBLOB() and createTemporaryCLOB()Go To Top

    These utilities are no longer supported. Please use Connection.unwrap(...) to access Oracle-specific APIs.

    The Oracle thin JDBC driver provides a non-standard API for creating temporary BLOBs and CLOBs that requires users to call methods on the raw, Oracle-specific Connection implementation. Advanced users might use the raw connection operations described above to access this functionality, but a convenience class is available in a separate jar file (c3p0-oracle-thin-extras-0.13.0.jar) for easier access to this functionality. Please see the API docs for com.mchange.v2.c3p0.dbms.OracleUtils for details.

    Appendix G: Legacy, configuring Connection Testing with a ConnectionTester Go To Top

    As of c3p0 0.10.0, c3p0's config property connectionTesterClassName defaults to null. When this property is null, c3p0 just uses the Java 6+ Connection.isValid(int timeout) method to test Connections.

    But c3p0 is an old library, first published uner Java 1.3. Back in the day, we didn't have no stinking standard Connection.isValid(int timeout) method, and had to roll our own Connection tests. This Appendix documents that old but still supported style of Connection test management. To make this section relevant again, just 1) set connectionTesterClassName to its old default of com.mchange.v2.c3p0.DefaultConnectionTester; 2) set connectionTesterClassName to the name of a custom ConnectionTester implementation with a public no-arg constructor; 3) set a non-null preferredTestQuery; or 4) set a non-null automaticTestTable. If any connectionTesterClassName is explicitly set, the provided ConnectionTester implementation will be used. If preferredTestQuery or automaticTestTable are set, but no connectionTesterClassName is provided, an instance of com.mchange.v2.c3p0.DefaultConnectionTester will be used to perform Connection tests.

    If any of these conditions apply, the following section documents how Connection testing with a ConnectionTester works in c3p0.


    c3p0 can be configured to test the Connections that it pools in a variety of ways, to minimize the likelihood that your application will see broken or "stale" Connections. Pooled Connections can go bad for a variety of reasons -- some JDBC drivers intentionally "time-out" long-lasting database Connections; back-end databases or networks sometimes go down "stranding" pooled Connections; and Connections can simply become corrupted over time and use due to resource leaks, driver bugs, or other causes.

    c3p0 provides users a great deal of flexibility in testing Connections, via the following configuration parameters:

    idleConnectionTestPeriod, testConnectionOnCheckout, and testConnectionOnCheckin control when Connections will be tested. automaticTestTable, connectionTesterClassName, and preferredTestQuery control how they will be tested.

    When configuring Connection testing, first try to minimize the cost of each test. If you are using a JDBC driver that you are certain supports the new(ish) jdbc4 API — and if you are using c3p0-0.9.5 or higher! — let your driver handle this for you. jdbc4 Connections include a method called isValid() that should be implemented as a fast, reliable Connection test. By default, c3p0 will use that method if it is present.

    However, if your driver does not support this new-ish API, c3p0's default behavior is to test Connections by calling the getTables() method on a Connection's associated DatabaseMetaData object. This has the advantage of being very robust and working with any database, regardless of the database schema. However, a call to DatabaseMetaData.getTables() is often much slower than a simple database query, and using this test may significantly impair your pool's performance.

    The simplest way to speed up Connection testing under a JDBC 3 driver (or a pre-0.9.5 version of c3p0) is to define a test query with the preferredTestQuery parameter. Be careful, however. Setting preferredTestQuery will lead to errors as Connection tests fail if the query target table does not exist in your database prior to initialization of your DataSource. Depending on your database and JDBC driver, a table-independent query like SELECT 1 may (or may not) be sufficient to verify the Connection. If a table-independent query is not sufficient, instead of preferredTestQuery, you can set the parameter automaticTestTable. Using the name you provide, c3p0 will create an empty table, and make a simple query against it to test the database.

    The most reliable time to test Connections is on check-out. But this is also the most costly choice from a client-performance perspective. Most applications should work quite reliably using a combination of idleConnectionTestPeriod and testConnectionOnCheckin. Both the idle test and the check-in test are performed asynchronously, which can lead to better performance, both perceived and actual.

    For some applications, high performance is more important than the risk of an occasional database exception. In its default configuration, c3p0 does no Connection testing at all. Setting a fairly long idleConnectionTestPeriod, and not testing on checkout and check-in at all is an excellent, high-performance approach.

    It is possible to customize how c3p0's DefaultConnectionTester tests when no preferredTestQuery or automaticTestTable are available. Please see Configuring DefaultConnectionTester.isValidTimeout and Configuring DefaultConnectionTester.QuerylessTestRunner.

    Advanced users may define any kind of Connection testing they wish, by implementing a ConnectionTester and supplying the fully qualified name of the class as connectionTesterClassName. If you'd like your custom ConnectionTesters to honor and support the preferredTestQuery and automaticTestTable parameters, implement UnifiedConnectionTester, most conveniently by extending AbstractConnectionTester. See the api docs for more information.

    If you know you want to use the jdbc4 Connection.isValid() method, but you want to set a timeout, consider writing a trivial extension of IsValidConnectionTester.

    package com.mchange.v2.c3p0.example; import com.mchange.v2.c3p0.util.IsValidOnlyConnectionTester; public final class IsValidOnlyConnectionTester30 extends IsValidOnlyConnectionTester { protected int getIsValidTimeout() { return 30; } }

    See? These really are trivial to write.

    Simple advice on Connection testing

    If you don't know what to do, try this:

    1. If you know your driver supports the JDBC 4 Connection.isValid(...) method and you are using c3p0-0.9.5 or above, don't set a preferredTestQuery. If your driver does not support this method (or if you are not sure), try SELECT 1 for your preferredTestQuery, if you are running MySQL or Postgres. For other databases, look for suggestions here. Leave automatedTestTable undefined.

    2. Begin by setting testConnectionOnCheckout to true and get your application to run correctly and stably. If you are happy with your application's performance, you can stop here! This is the simplest, most reliable form of Connection-testing, but it does have a client-visible performance cost.

    3. If you'd like to improve performance by eliminating Connection testing from clients' code path:

      1. Set testConnectionOnCheckout to false

      2. Set testConnectionOnCheckin to true

      3. Set idleConnectionTestPeriod to 30, fire up you application and observe. This is a pretty robust setting, all Connections will tested on check-in and every 30 seconds thereafter while in the pool. Your application should experience broken or stale Connections only very rarely, and the pool should recover from a database shutdown and restart quickly. But there is some overhead associated with all that Connection testing.

      4. If database restarts will be rare so quick recovery is not an issue, consider reducing the frequency of tests by idleConnectionTestPeriod to, say, 300, and see whether clients are troubled by stale or broken Connections. If not, stick with 300, or try an even bigger number. Consider setting testConnectionOnCheckin back to false to avoid unnecessary tests on checkin. Alternatively, if your application does encounter bad Connections, consider reducing idleConnectionTestPeriod and set testConnectionOnCheckin back to true. There are no correct or incorrect values for these parameters: you are trading off overhead for reliability in deciding how frequently to test. The exact numbers are not so critical. It's usually easy to find configurations that perform well. It's rarely worth spending time in pursuit of "optimal" values here.

    So, when should you stick with simple and reliable (Step 2 above), and when is it worth going for better performance (Step 3)? In general, it depends on how much work clients typically do with Connections once they check them out. If clients usually make complex queries and/or perform multiple operations, adding the extra cost of one fast test per checkout will not much affect performance. But if your application typically checks out a Connection and performs one simple query with it, throwing in an additional test can really slow things down.

    That's nice in theory, but often people don't really have a good sense of how much work clients perform on average. The best thing to do is usually to try Step 3, see if it helps (however you measure performance), see if it hurts (is your application troubled by broken Connections? does it recover from database restarts well enough?), and then decide. You can always go back to simple, slow, and robust. Just set testConnectionOnCheckout to true, testConnectionOnCheckin to false, and set idleConnectionTestPeriod to 0.

    But do, always, be sure that your tests themselves are performant, either because your JDBC driver supports Connection.isValid(...) or because you have set an efficient preferredTestQuery !!!


    Back to Contents