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

报错指向不明确
一般来说数据库(不管什么数据库)报错都会有自己的特点。比如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的错误码了。那么就有方向了。
事后我才发现原来这个错误累计了很多

我原来想着重启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
看样子是要改这个参数

有相关的人去执行了这个,问题果然解决了。
思考
虽然解决了,但是我有几个问题?
问题1:为什么要限制这个?
问题2:这个修改的写到哪里去了?
问题3:为什么要过24个小时(后来才知道这个理解是不对的)
问题4:能不能改成不是24小时?比如12小时
然后我就去摸索的查询。 其实APEX博大精深,低代码不是无代码,只是降低门槛不代表没有门槛。有时候企业不重视技术的投入,那么技术人员也不会有太多的精力和资源投入。

这个表apex_workspace_activity_log是我自己摸索出来的。 前面的apex_220100是这个机器上特殊的,因为不是每个环境都一样,这里代表是22.01这个版本。所以如果你是其他版本。要酌情替换。
可以看出这个LAMS的空间前一天是1700多,而后面一天是将近4000.所以他的默认可能是2000.超过2000就出错了。
为什么要限制呢?我和专人讨论一下。别人给我的说法是:Oracle是一个大机器,有无数口对外,每个都权衡数量和连接数,每个连接数是占内存的。我觉得说的有道理。
那么这个改的到哪里去了?这个我没管理员权限。我现在看不到。应该是在APEX下的一个参数位上。
关于24小时,其实查询了官方,才知道理解错了。

他这个意思是指在循环的24小时之内,最大的这个web service的可以提供support的次数。所以我也不用去改12个小时。
最后反查验证
又是通过自己摸索的表查到那一天在15点时候有异常。一个小时就快1000次调用了。
通过app下的日志也看到了。如果出问题就是那时候。就出现了大量的问题。

而这个存储过程是应用开发自定义的。
总结
经验又增加了。下次处置会更加准确的定位。
