Oiale Asked: 2019-03-10 11:41:26 +0800 CST2019-03-10 11:41:26 +0800 CST 2019-03-10 11:41:26 +0800 CST 使用Java存储过程时的陷阱 772 最近我在做一个项目,我认为可以通过使用Java 存储过程(更准确地说是一些接收/发送电子邮件包)来解决。 一段时间后,我发现我公司的数据库中的 Java 类和 Java 存储过程的数量非常少。我问过 DBA,他说禁止使用 Java 存储过程,因为“它很容易让服务器宕机”。 如果有人可以解释我,我将不胜感激:使用使用外部包的 Java 存储过程真的很危险吗?有什么陷阱吗?使用 Java 存储过程不是一种常见的做法吗? oracle java 1 个回答 Voted Best Answer mustaccio 2019-03-10T14:19:20+08:002019-03-10T14:19:20+08:00 编写良好的 Java 存储过程不太可能“让服务器宕机”,但是,Java 例程可能会对性能产生一些影响,因为调用它们意味着 Oracle 需要启动 Java 虚拟机 (JVM) 进程,将控制权转移给它,并等待 Java 代码终止。由于这仍在 SQL 事务范围内发生,因此并发性可能会受到影响。当 Java 用于同步执行某些依赖于远程资源的可能长时间运行的活动(例如发送和接收电子邮件)时尤其如此。 如果可能,您可能希望避免使用 Java 存储过程;考虑使用UTL_MAILOracle 内置包来处理电子邮件消息。
编写良好的 Java 存储过程不太可能“让服务器宕机”,但是,Java 例程可能会对性能产生一些影响,因为调用它们意味着 Oracle 需要启动 Java 虚拟机 (JVM) 进程,将控制权转移给它,并等待 Java 代码终止。由于这仍在 SQL 事务范围内发生,因此并发性可能会受到影响。当 Java 用于同步执行某些依赖于远程资源的可能长时间运行的活动(例如发送和接收电子邮件)时尤其如此。
如果可能,您可能希望避免使用 Java 存储过程;考虑使用
UTL_MAIL
Oracle 内置包来处理电子邮件消息。