小编Raj*_*eev的帖子

将null赋给引用变量时的GC行为

我试图理解GC的行为,我找到了一些让我感兴趣的东西,我无法理解.

请参阅代码和输出:

public class GCTest {
    private static int i=0;

    @Override
    protected void finalize() throws Throwable {
        i++; //counting garbage collected objects
    }

    public static void main(String[] args) {        
        GCTest holdLastObject; //If I assign null here then no of eligible objects are 9 otherwise 10.

        for (int i = 0; i < 10; i++) {            
             holdLastObject=new GCTest();             
        }

        System.gc(); //requesting GC

        //sleeping for a while to run after GC.
        try {
            Thread.sleep(200);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }

        // …
Run Code Online (Sandbox Code Playgroud)

java garbage-collection

19
推荐指数
3
解决办法
1071
查看次数

Spring Cassandra 超时查询“SELECT * FROM system_schema.tables”在 PT2S 后超时

我正在使用 Spring Boot2.4.4和 Spring Data Cassandra 依赖项连接到 Cassandra 数据库。在应用程序启动期间,我收到 DriverTimeout 错误(我正在使用 VPN)。

我已经浏览了所有与此类似的 Stack Overflow 问题,但没有一个对我有用。我在 Spring Boot官方页面上交叉发布了同样的问题。

我使用了下面的配置属性 -

spring.data.cassandra.contact-points=xxxxxx
spring.data.cassandra.username=xxxx
spring.data.cassandra.password=xxxxx
spring.data.cassandra.keyspace-name=xxxx
spring.data.cassandra.port=9042
spring.data.cassandra.schema-action=NONE
spring.data.cassandra.local-datacenter=mydc
spring.data.cassandra.connection.connect-timeout=PT10S
spring.data.cassandra.connection.init-query-timeout=PT20S
spring.data.cassandra.request.timeout=PT10S
Run Code Online (Sandbox Code Playgroud)

我还在 application.properties 中添加了 DataStax 属性,以检查是否可以从那里获取它们。

datastax-java-driver.basic.request.timeout = 10 seconds
datastax-java-driver.advanced.connection.init-query-timeout = 10 seconds
datastax-java-driver.advanced.control-connection.timeout = 10 seconds
Run Code Online (Sandbox Code Playgroud)

以下是我按照帖子中的建议使用的配置-

@EnableCassandraRepositories
public class CassandraConfig {
    @Bean
        DriverConfigLoaderBuilderCustomizer cassandraDriverCustomizer() {
            return (builder) -> builder.withDuration(DefaultDriverOption.CONTROL_CONNECTION_TIMEOUT,
                    Duration.ofSeconds(30));
        }
}
Run Code Online (Sandbox Code Playgroud)

但我仍然遇到同样的错误

Caused by: com.datastax.oss.driver.api.core.DriverTimeoutException: query 'SELECT * FROM system_schema.tables' timed out …
Run Code Online (Sandbox Code Playgroud)

java spring cassandra spring-boot spring-data-cassandra

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

web.xml和weblogic.xml有什么区别

最近我开始在Weblogic服务器上工作.我在添加weblogic.xml时默认添加了运行时环境.我在互联网上搜索差异,但我仍感到困惑.任何人都可以详细说明吗?

web.xml java-ee weblogic12c

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

命令不在docker-compose.yml内部执行

我正在控制容器的启动顺序,因为我的docker-compose共有5个容器,它们需要按顺序启动。

我已经通过了Internet / git / StackOverflow解决方案中有关控制启动顺序的许多建议。

问题是

命令:[“ ./ wait-for-it.sh”,“ rabbitmq:15672”]

容器启动时未在docker容器内执行。

这是详细说明:

  1. 我有一个春季启动项目,下面提供了Dockerfile。

    FROM openjdk:8-jre-alpine
    COPY ./target/spring-cloud-config-server-0.0.1-SNAPSHOT.jar /usr/source/
    COPY wait-for-it.sh /usr/source/
    RUN chmod 777 /usr/source/wait-for-it.sh
    RUN apk add --no-cache bash
    WORKDIR /usr/source/
    EXPOSE 8080
    ENTRYPOINT ["java", "-jar", "spring-cloud-config-server-0.0.1-SNAPSHOT.jar"]
    
    Run Code Online (Sandbox Code Playgroud)

2.我正在使用wait-for-it.sh bash脚本,该脚本直接放置在存在Dockerfile的同一根目录中。3.在同一根目录中,我有docker-compose.yml,如下所示

version: "3.3"
services:
 rabbitmq:
  image: rabbitmq:management
  ports:
  - "15672:15672"
  - "5672:5672"
  volumes: 
- /root/rabbitmq_data:/var/lib/rabbitmq
 spring-cloud-config-server: 
    image: rajeevshukla/spring-cloud-config-server
    container_name: spring_cloud_config_server
    depends_on: 
     - rabbitmq
    links: 
     - rabbitmq 
    command: ["./wait-for-it.sh","rabbitmq:15672"]
    ports: 
      - "8888:8080"
    environment:
      - "SPRING_PROFILES_ACTIVE=prod"
Run Code Online (Sandbox Code Playgroud)

现在,当我构建docker映像并启动它时。我看到在我的jar文件所在的/ usr / source /目录中的docker容器中存在wait-for-it.sh。 …

docker docker-compose

3
推荐指数
1
解决办法
3335
查看次数