【发布时间】:2020-10-27 11:43:25
【问题描述】:
我正在使用 go 1.13 和 godror(以前的 goracle)包作为驱动程序来访问我的 oracle 数据库。我遵循推荐的预防措施,并建立我的连接安全和理智。然而,在某些情况下,我发现我的go app、我的主机 CentOS 和我的oracle 数据库有一些奇怪的不当行为。
我已将我的连接数设置为不超过 50,并通过其正常使用来观察它。但是,在数据库忙于制作一些昂贵的报告的某些情况下,我看到这个数字超出了预设的最大值。比如打开的连接数达到10000!
这是我的连接字符串:
user=user password=secret connectString=oracle_host:1521/testdb configDir=
connectionClass= enableEvents=0 heterogeneousPool=0 libDir= newPassword= poolIncrement=1
poolMaxSessions=50 poolMinSessions=0 poolSessionMaxLifetime=1h0m0s poolSessionTimeout=42s
poolWaitTimeout=0s prelim=0 standaloneConnection=0 sysasm=0 sysdba=0 sysoper=0
timezone=local
辅助信息:我在一个包中打开我的数据库连接一次并打开它,然后我们在应用程序的其他地方使用这个实例。可以看代码in this gist
参考资料:
【问题讨论】: