MDSERR310029|The status of the specified batch is not valid (MDS 指定的 Batch状态非法)

关于标题:错误代码能说明是什么问题,但是后面的中文,因为没有在中文版的系统,暂时就这样翻译吧。

Recently i've been working on MDS part, i use SSIS to automate my MDS synchronization, one error occured, which is 'MDSERR310029|The status of the specified batch is not valid'.

最近正在尝试用微软的MDS来组织主数据,在SSIS自动化MDS同步的过程中,报了这样一个错误:'MDSERR310029|The status of the specified batch is not valid',大意就是batch的状态非法。

The reason i had this is because i have several container run with same batch tag together, but once there is a running batch with the same name, you can't schedule another one.

出错的原因是因为多个容器采用了同样的batch标签,这样就导致容器不能同时运行,因为一个batch在同一时间点只有个状态,只有等运行结束标记为其他状态才能再排下一个。

Two solutions are possible to solve this issue:

两种可能的解决方案如下:

  • One is run your container one by one, collateral is not allowed一种是顺序执行容器
  • Another one is have different batch tag, but that makes you have to define too much variables or change too many tasks. 而另一种就是标记不同的标签,但是,这样会导致很多的标签变量,需要在两者间平衡最合适的方案

Before we run the new package, we have to detect which batch stops you.

那如果已经有batch在run,我们先找到是哪个,查看下是否是因为确实是batch状态还在运行而导致的问题。

select * from mdm.tblStgBatch where Status_ID=3

and here you can update status of those batches

以下代码可以更新那些停留在运行状态下的batch

Update mdm.tblStgBatch set Status_ID=7 where Status_ID=3

after everything is done, your new package can run successfully.

接下来就可以执行你的包了。

 

posted @ 2017-12-21 10:47  Elfa_Digger  阅读(472)  评论(0编辑  收藏  举报