LotusScript+JDBC

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;



	}		   		

}

}