Got socket error when i set pooling to true
Got socket error when i set pooling to true
hi,i got socket error randomly when i use devart 5.0.0.228 connect to postgresql 8.3.10.
i uses ibatis.net + devart 5 + postgresql 8.3.10
connection string as below:
log :
System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.Net.Sockets.SocketException: A socket operation was attempted to an unreachable network.
at System.Net.Sockets.Socket.SetSocketOption(SocketOptionLevel optionLevel, SocketOptionName optionName, Int32 optionValue, Boolean silent)
at System.Net.Sockets.Socket.SetSocketOption(SocketOptionLevel optionLevel, SocketOptionName optionName, Int32 optionValue)
at Devart.Common.ae.a(Int32 A_0)
at Devart.Data.PostgreSql.PgSqlCommand.InternalPrepare(Boolean implicitPrepare, Int32 startRecord, Int32 maxRecords)
at Devart.Common.DbCommandBase.ExecuteDbDataReader(CommandBehavior behavior, Boolean nonQuery)
at Devart.Common.DbCommandBase.ExecuteDbDataReader(CommandBehavior behavior)
at System.Data.Common.DbCommand.System.Data.IDbCommand.ExecuteReader()
at IBatisNet.DataMapper.Commands.DbCommandDecorator.System.Data.IDbCommand.ExecuteReader()
at IBatisNet.DataMapper.MappedStatements.MappedStatement.RunQueryForObject[T](RequestScope request, ISqlMapSession session, Object parameterObject, T resultObject)
at IBatisNet.DataMapper.MappedStatements.MappedStatement.ExecuteQueryForObject[T](ISqlMapSession session, Object parameterObject, T resultObject)
at IBatisNet.DataMapper.MappedStatements.MappedStatement.ExecuteQueryForObject[T](ISqlMapSession session, Object parameterObject)
at IBatisNet.DataMapper.SqlMapper.QueryForObject[T](String statementName, Object parameterObject)
at Banger.Dao.IbatisMapper.IbatisObjectMapper.QueryEntity(String statement, Object conds)
at Banger.Css.Common.CommonDao.QueryEntity(String statement, Object conds)
at Banger.Css.PermissionModule.Dao.UserDao.GetLoginedUser(String loginId, String password)
at Banger.Css.PermissionModule.Service.UserSessionService.UserLogin(String loginId, String password)
--- End of inner exception stack trace ---
at Banger.Corba.Orb.xb3d1bea9caff5c10.x72a590f282d553ee(x6520ec6400de036f xd1d55a56253db2df, OrbClient xc30cd6401e231d63, MethodInfo x1306445c04667cc7, OrbService x113c7c682316fcd2, Boolean xa18d4182f3bcfa12, Object[] x290a8cdbc9dbb3c1, Exception xc5f24384ad39b93a)
at Banger.Corba.Orb.xb3d1bea9caff5c10.x18dfca7c5fd2402f(x6520ec6400de036f xd1d55a56253db2df, OrbClient xc30cd6401e231d63)
at Banger.Corba.Orb.OrbClient.x352a50113e6fd6df()
at Banger.Corba.Orb.OrbServer.xbbe0e30c7a733996(AsyTcpConnector x54fc596d5a45962d, Byte[] x4a3f0a05c02f235f)
when i set pooling to false, i will never get this error again.
i thought is a bug, i need to use pooling,so how can i deal with this.
i uses ibatis.net + devart 5 + postgresql 8.3.10
connection string as below:
log :
System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.Net.Sockets.SocketException: A socket operation was attempted to an unreachable network.
at System.Net.Sockets.Socket.SetSocketOption(SocketOptionLevel optionLevel, SocketOptionName optionName, Int32 optionValue, Boolean silent)
at System.Net.Sockets.Socket.SetSocketOption(SocketOptionLevel optionLevel, SocketOptionName optionName, Int32 optionValue)
at Devart.Common.ae.a(Int32 A_0)
at Devart.Data.PostgreSql.PgSqlCommand.InternalPrepare(Boolean implicitPrepare, Int32 startRecord, Int32 maxRecords)
at Devart.Common.DbCommandBase.ExecuteDbDataReader(CommandBehavior behavior, Boolean nonQuery)
at Devart.Common.DbCommandBase.ExecuteDbDataReader(CommandBehavior behavior)
at System.Data.Common.DbCommand.System.Data.IDbCommand.ExecuteReader()
at IBatisNet.DataMapper.Commands.DbCommandDecorator.System.Data.IDbCommand.ExecuteReader()
at IBatisNet.DataMapper.MappedStatements.MappedStatement.RunQueryForObject[T](RequestScope request, ISqlMapSession session, Object parameterObject, T resultObject)
at IBatisNet.DataMapper.MappedStatements.MappedStatement.ExecuteQueryForObject[T](ISqlMapSession session, Object parameterObject, T resultObject)
at IBatisNet.DataMapper.MappedStatements.MappedStatement.ExecuteQueryForObject[T](ISqlMapSession session, Object parameterObject)
at IBatisNet.DataMapper.SqlMapper.QueryForObject[T](String statementName, Object parameterObject)
at Banger.Dao.IbatisMapper.IbatisObjectMapper.QueryEntity(String statement, Object conds)
at Banger.Css.Common.CommonDao.QueryEntity(String statement, Object conds)
at Banger.Css.PermissionModule.Dao.UserDao.GetLoginedUser(String loginId, String password)
at Banger.Css.PermissionModule.Service.UserSessionService.UserLogin(String loginId, String password)
--- End of inner exception stack trace ---
at Banger.Corba.Orb.xb3d1bea9caff5c10.x72a590f282d553ee(x6520ec6400de036f xd1d55a56253db2df, OrbClient xc30cd6401e231d63, MethodInfo x1306445c04667cc7, OrbService x113c7c682316fcd2, Boolean xa18d4182f3bcfa12, Object[] x290a8cdbc9dbb3c1, Exception xc5f24384ad39b93a)
at Banger.Corba.Orb.xb3d1bea9caff5c10.x18dfca7c5fd2402f(x6520ec6400de036f xd1d55a56253db2df, OrbClient xc30cd6401e231d63)
at Banger.Corba.Orb.OrbClient.x352a50113e6fd6df()
at Banger.Corba.Orb.OrbServer.xbbe0e30c7a733996(AsyTcpConnector x54fc596d5a45962d, Byte[] x4a3f0a05c02f235f)
when i set pooling to false, i will never get this error again.
i thought is a bug, i need to use pooling,so how can i deal with this.
me too I up you Ask Help Help Help Help Help
me too I up you Ask Help Help Help Help Help
hi, mingjun
hi, mingjun. Thank you for your help. But I still not found the error.
Ask 'Devart Team' for help.
Thanks.
Ask 'Devart Team' for help.
Thanks.
1. Try setting the "Validate Connection=true;" connection string parameter to validate connections that are being got from the pool.
2. Try "Default Command Timeout=0;" if your command takes a lot of time to execute.
For more information about connection string parameters, refer to http://www.devart.com/dotconnect/postgr ... tring.html.
2. Try "Default Command Timeout=0;" if your command takes a lot of time to execute.
For more information about connection string parameters, refer to http://www.devart.com/dotconnect/postgr ... tring.html.
hi,Shalex
i have the same problem too.
i have been already set "Validate Connection=true" in connection string, but seems it doesn't work. i still get this error randomly.
i thought it may be a bug of the pool connection.
i am so confused.
i debug the ibaits.net,every connection has been closed .
the worest thing is i can not reprocedure this bug as i want,it appears randomly.
could you help me to solve this problem?
i have the same problem too.
i have been already set "Validate Connection=true" in connection string, but seems it doesn't work. i still get this error randomly.
i thought it may be a bug of the pool connection.
i am so confused.
i debug the ibaits.net,every connection has been closed .
the worest thing is i can not reprocedure this bug as i want,it appears randomly.
could you help me to solve this problem?
s.mingjun, please post here the following information:
1) the version (x.xx.xxx) of your dotConnect for PostgreSQL. You can find it in the Tools > PostgreSQL > About menu of VS. Try using the latest (5.50.237) version;
2) there is no problem with "Pooling=false;", isn't it? Post here your connection string (roughly, without credentials);
3) if possible, send us a small test project to reproduce the issue in our environment. Otherwise:
- describe your application
- how are you working with connections?
- in which situations does the problem occur?
- show your call stack.
1) the version (x.xx.xxx) of your dotConnect for PostgreSQL. You can find it in the Tools > PostgreSQL > About menu of VS. Try using the latest (5.50.237) version;
2) there is no problem with "Pooling=false;", isn't it? Post here your connection string (roughly, without credentials);
3) if possible, send us a small test project to reproduce the issue in our environment. Otherwise:
- describe your application
- how are you working with connections?
- in which situations does the problem occur?
- show your call stack.
jnahphi, are you getting this error on conn.Open()? Make sure that your server is running and available. If possible, send us a small test project.jnahphi wrote:Now, I got the error when I setting the pooling is false.
Devart.Data.PostgreSql.PgSqlException: Unable to read data from the transport connection:
hi,Shalex
thanks for your help.
i have solve this problem. it's a multi thread problem.
In my system, every logined user exists as a user session which inherited from thread. The thread created after user login, destroyed after user logout. In the thread we will access the database and do some operation on db.
The bug is i do some operation on after the thread has been destroy.
So I think there’s must be some relation in thread while connecton pool is open .am I right?
thanks for your help.
i have solve this problem. it's a multi thread problem.
In my system, every logined user exists as a user session which inherited from thread. The thread created after user login, destroyed after user logout. In the thread we will access the database and do some operation on db.
The bug is i do some operation on after the thread has been destroy.
So I think there’s must be some relation in thread while connecton pool is open .am I right?