我有一个PL/SQL程序,通过透明网关对AS400数据库进行查询。有时候AS400无法响应查询(可能是网络问题),导致PL/SQL程序挂起。
是否有一种方法可以设置Oracle查询的超时时间,以便在经过一定时间后引发异常?
我有一个PL/SQL程序,通过透明网关对AS400数据库进行查询。有时候AS400无法响应查询(可能是网络问题),导致PL/SQL程序挂起。
是否有一种方法可以设置Oracle查询的超时时间,以便在经过一定时间后引发异常?
您尝试过在AS400透明网关初始化文件中设置HS_FDS_CONNECT_PROPERTIES
参数吗?
设置超时时间为2分钟:
HS_FDS_CONNECT_PROPERTIES="timeout='120'"
设置查询超时时间的另一个更通用的选项是创建一个配置文件并将其分配给运行查询的用户。
资源配置文件可用于在任何特定会话中设置各种使用限制 - 可用的一种资源限制是连接时间。
例如,您可以创建一个名为 as400_tg_profile
的配置文件,并将其分配最长连接时间为 2 分钟:
create profile as400_tg_profile limit connect_time 2;
如果您想将此配置文件分配给运行查询的用户,则可以执行以下操作:
alter user as400_tg_user profile as400_tg_profile;