Example #1
0
        /// <summary>
        /// データベースから切断する
        /// </summary>
        /// <remarks></remarks>
        protected override void DisposeImp(bool disposing)
        {
            //キャッシュテーブルとこれが保持するResultsオブジェクトを削除する
            if (_aResultsCache != null)
            {
                _aResultsCache.Dispose();
            }

            if (_connections != null)
            {
                //コネクションプールの全てのDB接続を閉じる
                foreach (DbConn aDbConn in _connections)
                {
                    //GCによるDbオブジェクト回収時にはCommitAtFinalizingの設定によりCOMMITまたはROLLBACKする
                    if (!disposing && !_params.CommitAtFinalizing)
                    {
                        aDbConn.Rollback();
                    }
                    //Dispose()しても被参照カウントが残っていればDB接続は閉じられない
                    while (!(aDbConn.IsClosed()))
                    {
                        aDbConn.Dispose();
                    }
                }
            }
        }
Example #2
0
 protected override void DisposeImp(bool disposing)
 {
     _resultsCache.Dispose();
 }