bash 如何修复 Endeca 中的“无法获得锁定”错误?

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/4614257/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-09-17 23:12:20  来源:igfitidea点击:

How to fix "Failed to obtain lock" error in Endeca?

bashendeca

提问by ajreal

Endeca does not seems to be popular here, anyway

Endeca 好像在这里不流行,反正

The problem:

问题:

Accidentally kill a running base line update process, and the lock is left-over somewhere.

不小心杀死了一个正在运行的基线更新进程,锁就留在了某处。

I wish to find out where the left-over lock is, and to manually remove that.

我想找出剩余的锁在哪里,并手动删除它。

Not so useful message returned by the base line update script:

基线更新脚本返回的不太有用的消息:

INFO: Checking definition from AppConfig.xml against existing EAC provisioning.
INFO: Definition has not changed.
INFO: Starting baseline update script.
WARNING: Failed to obtain lock.

...ended

Alternatively, anyone can provide some links on endeca documentation (without login credential) will be helpful too.

或者,任何人都可以提供有关 endeca 文档的一些链接(无需登录凭据)也会有所帮助。

回答by ajreal

RTFM

实时调频

If the running Deployment Template script breaks halfway through its execution due to an unhandled exception, or is manually interrupted by a user pressing Ctrl-C while it is running, the lock remains set within the EAC.

如果正在运行的部署模板脚本由于未处理的异常而在其执行中途中断,或者在运行时被用户按 Ctrl-C 手动中断,则锁定将保持在 EAC 内设置。

On Windows: .\runcommand.bat LockManager releaseLock update_lock

在 Windows 上: .\runcommand.bat LockManager releaseLock update_lock

On UNIX: ./runcommand.sh LockManager releaseLock update_lock

在 UNIX 上: ./runcommand.sh LockManager releaseLock update_lock

Both the above will work if the default lock name is unchanged (update_lock)

如果默认锁名称不变(update_lock),以上两种方法都可以使用

回答by Brian Wells

Assuming you're using their deployment template, I keep a .bat file in the "control" dir as it comes in handy sometimes.

假设您正在使用他们的部署模板,我会在“控制”目录中保留一个 .bat 文件,因为它有时会派上用场。

e.g. on a windows machine create a .bat file w/ this as its contents:

例如,在 Windows 机器上创建一个 .bat 文件,以此作为其内容:

rem runcommand.bat/sh LockManager releaseLock update_lock

call %~dp0..\config\script\set_environment.bat
call %~dp0runcommand.bat LockManager releaseLock update_lock

As far as their documentation goes... you have to register on their support site. I haven't seen it elsewhere.

就他们的文档而言……您必须在他们的支持网站上注册。我在别处没见过。

回答by Jon Schneider

For an ATG (or "Oracle Web Commerce") application integrated with Endeca, this situation can happen when a running baseline index operation is canceled via the Cancel button in the GUI for the ProductCatalogSimpleIndexingAdmin component in Dyn Admin. Subsequent baseline updates will fail until manual action is taken on the Endeca side to release the lock.

对于与 Endeca 集成的 ATG(或“Oracle Web Commerce”)应用程序,当通过 Dyn Admin 中 ProductCatalogSimpleIndexingAdmin 组件的 GUI 中的取消按钮取消正在运行的基线索引操作时,可能会发生这种情况。后续基线更新将失败,直到在 Endeca 端采取手动操作来释放锁定。

(I have seen this with ATG 10.1.2 integrated with Endeca 3.1.1.)

(我已经在与 Endeca 3.1.1 集成的 ATG 10.1.2 中看到了这一点。)

Per a conversation I had with Oracle Support, this is considered a bug -- "BUG 17298595 - Cancelling the baseline from SimpleIndexingAdmin does not release update lock" -- and an ATG hotfix is available.

根据我与 Oracle Support 的一次对话,这被认为是一个错误——“BUG 17298595 - 从 SimpleIndexingAdmin 取消基线不会释放更新锁”——并且有一个 ATG 修补程序可用。

回答by KrishPrabakar

Run release_update_locks.sh(or .batin case of windows) script from the controlfolder of the app.

从应用程序的文件夹运行release_update_locks.sh(或.bat在 Windows 的情况下)脚本control