Got socket error when i set pooling to true

Discussion of open issues, suggestions and bugs regarding ADO.NET provider for PostgreSQL
Post Reply
jnahphi
Posts: 3
Joined: Fri 30 Sep 2011 09:04

Got socket error when i set pooling to true

Post by jnahphi » Wed 19 Oct 2011 13:54

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.

s.mingjun
Posts: 3
Joined: Thu 20 Oct 2011 01:46

Post by s.mingjun » Thu 20 Oct 2011 01:56

hi,jnahphi
i got the same error, when i used connection in thread and never closed it.

you should check your code first.

Yan_huali
Posts: 1
Joined: Fri 21 Oct 2011 08:26

me too I up you Ask Help Help Help Help Help

Post by Yan_huali » Fri 21 Oct 2011 08:34

me too I up you Ask Help Help Help Help Help

jnahphi
Posts: 3
Joined: Fri 30 Sep 2011 09:04

hi, mingjun

Post by jnahphi » Fri 21 Oct 2011 08:38

hi, mingjun. Thank you for your help. But I still not found the error. :(
Ask 'Devart Team' for help.

Thanks.

Shalex
Site Admin
Posts: 8245
Joined: Thu 14 Aug 2008 12:44

Post by Shalex » Fri 21 Oct 2011 12:11

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.

s.mingjun
Posts: 3
Joined: Thu 20 Oct 2011 01:46

Post by s.mingjun » Fri 21 Oct 2011 13:27

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?

jnahphi
Posts: 3
Joined: Fri 30 Sep 2011 09:04

fail

Post by jnahphi » Mon 24 Oct 2011 12:34

Now, I got the error when I setting the pooling is false.

Devart.Data.PostgreSql.PgSqlException: Unable to read data from the transport connection:

What can I do? :cry:

Shalex
Site Admin
Posts: 8245
Joined: Thu 14 Aug 2008 12:44

Post by Shalex » Tue 25 Oct 2011 16:18

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.
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:
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.

s.mingjun
Posts: 3
Joined: Thu 20 Oct 2011 01:46

Post by s.mingjun » Wed 26 Oct 2011 02:08

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?

Shalex
Site Admin
Posts: 8245
Joined: Thu 14 Aug 2008 12:44

Post by Shalex » Mon 31 Oct 2011 12:50

s.mingjun wrote:So I think there’s must be some relation in thread while connecton pool is open .am I right?
Could you please explain this question? If possible, give us (or post here) a small example.

Post Reply