我的网站用户ERR_SSL_PROTOCOL_ERROR在发出跨域请求时会看到间歇性的api.flickr.com
间歇性地我的意思是我已经看到这种情况发生在昨天对于api的~1200个请求中的4次.
Failed to load resource: net::ERR_SSL_PROTOCOL_ERROR https://api.flickr.com/services/rest/?method=flickr.photos.getInfo&api_key=.....
Run Code Online (Sandbox Code Playgroud)
我的网站是在Google App Engine上运行的AngularJS应用程序,并且在HTTPS上可以使用exclusivley.
sslchecker显示我的网站的证书和证书链已正确安装.好吧,我觉得它看起来还不错!
sslchecker用于api.flickr.com显示ROOT 1证书链的缺失.那是问题吗?对我来说有什么方法吗?
还有其他想法吗?问题是我们的证书可能是由不同的权威机构发出的吗?
编辑 -从谷歌分析中收集的其他一些可能相关的信息
我有apache配置之类的
CookieTracking On
<Proxy balancer://my-cluster>
BalancerMember http://my-server:8084 loadfactor=1 ping=10 ttl=300 timeout=120
</Proxy>
ProxyPass /mystuff balancer://my-cluster
ProxyPassReverse /mystuff balancer://my-cluster
Run Code Online (Sandbox Code Playgroud)
但是cookie不会my-server在第一次调用时传递给它.随后的调用很好.我猜这是因为CookieTracking在响应上设置cookie,而不是请求.
类似的行为,如果我使用mod_rewrite与mod_unique_id猿什么mod_usertrack呢:
RewriteEngine On
RewriteCond %{HTTP_COOKIE} !^.*tracking_id.*$ [NC]
RewriteRule ^/ - [CO=tracking_id:%{ENV:UNIQUE_ID}:%{HTTP_HOST}:525600:/]
Run Code Online (Sandbox Code Playgroud)
无论如何都要添加一个cookie,以便它出现在下游应用程序的请求cookie中
甚至可以记录我刚刚创建的cookie.这不起作用(大概是因为C请求cookie)
LogFormat "%{tracking_id}C"
Run Code Online (Sandbox Code Playgroud) 我正在尝试从文件中读取值并在后续命令中使用它.
我有一个文件AppServer.pid,其中包含我的应用服务器的进程ID(只是数字,它不是属性文件或类似的东西).
应用服务器挂起,所以我想获取此值并将其传递给kill命令.所以我的脚本会是这样的
SET VALUE_FROM_FILE=AppServer.pid # or something
taskkill /pid %VALUE_FROM_FILE% /f
Run Code Online (Sandbox Code Playgroud)
有没有一种方便的方法在Windows脚本中执行此操作?
首先,只是一些背景知识:
我们的一位客户正在经历运行我们的一个Web应用程序的WebSphere实例的CPU使用率峰值(其他应用程序的其他实例都很好).他们有一个测试环境和一个现场环境(两个iSeries)都遇到了问题 - 每个实例设置一个应用程序.我们已经在我们自己的测试环境中本地部署了此应用程序,也为iSeries上的许多其他客户部署了此应用程序,没有类似的问
实际发生了什么:
每隔一秒左右,用于WebSphere Process'的CPU使用率的CPU使用率从跳转到任何地方7%- 20%即使没有当时正在处理的请求.客户报告看到峰值高达30%.这些尖峰平均出是1.5%CPU的整体-其他WebSphere情况下通常使用0%- 0.1%在空闲时.
到目前为止我的调查
所以,我看了一下线程.测试环境中的一个线程是~350每秒使用CPU周期.它们的实时环境中的一个类似线程是~1500每秒使用CPU周期(表明它有更大的CPU).这些线程的调用堆栈看起来像
Type Program Statement Procedure
QLESPI QSYS 17 LE_Create_Thread2__FP12crtt >
QJVALIBJVM QSYS 7 startThread__FPv
J com/ibm/ws/util/Threa > run
J com/ibm/ws/util/Threa > run
J com/ibm/ws/util/Threa > getTask
J com/ibm/ws/util/Bound > poll
Run Code Online (Sandbox Code Playgroud)
底线的整个班级名称是com/ibm/ws/util/BoundedBuffer.我让客户为我做了一个JVM转储 - 我从中得到的唯一补充信息是线程名称:
Thread: 00002F82 Deferrable Alarm : 11
Run Code Online (Sandbox Code Playgroud)
现在我的问题:
Deferrable Alarm?从JVM转储中,我可以看到4个具有此名称的线程.其他三个似乎做得很好.通过调试我的本地WebSphere(在Windows上)并在BoundedBuffer类中添加断点,我看到BoudedBuffers正在轮询并定期调用一些侦听器.我正在开发一个Spring Boot应用程序,我打算在其中使用来自多个队列的JMS消息 - 但是我想控制处理这些消息的执行线程的总数,而不是控制每个JMS队列执行的线程数.
简而言之:大量的JMS队列.一个线程池来进行处理.
有些队列比其他队列更繁忙(有些可能总是有工作,有些则长时间闲置) - 所以我想利用可用的处理能力做任何需要完成的工作,无论源队列如何.
我已经DefaultMessageListenerContainer使用TaskExecutor具有固定池大小的共享设置了一系列s .我观察到的行为是,一个队列将占用所有可用的插槽 - 然后(即使第一个队列变空),插槽也无法供其他队列DefaultMessageListenerContainer使用.
这在javadocs中DefaultMessageListenerContainer.setTaskExecutor()详细说明:
普通线程池不会添加太多值,因为此侦听器容器将在其整个生命周期中占用许多线程.
MessageListenerContainer可以消耗多个队列的东西吗?java ×2
angularjs ×1
apache2.2 ×1
batch-file ×1
cpu-usage ×1
file ×1
httpd.conf ×1
https ×1
ibm-midrange ×1
javascript ×1
mod-rewrite ×1
scripting ×1
spring ×1
spring-boot ×1
spring-jms ×1
ssl ×1
websphere ×1
windows ×1