oracle触发器+存储过程发送http请求2

本文介绍了一种通过Oracle加载Java源代码、创建存储过程和触发器来异步执行HTTP请求的方法,以解决当Web接口崩溃时触发器执行时间过长的问题。文章详细阐述了每个步骤,包括加载Java源码、创建存储过程、调用存储过程、创建触发器,以及使用Oracle的DBMS_JOB提交任务来避免触发器中的长时间等待。经过测试,该方案在改变大量数据时能保持较短的执行时间。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在上篇文章解决 oracle触发器+存储过程发送http请求 问题之后,发现了一个问题:

如果web接口崩溃致使web请求失败,由于web请求的timeout最终导致触发器执行周期非常长,因此无法应用于实际项目。遂想到oracle是可以运行简单java代码的,用java代码异步执行web请求是否可以解决该问题呢?

因此本文介绍了oracle 加载java 类实现访问http请求。

1、加载 java source

在 sql 编辑器中运行 以下代码创建java source 

create or replace and compile java source named demo as
import java.net.*;
public class Demo {

  public static void main(String[] args) {
  
  Thread thread=new Thread(new Runnable() {
   
    public void run() {
	
      try {
		URL url = new URL("http://127.0.0.1:8902/api/service/alarmnotify/");
		HttpURLConnection connection = (HttpURLConnection)url.openConnection();
		connection.setRequestProperty("Content-Type", "application/json");
		connection.setDoOutput(true);
		int responseCode= connection.getResponseCode();
    } 
	catch (Exception e) {
      e.printStackTrace();
    }  
    }
  }
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值