小编pao*_*oyx的帖子

如何使用Hibernate在Oracle中保留大型BLOB(> 100MB)

我正在努力找到一种方法,使用BLOB列在我的Oracle数据库中插入大图像(> 100MB,主要是TIFF格式).

我已经在网络上进行了彻底搜索,甚至在StackOverflow中也没有找到这个问题的答案.
首先,问题......然后是相关代码(java类/配置)的一小部分,最后是第三部分,其中我展示了我写的测试图像持久性的junit测试(我在junit期间收到错误)测试执行)

编辑:我在问题的最后添加了一个部分,在那里我用JConsole描述了一些测试和分析

问题

java.lang.OutOfMemoryError: Java heap space使用hibernate 收到一个错误,并试图保留非常大的图像/文档:

java.lang.OutOfMemoryError: Java heap space
at java.util.Arrays.copyOf(Arrays.java:2786)
at java.io.ByteArrayOutputStream.toByteArray(ByteArrayOutputStream.java:133)
at org.hibernate.type.descriptor.java.DataHelper.extractBytes(DataHelper.java:190)
at org.hibernate.type.descriptor.java.BlobTypeDescriptor.unwrap(BlobTypeDescriptor.java:123)
at org.hibernate.type.descriptor.java.BlobTypeDescriptor.unwrap(BlobTypeDescriptor.java:47)
at org.hibernate.type.descriptor.sql.BlobTypeDescriptor$4$1.doBind(BlobTypeDescriptor.java:101)
at org.hibernate.type.descriptor.sql.BasicBinder.bind(BasicBinder.java:91)
at org.hibernate.type.AbstractStandardBasicType.nullSafeSet(AbstractStandardBasicType.java:283)
at org.hibernate.type.AbstractStandardBasicType.nullSafeSet(AbstractStandardBasicType.java:278)
at org.hibernate.type.AbstractSingleColumnStandardBasicType.nullSafeSet(AbstractSingleColumnStandardBasicType.java:89)
at org.hibernate.persister.entity.AbstractEntityPersister.dehydrate(AbstractEntityPersister.java:2184)
at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2430)
at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2874)
at org.hibernate.action.EntityInsertAction.execute(EntityInsertAction.java:79)
at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:273)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:265)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:184)
at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:321)
at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:51)
at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1216)
at it.paoloyx.blobcrud.manager.DocumentManagerTest.testInsertDocumentVersion(DocumentManagerTest.java:929)
Run Code Online (Sandbox Code Playgroud)

代码(域对象,存储库类,配置)

这是我正在使用的一堆技术(从数据库到业务逻辑层).我使用JDK6.

  • Oracle数据库10g企业版10.2.0.4.0版 - 产品介绍
  • ojdbc6.jar(适用于11.2.0.3版本)
  • Hibernate 4.0.1 Final
  • 春季3.1.GA发布

我有两个域类,以一对多的方式映射.A DocumentVersion有很多DocumentData,每个都可以代表不同的二进制内容DocumentVersion. …

java oracle spring hibernate blob

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

热重新部署和 Oracle 数据库导致永久内存泄漏

我有一个在生产环境中运行的基于 SpringRoo 的应用程序,在一些热重新部署后导致严重的永久内存泄漏。

为了“查找并修复”泄漏并减少分析过程中的变量,我使用 roo 创建了一个简单、精简的应用程序,并且获得了相同的行为。该项目(使用 Spring Roo (1.2.3.RELEASE) 创建)只是持久化一个名为“Person”的实体和一个名为“name”的字符串字段。

我在 Tomcat 7.0.39 上部署 war,使用 Oracle 11.2.0.2 作为数据库。每次重新部署后,我都会在 catalina.out 中收到此消息

INFO: Undeploying context [/ojdbc-0.1.0.BUILD-SNAPSHOT]
mag 06, 2013 10:50:43 AM org.apache.catalina.loader.WebappClassLoader clearReferencesJdbc
SEVERE: The web application [/ojdbc-0.1.0.BUILD-SNAPSHOT] registered the JDBC driver       [oracle.jdbc.OracleDriver] but failed to unregister it when the web application was stopped.    To prevent a memory leak, the JDBC Driver has been forcibly unregistered.
Run Code Online (Sandbox Code Playgroud)

两次热重新部署后,我收到一个permgen 错误

mag 06, 2013 10:51:08 AM org.apache.catalina.startup.HostConfig deployWAR
INFO: Deploying web application archive …
Run Code Online (Sandbox Code Playgroud)

oracle tomcat memory-leaks permgen spring-roo

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

在 Grafana 中以字母值作为 x 轴创建直方图

我需要创建一个在控制室中使用的仪表板,其中一群操作员需要监控分配给其他员工的任务数量(以及其他方面)。

源数据将来自 RDBM(在本例中为 PostgreSQL)。我们分配和编号的任务也有一个状态,而DB数据是这样的(纯属虚构:但它类似于真实的)

数据示例

必须创建和维护一个仪表板,我想使用 Grafana、Kibana 或类似工具来绘制这样的图

在此处输入图片说明

问题是,例如,Grafana不允许我对 x-axis 使用字母值。它只允许数字值,而我有名字要绘制(马克、卢克、布赖恩)。

有没有我可以遵循的最佳实践?我是否试图使用错误的工具?

postgresql dashboard histogram kibana grafana

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