Java 将iSeries JDBC连接到Microsoft Azure SQL Server

Java 将iSeries JDBC连接到Microsoft Azure SQL Server,java,sql,azure,jdbc,ibm-midrange,Java,Sql,Azure,Jdbc,Ibm Midrange,我使用Scott Klement的示例代码创建了一个从iSeries(V5R2M0级别)到Azure SQL Server的连接,该连接使用jtds-1.3.1.jar。Scott的示例RPG ILE程序MSSQLSTEST与连接值测试一样失败,因为它总是空的。Java软件已成功加载且未显示任何错误。有关守则如下: prop = JDBC_Properties(); JDBC_setProp(prop: 'userName' : 'dbadmin@mssqlserver'); JDBC

我使用Scott Klement的示例代码创建了一个从iSeries(V5R2M0级别)到Azure SQL Server的连接,该连接使用jtds-1.3.1.jar。Scott的示例RPG ILE程序MSSQLSTEST与连接值测试一样失败,因为它总是空的。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之间使用此功能?

我没有使用JTD,但根据我的经验,Microsoft建议我们使用SQL Server JDBC(sqljdbc.jar或sqljdbc4.jar)从Java连接到Azure SQL数据库。您可以参考以获取示例,您可能希望查看如何利用此驱动程序

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

在路由器上为端口1433添加了一个端口转发,该端口指向我们的iSeries IP地址???为什么?你的iSeries上没有,是吗?