Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mule ESB数据库连接器-插入后选择_Mule_Integration - Fatal编程技术网

Mule ESB数据库连接器-插入后选择

Mule ESB数据库连接器-插入后选择,mule,integration,Mule,Integration,我遇到了mule数据库连接器的问题。我有一个接收JSON和一些数据的流,我获取一些数据并使用它将记录插入数据库。数据库在插入记录时生成自己的ID。现在在同一个流中,我想选择该ID,但有时它不会返回任何结果。当我在插入后执行“选择”查询时,是否可能该查询尚未插入/尚未生成ID?我该怎么做才能使它正常工作?如何使“选择”数据库连接器等待该数据?首先: 您是否检查了数据库连接器在响应中检索到1(或者数据库显示受影响行数的方式) 如果您的流被配置为异步(mule的默认值),并且它具有适当的连接超时,那么

我遇到了mule数据库连接器的问题。我有一个接收JSON和一些数据的流,我获取一些数据并使用它将记录插入数据库。数据库在插入记录时生成自己的ID。现在在同一个流中,我想选择该ID,但有时它不会返回任何结果。当我在插入后执行“选择”查询时,是否可能该查询尚未插入/尚未生成ID?我该怎么做才能使它正常工作?如何使“选择”数据库连接器等待该数据?

首先:

您是否检查了数据库连接器在响应中检索到1(或者数据库显示受影响行数的方式)

如果您的流被配置为异步(mule的默认值),并且它具有适当的连接超时,那么它应该在进入下一个连接器时添加信息

另外,您是否检查了它是否确实在db中插入了该行?
您是否检查过,实际上您正在使用db生成的正确ID进行选择

我建议您进行逐步调试,以检查此信息

希望有帮助

首先:

您是否检查了数据库连接器在响应中检索到1(或者数据库显示受影响行数的方式)

如果您的流被配置为异步(mule的默认值),并且它具有适当的连接超时,那么它应该在进入下一个连接器时添加信息

另外,您是否检查了它是否确实在db中插入了该行?
您是否检查过,实际上您正在使用db生成的正确ID进行选择

我建议您进行逐步调试,以检查此信息


希望有帮助

我使用oracle连接器执行了类似的步骤,并且在存储过程中工作得很好。步骤是

a. Call Stored procedure 1
1. Call stored procedure to insert record based on parameters.
2. Commit the transaction.
3. Return 1(success) or 0(fail) based on outcome

b. Call Stored procedure 2 only if you get 1 (success) from Stored procedure 
1. Retrieve id for the record inserted in stored procedure 1

我使用OracleConnector执行了类似的步骤,并且在存储过程中工作得很好。步骤是

a. Call Stored procedure 1
1. Call stored procedure to insert record based on parameters.
2. Commit the transaction.
3. Return 1(success) or 0(fail) based on outcome

b. Call Stored procedure 2 only if you get 1 (success) from Stored procedure 
1. Retrieve id for the record inserted in stored procedure 1

在插入模式下,数据库连接器有三个属性autoGeneratedKeysautoGeneratedKeysColumnIndexesautoGeneratedKeysColumnNames

除了有效负载中的行数之外,它还返回自动生成的Insert值


在插入模式下,数据库连接器有三个属性自动生成的键自动生成的键列索引自动生成的键列名称

除了有效负载中的行数之外,它还返回自动生成的Insert值


您应该在插入记录后执行“提交”,否则该记录无法立即选择。我同意用户3366906的回答。

您应该在插入记录后执行“提交”,否则该记录无法立即选择。我同意用户3366906的回答。

谢谢,我试试看问题是否仍然存在。公平地说,它在atm机上大部分时间都能工作,但你的方法似乎更可靠。谢谢,我会试试看,看问题是否仍然存在。公平地说,它大部分时间都能工作,但您的方法似乎更可靠。从我在项目中看到的情况来看,没有响应检查-只需插入一个记录器,然后选择。流程可能是异步的,但insert和select是在同一范围内执行的,我认为处理策略与此无关。当它插入那一行时,我的流在其当前状态下大部分时间都工作,但有时它就是不工作。我不使用ID进行选择,而是使用一些数据和InternalID进行插入,数据库生成ExternalID,我想在查询中使用InternalID选择该ExternalID。从我在项目中看到的情况来看,没有响应检查-只需插入,一个记录器,然后选择。流程可能是异步的,但insert和select是在同一范围内执行的,我认为处理策略与此无关。当它插入那一行时,我的流在其当前状态下大部分时间都工作,但有时它就是不工作。我不使用ID选择,我使用一些数据和InternalID插入,数据库生成ExternalID,我想在查询中使用InternalID选择那个ExternalID。这意味着我甚至不需要查询自动生成的字段?如果我正确设置属性,它将由连接器返回?是&是-前提是底层JDBC驱动程序支持它-(我怀疑很少有人不支持它),这意味着我甚至不需要查询自动生成的字段?如果我正确设置了属性,它将由连接器返回?是&是-前提是底层JDBC驱动程序支持它-(我怀疑很少有人不支持它)