我在VPS上的Ubuntu上有一个运行在Tomcat上的小型grails应用程序.我使用MySql作为我的数据存储区,一切正常,除非我离开应用程序超过半天(8小时?).我做了一些搜索,显然这是wait_timeoutmysql.cnf中的默认值,所以8小时后连接会死,但Tomcat不会知道,当下一个用户试图查看该站点时,他们会看到连接失败错误.刷新页面将解决此问题,但我想完全摆脱错误.对于我的MySql版本(5.0.75),我只有my.cnf而且它不包含这样的参数.在任何情况下,更改此参数都无法解决问题.
这篇Blog Post似乎报告了一个类似的错误,但我仍然不完全理解我需要配置什么来解决这个问题,而且我希望有一个比另一个第三方库更简单的解决方案.我正在运行的机器有256MB内存,我正在努力使程序/服务的运行数量降到最低.
我可以在Grails/Tomcat/MySql中配置什么来让它消失吗?
提前致谢,
GAV
从我的Catalina.out;
2010-04-29 21:26:25,946 [http-8080-2] ERROR util.JDBCExceptionReporter - The last packet successfully received from the server was 102,906,722 milliseconds$
2010-04-29 21:26:25,994 [http-8080-2] ERROR errors.GrailsExceptionResolver - Broken pipe
java.net.SocketException: Broken pipe
at java.net.SocketOutputStream.socketWrite0(Native Method)
...
2010-04-29 21:26:26,016 [http-8080-2] ERROR util.JDBCExceptionReporter - Already closed.
2010-04-29 21:26:26,016 [http-8080-2] ERROR util.JDBCExceptionReporter - Already closed.
2010-04-29 21:26:26,017 [http-8080-2] ERROR servlet.GrailsDispatcherServlet - HandlerInterceptor.afterCompletion threw exception
org.hibernate.exception.GenericJDBCException: Cannot release connection
at java.lang.Thread.run(Thread.java:619)
Caused by: java.sql.SQLException: Already closed.
at …Run Code Online (Sandbox Code Playgroud) 我在CentOS上遇到了麻烦.我遇到了一些问题并备份了我的数据库并删除了所有依赖项的mysql.之后我跑了重新安装:
yum groupinstall "MySQL Database"
Run Code Online (Sandbox Code Playgroud)
安装没有错误.
运行mysql守护进程:
service mysqld start
Timeout error occurred trying to start MySQL Daemon.
Starting MySQL: [FAILED]
Run Code Online (Sandbox Code Playgroud)
我也跑了
# /usr/bin/mysql_install_db --user=mysql
Installing MySQL system tables...
120112 1:49:44 [ERROR] Error message file '/usr/share/mysql/english/errmsg.sys' had only 480 error messages,
but it should contain at least 481 error messages.
Check that the above file is the right version for this program!
120112 1:49:44 [ERROR] Aborting
Installation of system tables failed!
Examine the logs in /var/lib/mysql for more information.
You …Run Code Online (Sandbox Code Playgroud) 我正在开展一个网络项目.我创建了一个Http Url连接.但为此,我必须测试超时InterruptedIOException的代码,它将在超时时执行,但即使将超时时间设置为1毫秒,我的情况也会成功执行.
如何从SOAPUI中延迟,以便我可以成功超时?
有时我的网站上的一些请求开始挂起Session模块的RequestAcquireState状态.当螺旋开始所有请求超时时,我们需要在受影响的服务器上重新启动IIS.
我调查了很多,我得到的唯一结论是,当应用程序试图访问存储在Session中的用户数据时,某种程度上发生了死锁.
我能想到解决此问题的唯一选择是减少或停止在我的应用程序中使用Sessions.这是计划的一部分,但在我们完成之前需要一段时间.
我们使用IIS 7.5运行6台机器,在我们的负载平衡中运行proc StateServer和服务器亲缘关系.
有关如何解决此问题的任何提示或完全修复它而无需完全删除Sessions?

我正在使用httparty进行一系列API调用.前两个API调用成功,但第三个失败.它暂停约60秒(默认超时时间),然后返回此错误:
/Users/luigi/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/2.0.0/net/protocol.rb:158:in `rescue in rbuf_fill': Net::ReadTimeout (Net::ReadTimeout)
from /Users/luigi/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/2.0.0/net/protocol.rb:152:in `rbuf_fill'
from /Users/luigi/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/2.0.0/net/protocol.rb:134:in `readuntil'
from /Users/luigi/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/2.0.0/net/protocol.rb:144:in `readline'
from /Users/luigi/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/2.0.0/net/http/response.rb:39:in `read_status_line'
from /Users/luigi/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/2.0.0/net/http/response.rb:28:in `read_new'
from /Users/luigi/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/2.0.0/net/http.rb:1406:in `block in transport_request'
from /Users/luigi/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/2.0.0/net/http.rb:1403:in `catch'
from /Users/luigi/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/2.0.0/net/http.rb:1403:in `transport_request'
from /Users/luigi/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/2.0.0/net/http.rb:1376:in `request'
from /Users/luigi/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/2.0.0/net/http.rb:1369:in `block in request'
from /Users/luigi/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/2.0.0/net/http.rb:852:in `start'
from /Users/luigi/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/2.0.0/net/http.rb:1367:in `request'
from /Users/luigi/.rvm/gems/ruby-2.0.0-p247@pdf/gems/httparty-0.12.0/lib/httparty/request.rb:93:in `perform'
from /Users/luigi/.rvm/gems/ruby-2.0.0-p247@pdf/gems/httparty-0.12.0/lib/httparty.rb:486:in `perform_request'
from /Users/luigi/.rvm/gems/ruby-2.0.0-p247@pdf/gems/httparty-0.12.0/lib/httparty.rb:423:in `get'
from /Users/jmccann/.rvm/gems/ruby-2.0.0-p247@pdf/gems/httparty-0.12.0/lib/httparty.rb:518:in `get'
Run Code Online (Sandbox Code Playgroud)
我的问题是为什么会发生这种情况?这个错误是指示API的错误,还是我可以做些什么来引起它?
我的代码:
url = HTTParty.get("https://dev.test.com#{call}",
:basic_auth => auth,
:headers => {'Accept' => 'application/json' } )
Run Code Online (Sandbox Code Playgroud)
url = HTTParty.get("https://dev.test.com#{call}",
:basic_auth …Run Code Online (Sandbox Code Playgroud) 我正在尝试检查特定HTTP请求的响应时间是否超过30秒,如果是,则将其标记为失败并停止该线程.因为现在有时我甚至可以看到响应时间接近80秒,没有浏览器等待那么长的回复.
我在JMeter中找到了以下三种设置超时值的方法,但这让我感到困惑,因为有多个选项,我不知道使用哪一个,或者它们之间是否存在任何差异.
所以这里是我发现的与响应超时相关的选项:

3.在jmeter.properties配置文件中设置超时.我在这里找到的选项:
所以,问题是我不知道从列出的选项中设置响应超时的位置.这些选项之间有什么区别吗? 所以我希望看到结果:如果特定的HTTP请求需要超过30秒的时间来回复,请停止等待响应并将其标记为失败的请求.
timeout httpresponse jmeter load-testing performance-testing
我使用的是Node.js和TypeScript,我正在使用它async/await.这是我的测试用例:
async function doSomethingInSeries() {
const res1 = await callApi();
const res2 = await persistInDB(res1);
const res3 = await doHeavyComputation(res1);
return 'simle';
}
Run Code Online (Sandbox Code Playgroud)
我想为整个功能设置超时.即如果res1需要2秒,res2需要0.5秒,res3需要5秒我想要超时,3秒后让我抛出错误.
正常setTimeout调用是一个问题,因为范围丢失:
async function doSomethingInSeries() {
const timerId = setTimeout(function() {
throw new Error('timeout');
});
const res1 = await callApi();
const res2 = await persistInDB(res1);
const res3 = await doHeavyComputation(res1);
clearTimeout(timerId);
return 'simle';
}
Run Code Online (Sandbox Code Playgroud)
我无法正常地抓住它Promise.catch:
doSomethingInSeries().catch(function(err) {
// errors in res1, res2, res3 will be …Run Code Online (Sandbox Code Playgroud) 我有一个简单的表,有6列.大多数情况下,任何插入语句都可以正常工作,但有一段时间我得到一个DB Timeout异常:Timeout过期了.操作完成之前经过的超时时间或服务器没有响应.该语句已终止.
超时设置为10秒.
我应该提一下,我正在使用NHibernate,并且该语句在插入本身之后也包含"select SCOPE_IDENTITY()".
我的想法是桌子被锁定了什么,但当时桌子上没有其他语句在运行.
所有插入都非常简单,在sql profiler中一切看起来都很正常,表没有索引但是PK(页面丰满度:98.57%).
关于我应该寻找什么的任何想法?
谢谢.
我正在搜索日志文件的大量行,并且我将这些行分发到组以便使用该re.match()函数存储的正则表达式(RegExses).不幸的是,我的一些RegExses太复杂了,Python有时会让自己回归地狱.因此,我需要通过某种超时来保护它.
re.match我正在使用,是Python的功能,正如我在StackOverflow上找到的那样(我真的很抱歉,我现在找不到链接:-().用运行Python的库来中断线程非常困难.这个原因线程已经脱离游戏.re.match函数的评估花费的时间相对较短,而且我想用这个函数分析大量的行,我需要一些不需要太长时间才能执行的超时函数(这使得线程更不合适,需要很长时间才能初始化新线程)并且可以设置为小于一秒.我今天早上都在寻找这个问题的解决方案,但我没有找到任何满意的答案.
我正在使用Apache http客户端4.3.2发送get请求.我所做的是:
private final RequestConfig requestConfig = RequestConfig.custom()
.setConnectTimeout(1000)
.setConnectionRequestTimeout(1000)
.setSocketTimeout(1000)
.build();
private final HttpClient client = HttpClientBuilder.create()
.disableAuthCaching()
.disableAutomaticRetries()
.disableConnectionState()
.disableContentCompression()
.disableCookieManagement()
.disableRedirectHandling()
.setDefaultRequestConfig(requestConfig)
.build();
Run Code Online (Sandbox Code Playgroud)
并在发送请求时:
HttpGet request = null;
try {
request = new HttpGet(url);
if (client.execute(request).getStatusLine().getStatusCode() == 200) {
/* do some work here */
}
} catch (Exception e) {
Logger.error(e);
} finally {
if (request != null) {
request.releaseConnection();
}
}
Run Code Online (Sandbox Code Playgroud)
但是我的一些请求仍然需要很长时间才能超时.这是异常的堆栈跟踪:
java.net.SocketTimeoutException: Read timed out
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.read(SocketInputStream.java:152)
at java.net.SocketInputStream.read(SocketInputStream.java:122)
at org.apache.http.impl.io.SessionInputBufferImpl.streamRead(SessionInputBufferImpl.java:136) …Run Code Online (Sandbox Code Playgroud) timeout ×10
mysql ×2
api ×1
asp.net ×1
async-await ×1
centos ×1
database ×1
function ×1
grails ×1
httparty ×1
httprequest ×1
httpresponse ×1
iis-7.5 ×1
java ×1
jmeter ×1
load-testing ×1
nhibernate ×1
node.js ×1
promise ×1
python ×1
regex ×1
ruby ×1
soapui ×1
sql ×1
sql-server ×1
tomcat ×1
typescript ×1