我正在尝试通过Globals API将Java应用程序连接到InterSystemsCaché数据库。
import com.intersys.globals.*;
public class Assignment {
public static void main(String[] args) {
final String user = "Andrew";
final String password = "Tobilko";
Connection connection = ConnectionContext.getConnection();
connection.connect("USER", user, password);
}
}
堆栈跟踪:
Exception in thread "main" java.lang.StackOverflowError
at com.intersys.globals.internal.GlobalsConnectionJNI.connectImpl(Native Method)
at com.intersys.globals.internal.GlobalsConnectionJNI.connect(GlobalsConnectionJNI.java:107)
at com.tobilko.a3.Assignment.main(Assignment.java:12)
凭据和名称空间正确。
Cache实例已通过指令正确初始化。
包括
GLOBALS_HOME
和DYLD_LIBRARY_PATH
在内的所有全局环境变量均已设置。以下库已被软链接:
ln -s $GLOBALS_HOME/bin/libisccache.dylib /usr/local/lib
ln -s $GLOBALS_HOME/bin/liblcbjni.dylib /usr/local/lib
ln -s $GLOBALS_HOME/bin/liblcbindnt.dylib /usr/local/lib
ln -s $GLOBALS_HOME/bin/liblcbclientnt.dylib /usr/local/lib
ln -s $GLOBALS_HOME/bin/libmdsjni.dylib /usr/local/lib
已指定
-Djava.library.path=/usr/local/lib
。罐子已包括在内。
这些步骤导致我出现
StackOverflowError
异常。我不知道我该在哪里犯错。
任何帮助,将不胜感激。
最佳答案
安德鲁,我对GlobalsAPI不太熟悉。但是,我进行了一些研究,发现此GlobalsAPI在Java CacheExtreme库cacheextreme.jar
的早期版本中的Cachélib
文件夹中。在您尝试使用的版本中,GlobalsAPI已经消失,只有“事件持久性”仍然存在。有了IRIS,这个旧图书馆将完全消失。在IRIS documentation中,仅与GlobalsAPI有关。我想如果您在Developer Community门户网站上询问GlobalsAPI的未来会更好。