1
.netプラットフォームでibatis 1.6のクエリタイムアウトを設定する方法はありますか?ibatis 1.6.2 for .Netクエリタイムアウト
残念ながら、アップグレードはこの場合私にとってはオプションではありません。
public abstract class LongQueriesDecorator : IDbProvider
{
protected IDbProvider _iDbProvider;
public void setDbProvider(IDbProvider iDbProvider)
{
this._iDbProvider = iDbProvider;
}
public abstract void setCommandTimeout(IDbCommand cmd);
// implement all IDbProvider methods calling _iDbProvider.METHOD
// ...
// except for
public IDbCommand CreateCommand()
{
if (_iDbProvider != null)
{
IDbCommand cmd = _iDbProvider.CreateCommand();
// here you can call the delegate
setCommandTimeout(cmd);
return cmd;
}
else
{
return null;
}
}
// ...
}
そして、抽象クラスを実現:
public class LongQueries : LongQueriesDecorator
{
public override void setCommandTimeout(IDbCommand cmd)
{
cmd.CommandTimeout = 1000; // here you can configure a value in the App.config
}
}
私は必要なメソッドを公開するIDbProviderを飾るDecoratorパターンを使用して、これをやった
乾杯 シェーン
ありがとう、私はこれを調べます。私の場合、私のibatisは別のサードパーティーのapiにラップされているので、私はこのようなカスタムコードをプラグインすることができないかもしれません。乾杯、シェーン – Shane