Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.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
使用文件端点在db mule esb中插入记录_Mule_Mule Studio_Mule Component - Fatal编程技术网

使用文件端点在db mule esb中插入记录

使用文件端点在db mule esb中插入记录,mule,mule-studio,mule-component,Mule,Mule Studio,Mule Component,我有一个关于使用文件端点在数据库中插入记录的查询。 我想在数据库中插入json类型的记录。我创建json文件和所有插入数据库的文件数据。我的问题是我可以成功地在数据库中插入所有这些数据,但这是连续插入的数据,并且出现了错误,键“PRIMARY”的重复条目“1” 如何解决此错误?我不想递归插入数据。如何只执行一次? 我使用了以下流程 **File->Json to Object->Splitter->Database** 请帮助我您可以使用Mule中的.ack查询轻松检查副本

我有一个关于使用文件端点在数据库中插入记录的查询。 我想在数据库中插入json类型的记录。我创建json文件和所有插入数据库的文件数据。我的问题是我可以成功地在数据库中插入所有这些数据,但这是连续插入的数据,并且出现了错误,键“PRIMARY”的重复条目“1”
如何解决此错误?我不想递归插入数据。如何只执行一次? 我使用了以下流程

**File->Json to Object->Splitter->Database**

请帮助我

您可以使用Mule中的.ack查询轻松检查副本

.ack是在正常查询之后立即自动运行的查询

您需要创建.ack查询,该查询将在插入查询后立即运行,并将检查已插入的行并设置标志

在此处检查如何使用.ack查询执行此操作:-
在这里:

您可以使用一个幂等式消息过滤器(在拆分器之后)来确保丢弃重复的条目。如果json表示具有唯一标识符,请使用幂等式消息筛选器

<idempotent-message-filter idExpression="#[entry.id]">
    <simple-text-file-store directory="./idempotent"/>
 </idempotent-message-filter>

否则,请使用幂等安全哈希消息筛选器
(该筛选器将根据消息的哈希值筛选消息)



请检查以下内容以了解更多信息。

就我个人而言,我会尽量避免使用带有简单消息存储的幂等过滤器,因为它会阻止数据库中数据的潜在进一步更新


如果您的DBMS支持它,我将尝试使用UPSERT机制,该机制将有效地使您的查询幂等。这可以用这个和这个来完成

谢谢你的回复。还有别的办法吗?因为我不想在我的数据库中创建一个额外的列(作为标志),谢谢你的回复。我能解决它。但我想停止执行死刑。它仍在继续..我如何解决此问题?考虑到您的信息,问题是您多次处理同一文件。如果从不同的文件更新数据库,请对文件名或其哈希使用拆分器之前的筛选器(这将丢弃已处理的文件)。如果您使用相同的文件(使用新内容更新),那么您必须使用此答案中的解决方案。您能给我举个例子吗?我必须使用哪个过滤器,以及如何知道文件已处理??另一个解决方案是配置文件端点以移动或重命名(命名模式失败)已处理的文件。这样可以确保已处理的文件不会再次“进入”端点。
<idempotent-secure-hash-filter messageDigestAlgorithm="SHA26">
    <simple-text-file-store directory="./idempotent"/>
</idempotent-secure-hash-message-filter>