gpt4 book ai didi

java - JPA 持久保存大 blob

转载 作者:行者123 更新时间:2023-12-01 15:02:48 26 4
gpt4 key购买 nike

我尝试使用大型 blob 文件持久保存实体,但在 JBoss 日志中收到“内存不足”错误。

我使用多种配置进行测试,但总是得到相同的结果。我正在使用 jBoss 6 和 MySQL。

这个例子...实体:

@Entity
@Table(name="ficheros")
public class Fichero implements Serializable {

private static final long serialVersionUID = 1L;

@Id
@GeneratedValue(strategy=GenerationType.AUTO)
@Column(unique=true, nullable=false)
private int idfichero;

@Lob()
@Column(nullable=false)
private Blob fichero;

public Fichero() {
}

public int getIdfichero() {
return this.idfichero;
}

public void setIdfichero(int idfichero) {
this.idfichero = idfichero;
}

public Blob getFichero() {
return this.fichero;
}

public void setFichero(Blob fichero) {
this.fichero = fichero;
}
}

类(class):

public Integer insertaFichero(Fichero fich) {
ficheroDAO.create(fich);

return fich.getIdfichero();
}

还有其他方法吗?

最佳答案

此错误的问题是操作系统无法为线程堆栈分配更多内存,因此无法实例化新线程。可能不是 JBoss 的问题。您必须减少每个线程使用的内存量。 JBoss 线程的最佳大小是 128k 或 256k。

您可以从 JBoss 文档中查看这篇文章

https://community.jboss.org/wiki/OutOfMemoryExceptions?_sscc=t .

https://community.jboss.org/wiki/OutOfMemoryExceptionWhenCannotCreateThread .

另请参阅 stackoverflow 问题: Safe thread stack size?

为了减少这个内存量,在linux中我找到了命令:

ulimit -s 256

关于java - JPA 持久保存大 blob,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13397981/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com