连接在认证时出现了session无效的情况

客户端创建的session和服务端的session是一一对应的吧,通过sessionId来关联?

客户端创建的session基本和服务端有些相似,都是会保存唯一标示sessionid,还有其他session的配置

客户端的session有时会无端的变为null 您遇到过这种情况吗 而且这个session有关联关系 不会出现垃圾回收的情况


不知道为啥昨天的日志只保留了晚上八点的

session不可能为null的,只能说session里面的connection为null,getSession返回的对象不可能为null。

但是进行了几次execute就自己变为null 很奇怪

你们是不是自己是设置session为null啊

这个肯定没有

你今天操作客户端做连接了吗?假如有,一定会有Authenticating user的日志的,不然就是你连错数据库了

这个异常不是每次都出现,偶尔出现

那你贴debug的打印吧,从代码层面看,这个对象通过池拿到就不可能是null,只有有用户说出现null,那是人家自己设置为null了,初始化session的时候为null,但是拿session失败了,流程还是往下走

我们就一个库 不会连错库的

不管是否偶尔,你只要今天操作了,服务就一定有日志,所以先确定服务端有没有收到消息,都没收到消息,你的连接就有可能连的不是这个服务。

有今天的日志 我刚才看错文件了

库保证没有连错

现在代码层面是这样的:
我们利用threadlocal来实现了每个线程都会维护一个session,再利用动态代理来释放session:
现在偶尔会出现三个问题:
1、就是上面的提到的session过期 auth报的
2、每个线程返回内容有串行 A线程返回了B线程的内容
3、broken pipe

你可以把你们的代码打包出来,我看下,你们应该多线程用了session,不然问题2不会出现,问题3肯定连接断开了,要么服务端重启过,要么就是连接idle时间过长,连接断开了

每一个线程都拥有独立的session 多线程情况下 也是线程安全的呀

并且sessionid都是不一样的

太多用户用错了,你还是贴出来吧,后面版本应该就不会这样了。