一次低代码(APEX)的故障处理

来源:这里教程网 时间:2026-03-03 21:26:29 作者:

最近生病,每天都去医院输液。所以有好几天没有更新了。前天晚上,呼叫我上线分析问题。当我问及出什么问题时候,给我的是一个

3c27ab28c1404c84a129d5ea5602af3.png

报错指向不明确

一般来说数据库(不管什么数据库)报错都会有自己的特点。比如Oracle的有Ora开头的,MySQL的有MY开头的。等等

所有有时候说连接不上数据库,有数据库报错的,那么是数据库的连接数达到上限了。如果没有通常就是JVM那里的连接池的达到上限了。

而今天这个说了几乎和没说一样。看上去没有任何数据库的报错。

但是由于这个是APEX低代码的,而APEX是和数据库强相关的。所以也不一定就一点关系也没有。只是这个不是我安装的,从地址到管理员以及密码都不知道。

问题分析

就会议室大家讨论说当天下午还可以使用。但是快下班时候就不行了。我就想既然这样应该有一些错误信息吧?APEX是通过ords发布使用的。好歹也安装过。在这个思路下有权限的人查到了有一个明显的错误。error procedure send_pdf_filePath error:ORA-20001: You have exceeded the maximum number of web service requests per workspace. Please contact your administrator.

终于看到Ora的错误码了。那么就有方向了。

事后我才发现原来这个错误累计了很多 image.png

我原来想着重启ords是不是能解决。甚至我都想过重启数据库实例(PDB)应该能够解决。这些我没有去尝试,但是可能可以的。

在这个过程中根据这个错误提示(exceeded the maximum number of web service requests per workspace),我找到了这个连接:https://docs.oracle.com/pt-br/iaas/autonomous-database-serverless/doc/apex-web-services.html

看样子是要改这个参数 image.png

有相关的人去执行了这个,问题果然解决了。

思考

虽然解决了,但是我有几个问题?

问题1:为什么要限制这个?

问题2:这个修改的写到哪里去了?

问题3:为什么要过24个小时(后来才知道这个理解是不对的)

问题4:能不能改成不是24小时?比如12小时

然后我就去摸索的查询。 其实APEX博大精深,低代码不是无代码,只是降低门槛不代表没有门槛。有时候企业不重视技术的投入,那么技术人员也不会有太多的精力和资源投入。

image.png

这个表apex_workspace_activity_log是我自己摸索出来的。 前面的apex_220100是这个机器上特殊的,因为不是每个环境都一样,这里代表是22.01这个版本。所以如果你是其他版本。要酌情替换。

可以看出这个LAMS的空间前一天是1700多,而后面一天是将近4000.所以他的默认可能是2000.超过2000就出错了。

为什么要限制呢?我和专人讨论一下。别人给我的说法是:Oracle是一个大机器,有无数口对外,每个都权衡数量和连接数,每个连接数是占内存的。我觉得说的有道理。

那么这个改的到哪里去了?这个我没管理员权限。我现在看不到。应该是在APEX下的一个参数位上。

关于24小时,其实查询了官方,才知道理解错了。 652b79ab468e273256a1a0c9fcab56b.png

他这个意思是指在循环的24小时之内,最大的这个web service的可以提供support的次数。所以我也不用去改12个小时。

最后反查验证

image.png 又是通过自己摸索的表查到那一天在15点时候有异常。一个小时就快1000次调用了。

通过app下的日志也看到了。如果出问题就是那时候。就出现了大量的问题。 image.png

而这个存储过程是应用开发自定义的。

总结

经验又增加了。下次处置会更加准确的定位。

相关推荐