小编Ort*_*kni的帖子

在.Net中从Oracle获取clob字段的性能不佳

我试图从.Net中的oracle读取clob列,并观察到非常差的性能和大量的网络流量.

我尝试过ODP + OCI,devArt + OCI方式来访问具有相同结果的数据 - 在数据读取器中获取1000行需要大约20秒,并读取每行的clob值.

检查wireshark跟踪,结果是每次我尝试读取读取器中单行的clob字段时,在客户端和服务器之间发送了额外的多个tcp数据包.因此,对于1000行,这比仅查询一行慢1000倍.

同时,如果我在SQL Developer中运行相同的查询(我相信使用瘦jdbc驱动程序而不是oci),我会立即得到结果,包括clob值.它不会尝试查询每行的clob - 它可以一次性获取它们!

但我没有看到.net的瘦客户端.我怎样才能加快速度?请帮忙!

编辑:我的字段类型实际上是XMLTYPE存储为clob,而不是真正的clob.在它上面使用getClobVal可以将结果提高50%到10秒(1000行).但与此同时,Sql Developer立即返回结果,而不是在10秒内.

.net oracle odp.net clob devart

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

Gradle configuration.apt定义

我开始在Android Studio上使用Gradle,当我在项目中添加AndroidAnnotations支持时,我在google上发现必须在gradle.build文件中添加以下内容:

configurations {
    apt
}
Run Code Online (Sandbox Code Playgroud)

--

dependencies {
    apt 'com.googlecode.androidannotations:androidannotations:2.7.1'
    compile 'com.googlecode.androidannotations:androidannotations-api:2.7.1'
}
Run Code Online (Sandbox Code Playgroud)

--

android.applicationVariants.all { variant ->
    aptOutput = file("${project.projectDir}/gen")
    println "****************************"
    println "variant: ${variant.name}"
    println "manifest:  ${variant.processResources.manifestFile}"
    println "aptOutput:  ${aptOutput}"
    println "****************************"

    variant.javaCompile.doFirst {
        println "*** compile doFirst ${variant.name}"
        aptOutput.mkdirs()
        variant.javaCompile.options.compilerArgs += [
                '-processorpath', configurations.apt.getAsPath(),
                '-AandroidManifestFile=' + variant.processResources.manifestFile,
                '-s', aptOutput
        ]
    }
}
Run Code Online (Sandbox Code Playgroud)

我在网络上找不到的第一件事就是apt的意思。我浏览了gradle文档(我找了apt一词),没有找到任何东西。

另一个疑问是,由于我已经在“首选项”菜单上添加了注释库,为什么我需要编写最后一个脚本来编写生成的文件?

非常感谢你。

java android gradle android-annotations

5
推荐指数
0
解决办法
1981
查看次数

期待 - 期待互动期待

我想"监听"shell输出的字符串,同时处于"交互"模式.或者我想以某种方式模拟交互模式,这仍然允许我从shell中侦听特定的字符串.

它似乎interact只监听用户输入(我按下的键)而不是shell返回的内容.

每次看到特定字符串时,我如何让Expect执行某些操作,但是否则让我以交互方式使用shell无阻碍?

例:

proc yay {} {
        send_user "Yay\n"
}

trap { # trap sigwinch and pass it to the child we spawned
  set rows [stty rows]
  set cols [stty columns]
  stty rows $rows columns $cols < $spawn_out(slave,name)
} WINCH

spawn bash

interact {
    interact -re "HOT" {
         yay
    }

    expect {
        fuzz yay
   }

}
Run Code Online (Sandbox Code Playgroud)

如果我运行它并键入"HOT",它将以"Yay"响应.正如所料,它读了我的钥匙.但如果我输入

echo fuzz
Run Code Online (Sandbox Code Playgroud)

"expect"子句不会被触发."echo HOT"也不会触发任何东西.

这是可能的,还是我错过了什么.也许我需要模仿interact某种"期待,继续" - 循环.重要的是一切都在shell中正常工作..

有人建议吗?

expect

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

软件包库和头文件安装在哪里?

在Ubuntu中下载并安装软件包后,如何检查库和头文件写入的位置?我相信这与软件包的.pc文件有关,但是我也不知道如何找到该文件。

例如,我已经下载了PCL(点云库)软件包,然后在示例CMakeLists.txt文件中获得了以下内容:

include_directories(${PCL_INCLUDE_DIRS})
link_directories(${PCL_LIBRARY_DIRS})
add_definitions(${PCL_DEFINITIONS})
Run Code Online (Sandbox Code Playgroud)

这些环境变量在哪里定义,我怎么看?

如果我从源代码而不是通过软件包来编译库,这会有什么不同吗?.pc文件会自动创建吗?

linux ubuntu cmake dpkg

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

构建依赖于 apt 库的 conda 包

我正在构建一个科学 python 项目,该项目依赖于 python 包 ( scikits.sparse) 提供与 C/Fortran 库 ( ) 的绑定libsuitesparse-dev,可以通过apt-get或安装该库yum,但实际上不可能正确手动安装。

我想让我的包可供所有平台上的用户使用,我认为最好的方法是使用 conda 包构建conda skeleton,然后转换到其他平台。但是,我不确定 conda 管理外部库依赖关系的效果如何,并且想知道除了官方说明apt-get之外,我是否还需要做其他事情才能使其工作。

python package apt-get anaconda conda

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

从左到右动画 SVG

我对 SVG还很陌生,我有一个代码笔

问题是如何从左到右为 svg 设置动画?现在整个 svg 填充在一起。

<svg width="249" height="52" viewBox="0 0 249 32" version="1.1" xmlns="http://www.w3.org/2000/svg">
    <g id="#000000ff">
        <path stroke="#f7b547" stroke-width="2" stroke-miterlimit="10" fill="#fff" opacity="1.00" d=" M 183.73 0.00 L 187.27 0.00 C 187.27 6.40 187.25 12.80 187.29 19.19 C 190.78 19.99 194.44 20.48 197.99 19.79 C 200.40 18.19 198.99 14.49 199.52 12.00 C 200.60 12.00 201.68 12.00 202.76 12.00 C 202.82 14.29 202.77 16.59 203.12 18.86 C 204.16 19.60 205.37 20.05 206.53 20.58 C 206.63 18.08 206.47 …
Run Code Online (Sandbox Code Playgroud)

javascript css svg

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

如何在tomcat服务器上运行两个具有不同spring配置文件的WAR文件?

我想在同一个 tomcat 服务器上并行运行我的 spring 应用程序两次。一次是个人production资料,一次是个人dev资料。

我还想为这两个配置文件构建一个 WAR。

我已成功将配置文件与@Profile注释集成到我的应用程序中。我已成功在我的 tomcat 服务器上部署了两个 WAR 文件。

我需要的是一种在这两个应用程序中激活不同配置文件的方法,约束条件是这两个应用程序使用同一 WAR 文件的副本,并且这两个应用程序应该并行运行。

所以WebApplicationInitializer似乎web.xml不是一个选择。

java spring tomcat

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

Spring 启动 Maven rpm

我有一个弹簧启动应用程序。今天maven从项目中创建了jar。下面是我的 pom.xml 的构建部分

<build>
    <finalName>xsmartadapter</finalName>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>2.3.2</version>
            <configuration>
                <source>${java-version}</source>
                <target>${java-version}</target>
                <compilerArgument>-Xlint:all</compilerArgument>
                <showWarnings>true</showWarnings>
                <showDeprecation>true</showDeprecation>
            </configuration>
        </plugin>

        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>
Run Code Online (Sandbox Code Playgroud)

通过在上面的构建部分添加以下内容,我可以生成 rpm。

<plugin>
  <groupId>org.codehaus.mojo</groupId>
  <artifactId>rpm-maven-plugin</artifactId>
  <version>2.1.5</version>
  <extensions>true</extensions>
  <executions>
      <execution>
          <id>generate-rpm</id>
              <goals>
                  <goal>rpm</goal>
              </goals>
          <phase>prepare-package</phase>
      </execution>
  </executions>
    <configuration>
      <group>Application</group>
      <packager>SWWDC</packager>
      <mappings>
          <mapping>
              <directory>${basedir}/target</directory>
              <sources>
                  <source>
                      <location>target/classes</location>
                  </source>
              </sources>
          </mapping>
      </mappings>
      <name>xsmartadapter</name>
      <executable>rpmbuild</executable>
      <workingDirectory>${basedir}</workingDirectory>
  </configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)

但是当我尝试安装并启动服务时sudo service 'name' start。说找不到服务。

但是当我创建一个tar.gz文件并生成一个rpmusing 时,rpmbuild -ba target/filename.spec我就可以启动该服务。

我的目标是生成一个rpm(来自 maven),安装它并启动服务。

请提供一些建议。

rpm maven spring-boot

5
推荐指数
0
解决办法
2133
查看次数

使用Spring Security OAuth2刷新令牌调用失败,并出现以下错误:UserDetailsS​​ervice是必需的

我正在使用Spring Security OAuth2进行授权。尝试刷新令牌时,出现错误:(UserDetailsService is required有趣的是,我仅在UNIX计算机上而不是Windows上收到此错误)。我正在使用Spring OAuth2版本2.0.7。

由于某种原因,中的AuthenticationManagerin DefaultTokenService不为空,它尝试对用户进行身份验证以检查其是否仍然存在。我认为它由于一些春季安全性与春季oauth2配置问题而被初始化。

我没有使用任何自定义UserDetailsService,因此此时它不应该对用户进行身份验证。但是,当我调试它时,我看到它尝试使用中的一个WebSecurityConfigurerAdapter并得到此错误。即使我提供了自定义的虚拟对象UserDetailsService,它也没有使用该虚拟对象,而是尝试使用另一个虚拟对象,这是空的。我在这里想念什么吗?我不知道为什么会这样?

这是我的Oauth2配置

@Configuration
@EnableAuthorizationServer
public class OAuth2Config extends AuthorizationServerConfigurerAdapter {

    @Autowired
    private MySpringTokenStore tokenStore;

    @Autowired
    private AuthenticationManager authenticationManager;

    @Autowired
    private MyClientDetailsServiceImpl clientDetailsService;

    @Override
    public void configure(AuthorizationServerEndpointsConfigurer endpoints) throws Exception {
        endpoints.tokenStore(tokenStore);
        endpoints.authenticationManager(authenticationManager)
          .approvalStoreDisabled();
    }

    @Override
    public void configure(ClientDetailsServiceConfigurer clients) throws Exception {
        clients.withClientDetails(clientDetailsService);
    }

    @Override
    public void configure(AuthorizationServerSecurityConfigurer security) throws Exception {
        security.allowFormAuthenticationForClients();
    }

    @Bean
    public TokenStore tokenStore() {
        return new …
Run Code Online (Sandbox Code Playgroud)

java spring spring-security spring-security-oauth2 spring-oauth2

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

如何在Docker上运行PHP脚本?

我有index.php:

<?php
echo "Hello World";
?>
Run Code Online (Sandbox Code Playgroud)

来自网站的Dockerfile:https ://docs.docker.com/samples/library/php/

FROM php:7.2-cli
COPY . /usr/src/myapp
WORKDIR /usr/src/myapp
CMD [ "php", "./index.php" ]
Run Code Online (Sandbox Code Playgroud)

我建立映像并运行容器:

docker build -t my-php-app .
docker run -p 7000:80 --rm --name hello-world-test my-php-app
Run Code Online (Sandbox Code Playgroud)

我只看到文本“ Hello World”,但是我的应用程序在http:// localhost:7000 /中不起作用,为什么?

php docker

5
推荐指数
3
解决办法
3059
查看次数