将iSeries JDBC连接到Microsoft Azure SQL Server

3

我使用了Scott Klement的示例代码,使用jtds-1.3.1.jar从我们的iSeries(版本V5R2M0)连接到我们的Azure SQL Server。 Scott的示例RPG ILE程序MSSQLTEST成功加载Java软件并没有显示任何错误,但是在连接值测试时失败,因为它始终为空值。以下是相关的代码:

prop = JDBC_Properties();

JDBC_setProp(prop: 'userName'     : 'dbadmin@mssqlserver');
JDBC_setProp(prop: 'password'     : 'password');
JDBC_setProp(prop: 'databaseName' : 'SQLDatabase');
JDBC_setProp(prop: 'encrypt'      : 'true');
JDBC_setProp(prop: 'hostNameInCertificate' : '*.database.windows.net');
JDBC_setProp(prop: 'loginTimeout' : '30');

conn = JDBC_ConnProp('net.sourceforge.jtds.jdbc.Driver'
:'jdbc:jtds:sqlserver://mssqlserver.database.windows.net:1433'
: prop );

JDBC_freeProp(prop);

if (conn = *NULL);
return;
endif;

连接参数由Microsoft提供,如下所示:
jdbc:sqlserver://mssqlserver.database.windows.net:1433;database=Database;user=dbadmin@mssqlserver;password={your_password_here};encrypt=true;hostNameInCertificate=*.database.windows.net;loginTimeout=30;

我已经尝试了以下方法来使连接工作:
在我们的路由器上添加了一个端口转发,将端口1433指向我们的iSeries IP地址
将我们的外部IP地址添加到我们的Azure SQL Server防火墙中
通过在PC上创建一个ODBC连接到我们的Azure SQL Server来测试连接参数,这个方法是有效的
有人能让iSeries和Azure SQL Server之间的连接正常工作吗?

我们在路由器上添加了一个端口转发,将端口1433指向我们的iSeries IP地址。为什么?你的iSeries上没有这个吗? - user2338816
2个回答

0

0

我注意到在Azure门户提供的连接字符串中,用户关键字是user而不是userName。一旦我使用JDBC_setprop设置了user的值,它就对我起作用了。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接