I have the following code to connect to a Virtuoso 7 Server through Node and JDBC (via jdbc package on npm):
const checkDatabaseConnection = function(callback)
{
const JDBC = require('jdbc');
const jinst = require('jdbc/lib/jinst');
if (!jinst.isJvmCreated()) {
jinst.addOption("-Xrs");
jinst.setupClasspath([
Pathfinder.absPathInApp("conf/virtuoso-jdbc/virtjdbc4.jar")
]);
}
const config = {
// Required
url : "jdbc:virtuoso://192.168.56.249:1111",
drivername: 'virtuoso.jdbc4.Driver',
minpoolsize: 1,
maxpoolsize: 100,
maxidle : 5000,
username : "dba",
password : "dba",
properties: {}
};
const jdbcdb = new JDBC(config);
jdbcdb.initialize(function(err) {
if (err) {
console.log(err);
}
});
};
It immediately returns:
{ Error: Error running static method
virtuoso.jdbc4.VirtuosoException: Virtuoso Communications Link Failure (timeout) : Connection to the server lost
at virtuoso.jdbc4.VirtuosoFuture.nextResult(VirtuosoFuture.java:63)
at virtuoso.jdbc4.VirtuosoConnection.connect(VirtuosoConnection.java:328)
at virtuoso.jdbc4.VirtuosoConnection.connect(VirtuosoConnection.java:224)
at virtuoso.jdbc4.VirtuosoConnection.<init>(VirtuosoConnection.java:169)
at virtuoso.jdbc4.Driver.connect(Driver.java:58)
at java.sql.DriverManager.getConnection(DriverManager.java:664)
at java.sql.DriverManager.getConnection(DriverManager.java:208)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
cause: nodeJava_virtuoso_jdbc4_VirtuosoException {} }
Running Virtuoso JDBC driver 4.2, Virtuoso 7.
I did telnet to the server on the same IP and port, and the server is listening. What could be the problem?