我们有一个BODS ODBC,可以解决许多打开的连接问题。

2020-09-09 17:14发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中) BODS ODBC问题在于,与...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


BODS ODBC问题在于,与数据库的连接仅应为许多BODS SQL语句创建一个连接,而为每个SQL语句创建一个连接(500 +)。

在相同版本中测试此作业设计并跟踪数据库,确实显示500 sql脚本针对具有相同ClientprocessID和SPID的数据库运行。 尽管我们只能看到每个作业一个连接。

这些线程来自数据服务引擎,该引擎创建与数据库的连接,直到作业完成为止,使用相同的客户端进程iD和会话pid,它实际上只是一个连接。

研究sql命令以关闭连接返回的alter database命令并杀死pid,这些pid将杀死整个进程或在下次运行时锁定数据库。

任何人都知道一个内部属性或ODBC设置,对于每个BODS作业,我们只能使用一次连接,而对于许多而言,该连接是多少? 先感谢您。

使用ODBC连接为每个BODS作业创建的许多连接存在的问题是超过了数据库连接的最大数量(500)。 针对其他数据库的其他BODS作业仅创建一个连接。 我们正在使用ODBC连接。

2条回答
土豆飞人
2020-09-09 17:47

我看到了Postgres作为目标的相同问题...通过sql进行简单选择 循环中的()函数会导致每个sql()调用与后端postgres数据库建立唯一连接,并使其保持打开状态(直到JOB完成后才断开连接)...在数据库上留下500个唯一的连接/会话。 >

$ G_NT = 1;

其中($ G_NT <500)

开始

$ G_FETCH = sql('DS_ODBC',从myschema.foo;')选择count(*);

$ G_NT = $ G_CNT +1;

结束

为什么BODS需要在作业中保持500个DS_ODBC连接的打开状态?

我需要它:1)在每个sql()调用之后断开连接,或者2)对作业内的所有调用使用相同的数据库连接。

一周热门 更多>