首页 新闻 会员 周边

Pomelo.Data.MyCat 多线程的时候 为什么会这样 直接连mysql 也是一样的

0
[待解决问题]

多线程的时候 为什么会这样 直接连mysql 也是一样的

 

for (int i = 0; i <1000 ; i++)

		{

			//   ThreadStart threadStart = new ThreadStart(dddd);

			Thread thread = new Thread(new System.Threading.ParameterizedThreadStart(dddd));

			thread.Start(i);
			Console.WriteLine(i);
		}
using (MyCatConnection conn = new MyCatConnection("server=localhost;port=3306;database=db1;uid=root;pwd=;CharSet=utf8;pooling=true;Allow User Variables=True"))
				{
					//conn("INSERT INTO `test` (`name`) VALUES ( '" + System.DateTime.Now.ToString() + "')");


					conn.Open();

					var cmd = new MyCatCommand("INSERT INTO `test` (`name`) VALUES ( '" + System.DateTime.Now.ToString() + "')", conn);

					cmd.ExecuteNonQuery();

				}

2017/7/12 9:21:52System.NullReferenceException: 未将对象引用设置到对象的实例。
在 Pomelo.Data.MyCat.NativeDriver.GetResult(Int64& affectedRow, Int64& insertedId)
在 Pomelo.Data.MyCat.Driver.GetResult(Int32 statementId, Int64& affectedRows, Int64& insertedId)
在 Pomelo.Data.MyCat.Driver.NextResult(Int32 statementId, Boolean force)
在 Pomelo.Data.MyCat.MyCatDataReader.NextResult()
在 Pomelo.Data.MyCat.MyCatDataReader.Close()
在 Pomelo.Data.MyCat.MyCatDataReader.Dispose()
在 Pomelo.Data.MyCat.Driver.Dispose(Boolean disposing)
在 Pomelo.Data.MyCat.Driver.Close()
在 Pomelo.Data.MyCat.MyCatConnection.CloseFully()
在 Pomelo.Data.MyCat.MyCatConnection.Close()
在 Pomelo.Data.MyCat.MyCatConnection.Dispose(Boolean disposing)
在 Pomelo.Data.MyCat.MyCatConnection.Dispose()
在 ConsoleApp1.Program.dddd(Object arg) 位置 C:\Users\admin\Desktop\MyCATConnector-master\ConsoleApp1\Program.cs:行号 61

2017/7/12 9:21:52Pomelo.Data.MyCat.MyCatException (0x80004005): Fatal error encountered during command execution. ---> Pomelo.Data.MyCat.MyCatException (0x80004005): Fatal error encountered attempting to read the resultset. ---> Pomelo.Data.MyCat.MyCatException (0x80004005): Reading from the stream has failed. ---> System.IO.IOException: 无法从传输连接中读取数据: 一个封锁操作被对 WSACancelBlockingCall 的调用中断。。 ---> System.Net.Sockets.SocketException: 一个封锁操作被对 WSACancelBlockingCall 的调用中断。
在 System.Net.Sockets.Socket.Receive(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags)
在 System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size)
--- 内部异常堆栈跟踪的结尾 ---
在 Pomelo.Data.Common.MyNetworkStream.HandleOrRethrowException(Exception e)
在 Pomelo.Data.Common.MyNetworkStream.Read(Byte[] buffer, Int32 offset, Int32 count)
在 Pomelo.Data.MyCat.TimedStream.Read(Byte[] buffer, Int32 offset, Int32 count)
在 Pomelo.Data.Common.BufferedStream.Read(Byte[] buffer, Int32 offset, Int32 count)
在 Pomelo.Data.MyCat.MyCatStream.ReadFully(Stream stream, Byte[] buffer, Int32 offset, Int32 count)
在 Pomelo.Data.MyCat.MyCatStream.LoadPacket()
在 Pomelo.Data.MyCat.MyCatStream.LoadPacket()
在 Pomelo.Data.MyCat.MyCatStream.ReadPacket()
在 Pomelo.Data.MyCat.NativeDriver.GetResult(Int64& affectedRow, Int64& insertedId)
在 Pomelo.Data.MyCat.Driver.GetResult(Int32 statementId, Int64& affectedRows, Int64& insertedId)
在 Pomelo.Data.MyCat.Driver.NextResult(Int32 statementId, Boolean force)
在 Pomelo.Data.MyCat.MyCatDataReader.NextResult()
在 Pomelo.Data.MyCat.MyCatDataReader.NextResult()
在 Pomelo.Data.MyCat.MyCatCommand.ExecuteReader(CommandBehavior behavior)
在 Pomelo.Data.MyCat.MyCatCommand.ExecuteReader(CommandBehavior behavior)
在 Pomelo.Data.MyCat.MyCatCommand.ExecuteNonQuery()
在 ConsoleApp1.Program.dddd(Object arg) 位置 C:\Users\admin\Desktop\MyCATConnector-master\ConsoleApp1\Program.cs:行号 59

2017/7/12 9:21:52System.NullReferenceException: 未将对象引用设置到对象的实例。
在 Pomelo.Data.MyCat.NativeDriver.GetResult(Int64& affectedRow, Int64& insertedId)
在 Pomelo.Data.MyCat.Driver.GetResult(Int32 statementId, Int64& affectedRows, Int64& insertedId)
在 Pomelo.Data.MyCat.Driver.NextResult(Int32 statementId, Boolean force)
在 Pomelo.Data.MyCat.MyCatDataReader.NextResult()
在 Pomelo.Data.MyCat.MyCatDataReader.Close()
在 Pomelo.Data.MyCat.MyCatDataReader.Dispose()
在 Pomelo.Data.MyCat.Driver.Dispose(Boolean disposing)
在 Pomelo.Data.MyCat.Driver.Close()
在 Pomelo.Data.MyCat.MyCatConnection.CloseFully()
在 Pomelo.Data.MyCat.MyCatConnection.Close()
在 Pomelo.Data.MyCat.MyCatConnection.Dispose(Boolean disposing)
在 Pomelo.Data.MyCat.MyCatConnection.Dispose()
在 ConsoleApp1.Program.dddd(Object arg) 位置 C:\Users\admin\Desktop\MyCATConnector-master\ConsoleApp1\Program.cs:行号 61

2017/7/12 9:21:52Pomelo.Data.MyCat.MyCatException (0x80004005): Fatal error encountered during command execution. ---> Pomelo.Data.MyCat.MyCatException (0x80004005): Fatal error encountered attempting to read the resultset. ---> Pomelo.Data.MyCat.MyCatException (0x80004005): Reading from the stream has failed. ---> System.IO.IOException: 无法从传输连接中读取数据: 一个封锁操作被对 WSACancelBlockingCall 的调用中断。。 ---> System.Net.Sockets.SocketException: 一个封锁操作被对 WSACancelBlockingCall 的调用中断。
在 System.Net.Sockets.Socket.Receive(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags)
在 System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size)
--- 内部异常堆栈跟踪的结尾 ---
在 Pomelo.Data.Common.MyNetworkStream.HandleOrRethrowException(Exception e)
在 Pomelo.Data.Common.MyNetworkStream.Read(Byte[] buffer, Int32 offset, Int32 count)
在 Pomelo.Data.MyCat.TimedStream.Read(Byte[] buffer, Int32 offset, Int32 count)
在 Pomelo.Data.Common.BufferedStream.Read(Byte[] buffer, Int32 offset, Int32 count)
在 Pomelo.Data.MyCat.MyCatStream.ReadFully(Stream stream, Byte[] buffer, Int32 offset, Int32 count)
在 Pomelo.Data.MyCat.MyCatStream.LoadPacket()
在 Pomelo.Data.MyCat.MyCatStream.LoadPacket()
在 Pomelo.Data.MyCat.MyCatStream.ReadPacket()
在 Pomelo.Data.MyCat.NativeDriver.GetResult(Int64& affectedRow, Int64& insertedId)
在 Pomelo.Data.MyCat.Driver.GetResult(Int32 statementId, Int64& affectedRows, Int64& insertedId)
在 Pomelo.Data.MyCat.Driver.NextResult(Int32 statementId, Boolean force)
在 Pomelo.Data.MyCat.MyCatDataReader.NextResult()
在 Pomelo.Data.MyCat.MyCatDataReader.NextResult()
在 Pomelo.Data.MyCat.MyCatCommand.ExecuteReader(CommandBehavior behavior)
在 Pomelo.Data.MyCat.MyCatCommand.ExecuteReader(CommandBehavior behavior)
在 Pomelo.Data.MyCat.MyCatCommand.ExecuteNonQuery()
在 ConsoleApp1.Program.dddd(Object arg) 位置 C:\Users\admin\Desktop\MyCATConnector-master\ConsoleApp1\Program.cs:行号 59

问题补充:

Pomelo.Data.MyCat  用这个连接mycat  单线程没问题  但是多线程 就时常报这个错

程序员编程日记的主页 程序员编程日记 | 初学一级 | 园豆:6
提问于:2017-07-12 14:45
< >
分享
所有回答(1)
0

我也是刚接触MyCat!MyCat连接端口不是8066吗?

清修客 | 园豆:202 (菜鸟二级) | 2021-01-06 16:06

MyCat 不适合 我们的项目 后面没用了

支持(0) 反对(0) 程序员编程日记 | 园豆:6 (初学一级) | 2021-01-06 16:14
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册