Hello, I have a weird problem, connecting to SQL server through JDBC.
For connection I use a regular LotusScript agent which uses Java library, with JDBC driver attached.
When I run agent in R8, everything is fine, connection property I get is True. Bun in Lotus 8.5 and Domino 8.5 a get a java error, at line “conn = DriverManager.getConnection:…”
Error is:
java.security.AccessController.checkPermission(AccessController.java:108)
java.lang.SecurityManager.checkPermission(SecurityManager.java:545)
COM.ibm.JEmpower.applet.AppletSecurity.superDotCheckPermission(AppletSecurity.java:1440)
COM.ibm.JEmpower.applet.AppletSecurity.checkPermission(AppletSecurity.java:1522)
COM.ibm.JEmpower.applet.AppletSecurity.checkPermission(AppletSecurity.java:1455)
java.util.logging.LogManager.checkAccess(Unknown Source)
java.util.logging.Handler.setLevel(Unknown Source)
java.util.logging.Logger.initHandler(Unknown Source)
java.util.logging.Logger.getHandlers(Unknown Source)
java.util.logging.Logger.log(Unknown Source)
java.util.logging.Logger.severe(Unknown Source)
com.microsoft.sqlserver.jdbc.SQLServerConnection.(SQLServerConnection.java:222)
com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:840)
java.sql.DriverManager.getConnection(Unknown Source)
java.sql.DriverManager.getConnection(Unknown Source)
MSJDBC.initialize(MSJDBC.java:32)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:59)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:39)
java.lang.reflect.Method.invoke(Method.java:612)
lotus.domino.JavaConnectInvoker.invoke(Unknown Source)
sun.reflect.GeneratedMethodAccessor6.invoke(Unknown Source)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:39)
java.lang.reflect.Method.invoke(Method.java:612)
lotus.domino.JavaConnectLoader.invoke(Unknown Source)
Please, help! Feedback Nr: WEBB7RZDXZ
'-------------------------------------------
Agent code:
Options>
Option Public
Option Declare
Use “Validation”
Uselsx “*javacon”
Use “MSJDBC”
Declarations>
Dim jsession As javasession
Dim jclass As JAVACLASS
Dim myMethod As JAVAMETHOD
Dim myObject As JavaObject
initialize
On Error Goto errDone
Set jsession = New JAVASESSION
Set jclass = jsession.GetClass("MSJDBC")
Set myObject = jclass.CreateObject()
Call myObject.initialize("some.address.to.server:1433", "DAccess", "user", "passwd")
myObject.initialize("jjurkivs.internal.corp/test","xslip", "xslip")
Dim a As Variant
a=myObject.connected
errDone:
Msgbox "Err: "+Error$+" ErrCode: "+Cstr(Err)+" \ Row: "+Cstr(Erl)
Exit Sub
End Sub
used JAVA Lib:
import lotus.domino.*;
import java.sql.*;
import java.util.Properties;
import java.lang.StackTraceElement;
import java.lang.Double;
import java.text.*;
import java.util.Locale;
public class MSJDBC {
public Connection conn;
public boolean connected;
public String errStr = "";
public String shrtString = "";
public boolean err;
public boolean endOfData = true;
public ResultSet myResult;
private String className = "class/library:MSJDBC ";
public void initialize(String server, String dbName, String userName, String password) {
connected = false;
try {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver").newInstance();
conn = DriverManager.getConnection("jdbc:sqlserver://"+server+";databaseName="+dbName+";user="+userName+";password="+password);
connected = true;
} catch (Exception e) {
connected = false;
errStr = retLongErrorMessage(e);
shrtString = className + "initialize(); " + e.toString()+"|jdbc:sqlserver://"+server+";databaseName="+dbName+";user="+userName+";password="+password;
}
}
…
}