小编Dan*_*n M的帖子

Java内存不足自动堆转储文件名

我有几个Java进程,我正在尝试管理发生OOM错误时创建的堆转储.当我说管理我的意思

  • 根据原始进程以不同方式命名堆转储
  • 删除较旧的堆转储以保留磁盘空间

使用时将堆转储到OOM上

 -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/tmp
Run Code Online (Sandbox Code Playgroud)

JVM在指定的/ tmp文件夹中创建一个名为java_pidXXXX.hprof的文件(其中XXXX是进程的PID).无论如何要指定一种不同的格式,其中PID和DATE用于创建文件名?谷歌搜索了一个小时后,我尝试了myPrefix_ $,{pid},'date'等.唯一有效的两件事是

  1. 不指定文件名,你得到java_pidXXXX.hprof
  2. 指定静态文件名,例如\ tmp\OOM.hprof.

如果\ tmp文件夹不存在,则不会创建它,也不会创建堆转储.

可以使用的一个想法是在OOM错误上添加命令

-XX:OnOutOfMemoryError="doSomething.sh %p"
Run Code Online (Sandbox Code Playgroud)

但我试图避免它,因为我需要部署"doSomething.sh"

java jvm out-of-memory heap-dump

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

网络核心 DbContextPool 与 AddDbContextPool 等

我想在消耗处理率高卡夫卡队列,并利用.NET 2.1的核心我试图同时使用EF结果存储在MySQL的AddDbContext和AddDbContextPool我跑在这两种情况下进入的问题。

1)当使用AddDbContext我成功的唯一方法是确定它的范围时,每次我需要调用数据插入时都会transient获得一个新DataContext实例。我的队列很大,最终与 mqSQL 服务器的连接太多,所以最终我开始收到大量超时错误。

我知道我可以添加选项来重试瞬态错误(超时就是其中之一),但我最感兴趣的是如何将DataContext实例数量减少到不会破坏数据库的数量。这让我进行了下一次尝试

2)使用时AddDbContextPool我无法将范围设置为transient找不到语法!有吗?无法为每次调用都获得一个新实例我会遇到另一种奇怪的错误,这些错误通常可以通过短暂的生命周期解决

An attempt was made to use the context while it is being configured. A DbContext instance cannot be used inside OnConfiguring since it is still being configured at this point. This can happen if a second operation is started on this context before a previous operation completed. Any instance members are not guaranteed to be thread safe. …

c# entity-framework dbcontext entity-framework-core .net-core

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

用Ruby中的getter覆盖方法

下面的代码按预期运行,但是使用属性的getter 覆盖方法(请参阅下面的代码中的action_label)是否有任何缺点?请参阅代码中的:action_label

class BaseAction
  def action_label
    raise NotImplementedError
  end

  def run
    puts "Running action: #{action_label}"
    yield        
  end
end

class SimpleAction < BaseAction  

  def initialize(label)    
    @action_label = label
  end

  private
  attr_reader :action_label
end

sa = SimpleAction.new("foo")
sa.run {puts "action!"}
Run Code Online (Sandbox Code Playgroud)

ruby inheritance overriding

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

如何在IBM Lotus Domino中使用@GetDocField来获取与当前数据库不同的数据库

我需要"在撰写时计算"文档中的字段,因此Client + Formula是我在这里唯一的选项.

我正在使用@DbLookup("":"NoCache";"server":"db";"View";"key"; fieldName); 查看不同服务器/数据库的命令,并返回特定文档的UNID.UNID对server/db数据库有效,而不是当前数据库.如何使用此UNID在远程文档上获取/设置值.在IBM文档中,我只找到了仅用于本地数据库的@GetDocField(UNID,fieldName)和@SetDocField(UNID,fieldName,value)!

如何实际有意义地使用此UNID,因为它代表远程数据库上的文档.我搜索了40分钟的答案!

formula lotus-domino

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