Connection Pool

4453 ワード

Connection Pool
データベースに関連付けられた接続を事前に作成し、プールに格納します.
これは、必要に応じてコネクタを取得および書き込みし、プールに戻すことができることを意味します.

使用順序

  • プールによるインタフェース
  • インタフェース
  • を使用
  • 戻りプール接続
  • 特長

  • は事前に構築するため、接続の作成に要する時間X
  • である.
  • インタフェースの繰り返し使用により、生成されたインタフェースは
  • 少ない.
  • インタフェースの作成とシャットダウン時間が短縮されるため、アプリケーションの実行速度が速くなります.
  • は、一度にどれだけの接続を作成できるかを決定することができるので、同時に接続するユーザー数が多すぎても、Webアプリケーションがダウンタイムしにくい

    コンカレントコネクタの処理方法

  • コネクタプールで作成するコネクタの数は、
  • のみです.
  • が同時に増加する接続数は、残りの接続がないことを意味し、クライアントは待機状態
  • に移行する.
  • インタフェースを返すと、
  • が待機順に提供される.

    接続プールのプロパティ


    接続プールは複数のプロパティで設定できます
  • maxActive: 커넥션 풀이 제공할 수 있는 커넥션의 갯수
  • whenExhaustedAction: 커넥션 풀에서 가져올 수 있는 커넥션이 없을 때 어떻게 동작할 지를 설정하는 속성, 0일 경우 에러발생, 1일 경우 maxWait 속성에서 지정한 시간만큼 커넥션을 얻을 때까지 기다림, 2일 경우 일시적으로 커넥션을 생성해서 사용
  • maxWait whenExhaustedAction 속성의 값이 1일 때 사용되는 대가시간을 지정, 단위 1/1000초, 0보다 작을 경우 무한대기
  • maxIdle: 사용되지 않고 풀에 저장될 수 있는 최대 커넥션의 갯수(음수일 경우 제한 없음)
  • minIdle: 사용되지 않고 풀에 저장될 수 있는 최소 커넥션의 갯수
  • testOnBorrow: true일 경우 커넥션 풀에서 커넥션을 가져올 때 커넥션의 유효성 여부를 검사
  • 接続プールを使用するには、「猫」コンテナを設定します。

  • context.xmlファイル
  • にコードを追加
    <Context>
      <Resource
        auth = "Container"
        driverClassName = "oracle.jdbc.driver.OracleDriver"
        url = "jdbc:oracle:thin:@localhost:1521:xe"
        username = "test"
        password = "1234"
        name = "jdbc/Oracle11g"
        type = "javax.sql.DataSource"
        maxActive = "50"
        maxWait = "1000"
      />
    </Context>

    Javaからデータベースに接続する方法


    1.JDBCの使用(ConnectionPoolBeanの使用)

  • データベースが提供するDBConnectionクラスを使用してデータベース
  • に接続する
  • ダイレクトコードにid、pw、ipなどを入力コネクタオブジェクトを作成し、これらのコネクタ制御データベース
  • を使用する.

    2.WASが提供する接続プールを使用する

  • は、直接コードでデータベースに接続するのではなく、WASで接続し、WASで接続する接続
  • を使用する.
  • WAS起動時にDBConnectionオブジェクトを作成して書き込みます.
  • データ・ソース(Oracle)
  • を使用
  • WASが確立したインタフェースにはそれぞれ1つの名前がある.Context 객체 생성 lookup 메서드를 이용해서 매칭되는 커넥션을 찾는다 DataSource.getConnection()을 이용해서 커넥션 확보