基于JDBC Oracle钱包的连接:内存中的Wallet文件夹

问题描述 投票:5回答:2

我想使用存储在内存中的钱包而不是将钱包存储在磁盘上来连接到Oracle数据库。

我曾尝试使用Apache Common VFS读取/写入内存中的文件。钱包被写入内存(以确保我什至将ramera文件夹从ram写入了磁盘)。

properties.put("oracle.net.tns_admin", "ram://my_wallet");
properties.put("oracle.net.wallet_location",
          String.format("(SOURCE=(METHOD=file)(METHOD_DATA=(DIRECTORY=%s)))", "ram://my_wallet"));

[当我尝试使用这些属性进行连接时,出现错误:

java.sql.SQLRecoverableException: IO Error: could not resolve the connect identifier DB_1222

PS:如果将钱包放在磁盘上,我的代码可以正常工作。

oracle jdbc ram apache-commons-vfs oracle-wallet
2个回答
0
投票

不幸的是,Oracle JDBC当前不支持从内存中获取钱包。


0
投票

一种解决方法可能是利用操作系统对内存中文件系统的支持,因此对于JDBC来说,它看起来像是普通文件,但操作系统实际上是将其存储在内存中。在类似Unix的系统上,tmpfs就是这样的文件系统:https://en.m.wikipedia.org/wiki/Tmpfs

© www.soinside.com 2019 - 2024. All rights reserved.