c**t 发帖数: 2744 | 1 对这样的错误不知道各位有什么好的办法.如下的代码非常普通。但如果PKG.GET_DATA的
运行时间比较长,超过5分钟,在output窗口出现:
A first chance exception of type 'System.Runtime.InteropServices.COMExceptio
n' occurred in mscorlib.dll
The thread 0xea4 has exited with code 0 (0x0).。。。
程序死在 odp.Fill(ds),也没有exception抛出。同样的代码,如果sp能比较快的执行,
一点问题也没有。貌似CLR stack overflow.不知道各位碰到没有。
using Oracle.DataAccess.Client;
private void backgroundWorker_DoWork(object sender, System.ComponentModel.Do
WorkEventArgs e)
{
DataSet ds = new DataSet();
OracleConnection |
a9 发帖数: 21638 | 2 command有timeout属性
DATA的
COMExceptio
行,
Do
【在 c**t 的大作中提到】 : 对这样的错误不知道各位有什么好的办法.如下的代码非常普通。但如果PKG.GET_DATA的 : 运行时间比较长,超过5分钟,在output窗口出现: : A first chance exception of type 'System.Runtime.InteropServices.COMExceptio : n' occurred in mscorlib.dll : The thread 0xea4 has exited with code 0 (0x0).。。。 : 程序死在 odp.Fill(ds),也没有exception抛出。同样的代码,如果sp能比较快的执行, : 一点问题也没有。貌似CLR stack overflow.不知道各位碰到没有。 : using Oracle.DataAccess.Client; : private void backgroundWorker_DoWork(object sender, System.ComponentModel.Do : WorkEventArgs e)
|
c**t 发帖数: 2744 | 3 I set cmd.CommandTimeout = 600, still same thing.
output windows shows: the thread ... exits with code 0x0..
pause the debugger, app hungs at oda.Fill(ds);
【在 a9 的大作中提到】 : command有timeout属性 : : DATA的 : COMExceptio : 行, : Do
|
c**t 发帖数: 2744 | 4 switched to OracleDataReader, app hung at
while( reader.Read() )
{..
}
set breakpoint in while loop, never hit it, which means reader.Read() never
comes back...
【在 c**t 的大作中提到】 : I set cmd.CommandTimeout = 600, still same thing. : output windows shows: the thread ... exits with code 0x0.. : pause the debugger, app hungs at oda.Fill(ds);
|
S***k 发帖数: 370 | 5 If the return recodes set is too large, outofmemory exception may be thrown
if using dataadapter. DataReader may be helpful to such case.
If DataReader even no help, you may probably have to modify the stored
procedure. |
g***y 发帖数: 27 | 6 maybe the result from your sproc PKG.GET_DATA contains some funny data types
or values that clr cannot handle. why don't you put just a few simple
records in your dev database and see if the code runs ok, then progressively
add more real data records until it errors out, then you'll know what
caused this. |
c**t 发帖数: 2744 | 7 第一:由于oracle里的number比.net的decimal要大,很容易出问题。我在query的时候
用了to_char;
底二:优化了query,这个最关键,现在不到一分钟就出结果了。说是teamwork,摊上个
db不好的,还不如自己写;
第三:定制了fetchSize,搞得比较大。default的是64k,太小。
DATA的
COMExceptio
行,
Do
【在 c**t 的大作中提到】 : 对这样的错误不知道各位有什么好的办法.如下的代码非常普通。但如果PKG.GET_DATA的 : 运行时间比较长,超过5分钟,在output窗口出现: : A first chance exception of type 'System.Runtime.InteropServices.COMExceptio : n' occurred in mscorlib.dll : The thread 0xea4 has exited with code 0 (0x0).。。。 : 程序死在 odp.Fill(ds),也没有exception抛出。同样的代码,如果sp能比较快的执行, : 一点问题也没有。貌似CLR stack overflow.不知道各位碰到没有。 : using Oracle.DataAccess.Client; : private void backgroundWorker_DoWork(object sender, System.ComponentModel.Do : WorkEventArgs e)
|