com.isomorphic.datasource

## Class DataSourceManager

- java.lang.Object
- - com.isomorphic.base.Base
  - - com.isomorphic.datasource.DataSourceManager

-     public class DataSourceManager
      extends Base

  This class contains static utility methods for obtaining a DataSource instance from the pool, and returning those instances. Note that you need to take care to free (return) every DataSource object you obtain using these APIs, or you will leak objects.

  Note that these APIs are only intended for use in cases where your code is not running in the context of an `RPCManager`, such as a non-servlet application or some init-time logic. For normal client-server transaction code that has access to an RPCManager, use `RPCManager.getDataSource()` instead; this API tracks and frees all DataSource instances it returns at the end of the transaction cycle, so you don't need to worry about your application code leaking DataSource objects.

  Scan the client-side documentation for "standaloneDataSource" for details and examples of how to use DataSource features in a non-servlet application

- - ### Method Summary

    All Methods Static Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `static void` | `clearPooledInstances(java.lang.String dsName)` Clears all instances of the named DataSource from the pool
    `static void` | `free(DataSource ds)` Frees the parameter DataSource object by returning it to the pool.
    `static void` | `freeDataSource(DataSource ds)` Frees the parameter DataSource object by returning it to the pool
    `static DataSource` | `get(java.lang.String name)` Returns a DataSource object from the pool, creating a new instance if necessary.
    `static DataSource` | `getDataSource(java.lang.String name)` Returns a DataSource object from the pool, creating a new instance if necessary.
    `static void` | `restartPoolManager()` Restarts DataSource pooling.

- - ### Method Detail

    - #### restartPoolManager

          public static void restartPoolManager()
                                         throws java.lang.Exception

      Restarts DataSource pooling. This operation creates a new pool environment, effectively clearing all instances of all DataSources from the pool.
      Throws:
        `java.lang.Exception`

    - #### clearPooledInstances

          public static void clearPooledInstances(java.lang.String dsName)
                                           throws java.lang.Exception

      Clears all instances of the named DataSource from the pool
      Parameters:
        `dsName` - The name of the DataSource for which we should clear instances
      Throws:
        `java.lang.Exception`

    - #### getDataSource

          public static DataSource getDataSource(java.lang.String name)
                                          throws java.lang.Exception

      Returns a DataSource object from the pool, creating a new instance if necessary. Note that you must be careful to return the DataSource object to the pool using the `DataSourceManager.free(com.isomorphic.datasource.DataSource)` method, or you will leak objects.
      Parameters:
        `name` - The name of the DataSource to return an instance of
      Throws:
        `java.lang.Exception`

    - #### get

          public static DataSource get(java.lang.String name)
                                throws java.lang.Exception

      Returns a DataSource object from the pool, creating a new instance if necessary. This method is identical to `DataSourceManager.getDataSource(java.lang.String)`.
      Parameters:
        `name` - The name of the DataSource to return an instance of
      Throws:
        `java.lang.Exception`

    - #### freeDataSource

          public static void freeDataSource(DataSource ds)

      Frees the parameter DataSource object by returning it to the pool
      Parameters:
        `ds` - The DataSource instance to free (return to the pool)

    - #### free

          public static void free(DataSource ds)

      Frees the parameter DataSource object by returning it to the pool. This method is identical to `DataSourceManager.freeDataSource(com.isomorphic.datasource.DataSource)`.
      Parameters:
        `ds` - The DataSource instance to free (return to the pool)