在我们的应用程序中,我们必须将 RDF 文件上传到 Glassfish 应用程序服务器以推断它们并将它们加载到我们的图形数据库中。
为此,在上传后,我们首先将它们的原始内容存储到我们的图表中。这显然不是最优的,因为我们的图是 neo4j 的,经过优化以存储小对象(而不是包含 25 MB 字符串的节点)。
那么,要执行长任务(因此不在请求/响应周期内),如何将这些文件临时存储在 JavaEE6 服务器中?
在我们的应用程序中,我们必须将 RDF 文件上传到 Glassfish 应用程序服务器以推断它们并将它们加载到我们的图形数据库中。
为此,在上传后,我们首先将它们的原始内容存储到我们的图表中。这显然不是最优的,因为我们的图是 neo4j 的,经过优化以存储小对象(而不是包含 25 MB 字符串的节点)。
那么,要执行长任务(因此不在请求/响应周期内),如何将这些文件临时存储在 JavaEE6 服务器中?
通常的知识是在 JavaEE 中存储文件是不好的,因为对文件的访问本质上是非事务性的。
不幸的是,这是错误的:XADisk是一个 Java 库,允许在文件系统上进行事务访问(甚至允许 XA 事务)。使用它,在 JavaEE 事务中创建/读取/删除文件非常容易。