我最近一直在使用PHP构建TCP服务器(我知道错误的选择,但这是工作标准),所以我已经达到了一个可靠的原型来对它进行测试并且它显示了良好的结果.在开始我使用套接字函数来处理服务器的连接,它工作正常,但项目的主要内容之一是使通道安全,所以我切换到stream_socket.
我想要的是stream_socket组中的socket_last_error等价物,所以我可以知道什么时候与客户端的连接关闭.当前情况所有进程都会等待超时计时器释放,即使客户端已经关闭.
我在网上搜索过,我发现没有办法通过PHP弄明白,我发现有些人打开了关于它的问题票,要求socket_last_error等效于流. https://bugs.php.net/bug.php?id=34380
那么无论如何都知道FIN_WAIT信号何时被提升?
谢谢,
我正在telnet主机上为给定端口(打开)运行命令,它返回 0(成功)。
为了手动尝试 telnet,我输入以下命令,然后按 control+bracket ie ^],然后按Enterkey,然后我得到telnet>提示,如果我键入closeor quit,它会返回到$提示并看到最后一个命令的退出状态显示0为(成功)因为端口 2878 已打开(根据 telnet 命令的输出)。
[vagrant@myvagrant /tmp] $ telnet `hostname` 2878
Trying 127.0.0.1...
Connected to myvagrant.
Escape character is '^]'.
^]
telnet> close
Connection closed.
[vagrant@myvagrant /tmp] $ echo $?
0
Run Code Online (Sandbox Code Playgroud)
现在,我想在没有任何人为干预的情况下运行相同的操作,即我不想手动给^]和Enter按键来telnet>提示,然后输入close(或quit)telnet 命令最终回到$提示。
为此,我尝试使用echo -e命令的选项并给出^], \n(对于换行符,即Enter键)和close命令(对于telnet>提示,以便我回到 …
Django 1.6引入了持久连接功能.但是我注意到退出使用django的ORM的脚本至少留下了一些在db端打开的连接.
设置:django 6.0,postgres 9.2和psycopg2 2.5.1.
如何从脚本中优雅地关闭与数据库的连接?
该警告部分提到,Django的打开每个线程的连接,因此在多线程的脚本,并创造Django的每个线程的连接,即使不访问数据库的主题?
每个线程是否需要单独关闭数据库连接?
如果上述两个问题的答案都是肯定的,那么对于不在脚本退出时加入的守护程序线程(例如comm),你能做些什么呢?
django multithreading persistent-connection connection-close
与我的数据库的Hibernate连接我的数据库没有关闭.在10秒内点击10次之后,我从MySQL Workbench获得了这个连接统计数据(在我的开发机器中.我是唯一的用户).MySQL Workbench服务器状态
我有这些
我的hibernate.cfg.xml
<property name="hibernate.bytecode.use_reflection_optimizer">false</property>
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.password">officenic</property>
<property name="hibernate.connection.url">jdbc:mysql://localhost/officenic</property>
<property name="hibernate.connection.username">officenic</property>
<property name="hibernate.dialect">org.hibernate.dialect.MySQL5InnoDBDialect</property>
<!-- configuration pool via c3p0 -->
<property name="hibernate.c3p0.acquire_increment">1</property>
<property name="hibernate.c3p0.idle_test_period">100</property> <!-- seconds -->
<property name="hibernate.c3p0.max_size">5</property>
<property name="hibernate.c3p0.max_statements">0</property>
<property name="hibernate.c3p0.min_size">1</property>
<property name="hibernate.c3p0.timeout">100</property> <!-- seconds -->
Run Code Online (Sandbox Code Playgroud)
我想在每次关闭会话时调用的代码块.
if (session == null)
return;
if (session.isOpen()) {
if (session.isDirty())
session.flush();
session.close();
System.out.println("Session closed");
}
Run Code Online (Sandbox Code Playgroud)
我错过了什么吗?
java connection hibernate connection-pooling connection-close
我反复得到这个例外.我从不在我的项目中关闭连接.为什么这个例外呢?
此外,我试图关闭连接但不工作.
com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: No operations allowed after connection closed.Connection was implicitly closed due to underlying exception/error:
** BEGIN NESTED EXCEPTION **
com.mysql.jdbc.exceptions.jdbc4.CommunicationsException MESSAGE: Communications link failure
Last packet sent to the server was 4975 ms ago.
STACKTRACE:
com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure
Last packet sent to the server was 4975 ms ago. at
sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) at
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at
java.lang.reflect.Constructor.newInstance(Constructor.java:526) at
com.mysql.jdbc.Util.handleNewInstance(Util.java:406) at
com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1074) at
com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:2985) at
com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:2871) at
com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3414) at
com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1936) at
com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2060) at
com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2536) at
com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2465) at
com.mysql.jdbc.StatementImpl.executeQuery(StatementImpl.java:1383) …Run Code Online (Sandbox Code Playgroud)