将iSeries JDBC连接到Microsoft Azure SQL Server

时间:2015-05-29 14:07:09

标签: java sql azure jdbc ibm-midrange

我使用了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上创建与Azure SQL Server的ODBC连接来测试连接参数

有没有人在iSeries和Azure SQL Server之间工作?

2 个答案:

答案 0 :(得分:0)

我没有使用过jTDS,但根据我的经验,Microsoft建议我们使用SQL Server JDBC(sqljdbc.jar或sqljdbc4.jar)从Java连接到Azure SQL数据库。您可以参考https://msdn.microsoft.com/library/gg715284.aspx获取示例,您可能需要查看http://as400blog.blogspot.mx/2009/09/need-to-access-ms-sql-databases-from.html以了解如何利用此驱动程序。

答案 1 :(得分:0)

我注意到在Azure门户提供的连接字符串中,用户的关键字是user,而不是userName。在使用user设置JDBC_setprop的值后,它对我有效。