小编use*_*535的帖子

HttpClientError:目标服务器无法响应

我正在尝试使用http客户端使用PoolingClientConnectionManager为各个主机设置最大连接来命中服务器

 //Code that inilizes my connection mananger and http client 
Run Code Online (Sandbox Code Playgroud)

HttpParams httpParam = httpclient.getParams(); HttpConnectionParams.setSoTimeout(httpParam,SOCKET_TIMEOUT);

    HttpConnectionParams.setConnectionTimeout(httpParam, CONN_TIMEOUT);

    httpclient.setParams(httpParam);

    //Run a thread which closes Expired connections
    new ConnectionManager(connManager).start(); 

        //Code that executes my request 
    HttpPost httpPost = new HttpPost(url);
            HttpEntity httpEntity = new StringEntity(request, "UTF-8");
    httpPost.setEntity(httpEntity);

    Header acceptEncoding = new BasicHeader("Accept-Encoding", "gzip,deflate");
    httpPost.setHeader(acceptEncoding);     

    if(contenttype != null && !contenttype.equals("")){
        Header contentType = new BasicHeader("Content-Type", contenttype);
        httpPost.setHeader(contentType);
    }
            InputStream inputStream = null;
    LOG.info(dataSource + URL + url + REQUEST + request);

    HttpResponse …
Run Code Online (Sandbox Code Playgroud)

java apache connection-pooling httpclient

13
推荐指数
2
解决办法
5万
查看次数

嵌入式Linux - 部署固件更新的机制?

我正在考虑开发一个嵌入式Linux项目(工业应用程序)的Yocto项目,对于那些有嵌入式Linux经验的人,我有一些问题--Yocto会获得奖金.只需要了解固件更新中常见的内容.

我有一些要求,即身份验证,安全通信协议,如果更新失败,某种类型的回滚.此外,如果有一种方法可以逐步在整个设备上释放补丁,那么这也很有意思,因为我想避免在现场使用砖块设备.

如何在今天为现场设备部署更新/补丁 - 以及开发它需要多长时间?我还缺少其他考虑因素吗?

linux embedded patch yocto

11
推荐指数
2
解决办法
2102
查看次数

如何在Linux核心i3/i7中击败硬件预取器

我试图找到一种方法来打败H/W预取器来检测流模式并以随机顺序访问4KB数据,这样就不会被H/W预取器检测和预取.

最初我想以随机模式访问所有偶数索引数据,因为H/W预取器总是预取下一个缓存行(所以当我访问偶数索引时,下一个奇数索引数据已被预取).

我编写代码以随机模式访问所有偶数索引数据,但结果表明预取器检测到模式(不知道如何?没有固定步幅,都是随机步幅)

我正在调查原因 - 为什么会发生这种情况,然后我在英特尔发现了这篇文章; https://software.intel.com/en-us/forums/topic/473493

根据John D. McCalpin博士的说法,"带宽博士,

在"Intel 64和IA-32架构优化参考手册"(文档248966-028,2013年7月)的第2.2.5.4节中,它指出,

流式传输器预取器"[d]检测并维护多达32个数据访问流.对于每个4K字节页面,您可以维护一个前向流和一个后向流.

这意味着L2硬件预取器跟踪最近访问的16个4KiB页面,并记住这些页面的足够访问模式以跟踪一个前向流和一个后向流.因此,要通过"随机"提取来击败L2流式传输器预取器,只需确保在对先前引用的页面进行第二次引用之前访问超过15个其他4 KiB页面.因此,"随机"提取序列可以由超过16个4个KiB页码的随机排列组成,每个页面内具有随机偏移.(我的排列列表通常至少使用32页.)

所以这意味着在访问相同4KB页面的两个不同随机索引之间,我们需要访问至少16个4KB页面来击败H/W预取器.

我已经实现了John D. McCalpin建议的概念,但结果再次表明h/w预取器没有被击败.它能够检测一些模式和预取数据(参见示例输出).我有20-40个4KB页面的不同访问页数,但结果没有改进/变化.

这是我的代码:

#define _GNU_SOURCE             /* See feature_test_macros(7) */
#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>
#include <sched.h>

#ifndef _POSIX_THREAD_PROCESS_SHARED
#error This system does not support process shared mutex
#endif

#define MAX_COUNT 3000
#define INDEX (40*1024) // size of DUMMY 40 4KB pages

inline void clflush(volatile void *p)
{
    asm volatile ("clflush (%0)" :: "r"(p));
}

unsigned long probe(char *adrs) {
  volatile unsigned long …
Run Code Online (Sandbox Code Playgroud)

c linux optimization assembly

10
推荐指数
1
解决办法
557
查看次数

如何从部署在64位服务器上的SSIS包访问Excel数据源?

我有一个SSIS包,可以将数据导出到几个Excel文件,以便传输给第三方.为了使它在64位服务器上作为预定作业运行,我理解我需要将步骤设置为CmdExec类型并调用32位版本的DTExec.但我似乎无法使命令正确传递Excel文件的连接字符串.

到目前为止我有这个:

DTExec.exe /SQL \PackageName /SERVER OUR2005SQLSERVER /CONNECTION 
LETTER_Excel_File;\""Provider=Microsoft.Jet.OLEDB.4.0";"Data 
Source=""C:\Temp\BaseFiles\LETTER.xls";"Extended Properties=
""Excel 8.0;HDR=Yes"" /MAXCONCURRENT " -1 " /CHECKPOINTING OFF /REPORTING E
Run Code Online (Sandbox Code Playgroud)

这给了我错误: Option "Properties=Excel 8.0;HDR=Yes" is not valid.

我已尝试过一些带引号的变体,但尚未能正确使用它.

有谁知道如何解决这一问题?

UPDATE:

感谢您的帮助,但我现在决定使用CSV文件,因为它们似乎只适用于64位版本.

sql-server excel ssis

7
推荐指数
2
解决办法
2万
查看次数

如何添加包以将SDK填充为主机工具?

我已经创建了自己的配方来构建我的SW,它在构建期间需要本机perl(例如,调用perl脚本来生成代码).如果我将配方添加到图像并使用bitbake与图像构建配方,则没有问题.

现在我还想用一个填充SDK来构建SW,但是我发现当我生成填充SDK时,本机perl只包含一些模块而没有构建我的SW所需的模块.我发现了两种使用其他perl模块生成填充SDK的方法:

  1. 在生成填充SDK之前,将TOOLCHAIN_HOST_TASK + ="nativesdk-perl-modules"添加到我的图像.bb文件中
  2. 为nativesdk-packagegroup-sdk-host添加一个bbappend文件,其中包含RDEPENDS中的"nativesdk-perl-modules"

对于1,它是特定于图像的解决方案.对于2,它是一个全球解决方案.

现在我正在寻找特定配方的解决方案.有没有我可以在我的配方.bb文件中添加一些配置的解决方案,然后我为包含我的配方的任何图像构建填充SDK将包含这些额外的本机perl模块?

bitbake yocto

7
推荐指数
1
解决办法
6738
查看次数

Apache HttpClient:如何通过服务器的保持活动时间自动关闭连接?

Apache HttpClient 4.3b2,HttpCore 4.3.

我用来PoolingHttpClientConnectionManager同时管理5个连接:

PoolingHttpClientConnectionManager connectionManager;
HttpClient httpclient;
connectionManager = new PoolingHttpClientConnectionManager();
connectionManager.setDefaultMaxPerRoute(5);
httpclient = HttpClientBuilder.create().setConnectionManager(connectionManager).build();
Run Code Online (Sandbox Code Playgroud)

服务器有5秒的保持活动时间.当服务器启动关闭连接过程是停留在FIN_WAIT2状态,直到我将执行connectionManager.shutdown()connectionManager.closeExpiredConnections()connectionManager.closeIdleConnections(5, TimeUnit.SECONDS)手动.服务器等待FIN包.在服务器启动关闭过程后,如何在客户端自动关闭连接?

当我从Chrome浏览器发出请求时,服务器在尝试通过keep-alive关闭连接时保持TIME_WAIT状态(FIN_WAIT2状态变化非常快).如何使用Apache HttpClient获得相同的行为?

java apache-httpclient-4.x

6
推荐指数
2
解决办法
3万
查看次数

为什么bitbake忽略了我的makefile中的CFLAGS?

我的应用程序的makefile为CFLAGS添加了几个东西,如下所示:

CFLAGS += -Wall -std=gnu99
Run Code Online (Sandbox Code Playgroud)

但是当我使用OpenEmbedded BitBake构建应用程序时,BitBake显然忽略了makefile中的CFLAGS变量.

我发现在应用程序的配方中添加以下行会导致在构建期间通过BitBake使用标志:

EXTRA_OEMAKE += "CFLAGS='-Wall -std=gnu99'"
Run Code Online (Sandbox Code Playgroud)

为什么BitBake会忽略makefile中的CFLAGS?此外,是否有比将上述线添加到配方更好的解决方案?

我更喜欢使用makefile的CFLAGS来消除冗余.

c linux makefile openembedded bitbake

6
推荐指数
1
解决办法
9509
查看次数

如何在 OpenEmbedded BitBake 配方中递归安装目录结构?

我想通过使用某种递归安装例程而不是多次调用 install 来简化安装大型目录结构的 BitBake 配方。源目录布局在开发过程中经常发生变化,这导致配方修订比我想要处理的要多得多。

例如,以下 do_install() 将如何简化:

do_install() {
    install -d ${D}/foo
    install -m 0644 ${S}/foo/*.* ${D}/foo

    install -d ${D}/foo/a
    install -m 0644 ${S}/foo/a/*.* ${D}/foo/a

    install -d ${D}/foo/b
    install -m 0644 ${S}/foo/b/*.* ${D}/foo/b

    install -d ${D}/foo/c
    install -m 0644 ${S}/foo/c/*.* ${D}/foo/c

    install -d ${D}/bar
    install -m 0644 ${S}/bar/*.* ${D}/bar

    install -d ${D}/bar/a
    install -m 0644 ${S}/bar/a/*.* ${D}/bar/a

    install -d ${D}/bar/a/bananas
    install -m 0644 ${S}/bar/a/bananas/*.* ${D}/bar/a/bananas
}
Run Code Online (Sandbox Code Playgroud)

更像这个伪代码的东西:

do_install() {
    for each subdir in ${S}/foo/
        install subdir recursively to ${D}/foo/subdir …
Run Code Online (Sandbox Code Playgroud)

shell recipe openembedded bitbake

5
推荐指数
1
解决办法
3230
查看次数

Bitbake:如何列出图像中使用的所有配方和附加文件?

我正在使用OpenEmbedded-Core并创建了一个优先级为6的自定义层.几个月的开发已经过去了,现在我想将我们图层的优先级提高到8,因为来自另一个优先级为7的图层的追加文件正在干扰追加我在我的图层中添加了文件.

我的问题是,如何生成图像中使用的配方和.bbappend文件列表?

我想在进行优先级更改之前和之后生成列表,以便我可以比较它们(希望有一个difftool)来查看是否发生了任何意外的副作用,例如来自其他层的重要附加文件可能会被忽略.

我正在使用Angstrom发行版的angstrom-v2014.12-yocto1.7分支.

[编辑]

我现在主要只是想确定如何列出我的图像实际使用的.bbappend文件.

可以使用@pnxs建议的"bitbake -g your-image-name"或者.manifest文件(我喜欢使用的)来查看软件包列表,在我的情况下,它位于deploy/glibc /下图像/ imagename /.我最初询问如何生成"配方文件"列表,但我认为包列表就足够了.

关于.bbappends,我有一个案例,由于图层优先级,我自己的.bbappend被忽略了.我对我的图层优先级进行了更改,现在想看看是否会导致我的图像中任何其他位置的.bbappend文件被忽略.根据我的理解,使用"bitbake-layers show- appends "作为建议列出所有 .bbappends而不仅仅是那些实际用于创建图像的内容,因此这不符合我的要求.

recipe openembedded bitbake yocto

5
推荐指数
2
解决办法
9907
查看次数

AWS WAF如何通过IP对限制路径进行速率评定,使其低于每分钟2000个请求的最小值

我有一条路径(例如,mysite.com / myapiendpoint)既要占用大量资源进行服务,又很容易被机器人滥用。我需要将对特定路径的访问速率进行限制,例如每个客户端IP地址每分钟10个请求。如何才能做到这一点?

我托管了一个EC2实例,其中包括CloudFront和AWS WAF。我启用了标准的“基于费率的规则”,但是对于我的应用程序来说,每个IP地址最低每分钟2,000个请求绝对不可用。

我正在考虑为此使用API​​网关,并且在过去使用过它,但是据我了解,它的速率限制不是基于IP地址,因此漫游器会简单地用尽限制,并且经常会拒绝合法用户使用端点。

我的网站不使用任何类型的会话,因此我认为我无法对服务器本身进行任何类型的速率限制。另外请记住,我的网站是单人操作,对AWS来说我是新手

如何将每个IP的使用限制为每分钟10个请求,最好是在WAF中?

[编辑]

经过更多研究,我想知道是否可以启用将标头转发到源(运行节点/ express)并使用速率限制程序包。这是可行的解决方案吗?

rate-limiting amazon-web-services amazon-waf

5
推荐指数
2
解决办法
1133
查看次数