java - JAX-RS RESTful 服务和永久 Oracle 连接

标签 java oracle rest tomcat jax-rs

我正在编写一个 RESTful 服务,它使用 application/octet-stream 并接受二进制文件以将它们写入磁盘(Tomcat 8、Windows Server 2012R2、JAX-RS)。然后我需要将文件内容插入到 Oracle 表中。

服务本身运行良好,接受文件并将它们写入磁盘。 我的问题(或称之为最佳实践问题)是如何将数据传输到 Oracle 数据库。当然,我可以在服务本身中打开一个连接,每次服务接受文件时都会调用该连接,但这真的是“正确”的方式吗?我们谈论的是许多小文件(假设每分钟 100 个,每个大约 300 字节)。

我应该创建一个连接池吗?或者甚至是一个使 Oracle 连接永久打开的独立程序?不幸的是,我目前无法真正进行基准测试,因为我在一个孤立的测试服务器上。

那么,tl;dr:如何将 RESTful 服务接受的许多小文件的内容传输到 Oracle 数据库?

最佳答案

当您在 Tomcat 上部署时,使用 Tomcat managed connection pool是最通用的方式。我们使用它并从中获得非常好的性能。你可以推出自己的并对其进行基准测试,但我不确定这样做的优点。我知道我会首先尝试与 Tomcat 最佳集成的方式,并且只有当它不执行移动到像 C3P0 这样的库时。

根据您的用例,您可以不将文件写入磁盘而只是将它们插入数据库。由于您的文件很小,因此甚至没有理由进行异步或 fork 线程进行插入。

关于java - JAX-RS RESTful 服务和永久 Oracle 连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35573151/

相关文章:

java - 负数组大小异常 -1

java - 由于 BlockingQueue 的消费者(我认为是在另一个线程上),主线程挂起

java - 预加载是否加载所有相关对象?

java - 服务器 : Null java. sql.SQLException 参数索引超出范围(1 > 参数数量,为 0)

database - 监听器启动失败

java - Spring MVC - 来自过滤器的内容类型感知响应

rest - 是否可以执行 put-redirect-get 操作?

java - 在 Weka 中以编程方式获取 EM 聚类器输出

java - Unitils/DBunit/Oracle - 如何在 Oracle View 中插入数据集?

sql - 使用 DESC 和 ROWNUM 选择