Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

你好,oracle数据库连接在一定量并发时总是会报错,麻烦解惑 #60

Closed
xiaogan18 opened this issue May 4, 2018 · 8 comments

Comments

@xiaogan18
Copy link

xiaogan18 commented May 4, 2018

测试代码:(clone的源码上写的)
`
static int count = 100;
static object _lock = new object();
static void Main(string[] args)
{
int cc = count;
for (int i = 0; i < cc; i++)
{
ThreadPool.QueueUserWorkItem(new WaitCallback(
(obj) =>
{
try
{
//var rr = new Demo.Test2().GetTest();
var rr = new Demo.Test2().GetTestOrcl();
Console.WriteLine("{0}:{1}", i, rr);
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}
lock (_lock)
{
count--;
}
}
));
}
while (count > 0)
{
}

        Console.WriteLine("complate");
        Console.ReadKey();
    }

test方法查询一个空表
public dynamic GetTestOrcl()
{
var db = GetInstance(SqlSugar.DbType.Oracle, Config.ConnectionString);
return db.Ado.SqlQueryDynamic("select * from v_Advice_Exec");
}
`
错误:
English Message : Connection open error . 连接请求超时

Chinese Message : 连接数据库过程中发生错误,检查服务器是否正常连接字符串是否正确,实在找不到原因请先Google错误信息:连接请求超时.

当我把并发数值count改到20,就能正常访问
在连接sqlserver数据库时就不会

@xiaogan18
Copy link
Author

之所以做这个测试,是因为我的项目生产环境正常,到正式环境就会偶然性的报错
如下
Oracle.ManagedDataAccess.Client.OracleException (0x000003F0): ORA-01008: 并非所有变量都已绑定

Oracle.ManagedDataAccess.Client.OracleException (0x00001996): ORA-06550: 第 45 行, 第 806 列:
PL/SQL: ORA-00907: 缺失右括号
ORA-06550: 第 1 行, 第 7 列:
PL/SQL: SQL Statement ignored

Oracle.ManagedDataAccess.Client.OracleException (0x00001996): ORA-06550: 第 2 行, 第 921 列:
PL/SQL: ORA-00904: "B"."ITEMNAME": 标识符无效

Oracle.ManagedDataAccess.Client.OracleException (0x00001996): ORA-06550: 第 1 行, 第 96 列:
PL/SQL: ORA-00907: 缺失右括号

有的仅仅只是执行一段sql,有时也会报错。
并发也不高,同时只有100多个终端

@DotNetNext
Copy link
Owner

@xiaogan18
Copy link
Author

你好,这个文档并不能解决问题。能不能麻烦看一下

@haoljp
Copy link

haoljp commented May 4, 2018

最好先确认下你的正式环境Oracle最大连接数是多大

@xiaogan18
Copy link
Author

我现在测试这套代码连的库,最大连接是100

@DotNetNext
Copy link
Owner

数据库默认最多是100, 这个要你配置 ,你需要保证同时操作不能超过你的配置上限,1秒内你数据库能处理多少这些都要考虑

@DotNetNext DotNetNext reopened this May 5, 2018
@xiaogan18
Copy link
Author

同一个方法,有时能成功,有时返回ORA-*****之类的错误,大概是哪里出现了问题呢。
我用打印出来的sql去执行查询是没有任何问题的,使用db.ado却经常报一些奇怪的错误

@yichengyanyuzuiqingfeng

请问楼主解决了吗?我这边超过20的并发就会报这个错误

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants