我对ewallet.p12.lck文件和cwallet.sso.lck文件的意义感到困惑。我假设与其他锁文件一样,每当用户尝试使用wallet创建DB连接时,它都会创建一个lck文件,这样其他用户就不能再次使用相同的wallet文件。我的假设正确吗?如果是,是否在每次使用钱包创建新连接时重新创建lck文件?
我查阅了oracle wallet文档,他们解释了ewallet.p12和cwallet.sso文件的用法,但并没有给出创建.lck文件的意义。https://docs.oracle.com/en/database/oracle/oracle-database/12.2/dbimi/using-oracle-wallet-manager.html#GUID-D0AA8373-B0AC-4DD8-9FA9-403E345E5A71
Oracle DB版本12c
发布于 2019-10-19 03:20:23
查看此blog,在设置wallet文件时会创建*.lck文件。但是,这些不是在建立连接时创建的。此外,您只需要拥有要建立的连接的ewallet.p12和cwallet.sso。
发布于 2019-12-05 18:50:42
这是我使用Oracle wallet的经验。
锁文件:ewallet.p12.lck和cwallet.sso.lck是Oracle UCP driver在启动时访问wallet文件ewallet.p12和cwallet.sso后创建的,这两个文件必须位于-Doracle.net.wallet_location=<path>所指向的路径中。
它们似乎是用rw-------权限创建的,这表明它们不应该被其他用户使用,但我还没有测试这是否可能。
不是每次创建新连接时都会重新创建锁文件。它们仅在启动时创建,作为获取数据库连接字符串的一种方式。
在我的测试中,不同的进程可以读取相同的wallet文件并连接到DB,但如果它们同时启动,可能会得到一个Failed to lock - cwallet.sso.lck (Access is denied),我解决了在不同目录位置复制wallet文件的问题。
https://stackoverflow.com/questions/58054462
复制相似问题