在 WAS liberty 配置文件中创建 db2 数据源

Create db2 dataSource in WAS liberty profile

我正在为 Websphere 8.5(z/OS)开发,但我想在我的 Windows 机器上使用 Liberty 进行本地开发。我无法使数据源工作。

我在 Server.xml 中创建了以下条目来定义数据源。

<library id="DB2JCC2Lib">
    <fileset dir="C:\Program Files\IBM\SQLLIB\java"/><!--includes="db2jcc.jar db2jcc_license_cu.jar db2jcc_license_cisuz.jar"-->
</library>

<dataSource id="xxdb" jndiName="jdbc/xxxx" type="javax.sql.ConnectionPoolDataSource">
    <jdbcDriver libraryRef="DB2JCC2Lib" id="db2-driver" javax.sql.ConnectionPoolDataSource="com.ibm.db2.jcc.DB2ConnectionPoolDataSource"/>

    <properties.db2.jcc driverType="2" databaseName="xxxx" portNumber="50000" user="xxxx" password="{aes}xxxx"/>
</dataSource>

当我的应用程序初始化时,我收到以下错误消息:

[jcc][4038][12241][3.61.65] T2LUW exception: SQL30081N Kommunikationsfehler. Verwendetes Kommunikationsprotokoll: "TCP/IP". Verwendete Kommunikations-API: "SOCKETS". Position, an der der Fehler erkannt wurde: "127.0.0.1". Übertragungsfunktion, die den Fehler festgestellt hat: "connect". Protokollspezifische(r) Fehlercode(s): "10061", "", "". SQLSTATE=08001

我认为此消息来自 db2 驱动程序,不幸的是我还没有找到将其更改为英文的方法;但我认为对于说英语的人来说是可以理解的。

我有一个连接到 z/OS 的 DB2 v10 维护级别 015 的 ODBC 系统数据源。我的本地 DB2 Connect 安装是 v9.7.300.3885。

在我的常规 Websphere 中,我的工作数据源的驱动程序类型为 2,数据库名称设置为 odbc 名称和端口号 50000。服务器名称未设置(空)。类路径和实现 class 与我在 server.xml

中提供的相同

我已经尝试了我能找到的一切,有什么想法吗?

注意:我无法在 db2 服务器上进行更改,使用其他工具和常规 WebSphere 连接到数据库也没有问题。 此外,websphere 配置中的服务器名称为空,仅设置了数据库名称。当我尝试将 server.xml 中的服务器名设置为本地主机或 db2 服务器时,我得到了相同的结果。

感谢任何帮助!

编辑:更新了正确的版本信息

编辑 2:只要它能工作,我不在乎使用什么类型(2 或 4)的 jdbc 驱动程序。我只想再次指出 type 2 目前正在我的机器上运行。我尝试使用类型 4 并收到以下消息:

[jcc][t4][2043][11550][3.61.65] Exception java.net.ConnectException: Error opening socket to server xxx/xxx.30.3.34 on port 50,000 with message: Connection refused: connect. ERRORCODE=-4499, SQLSTATE=08001 DSRA0010E: SQL State = 08001, Error Code = -4,499

抱歉,之前的 post 吃了我的 xml。重试:

您需要类型 4 数据源才能连接到远程数据库服务器,即

<dataSource id="xxdb" jndiName="jdbc/xxxx" type="javax.sql.XADataSource">
<properties.db2.jcc driverType="4" serverName="the.db2.host.com" portNumber="50000" user="xxxx" password="xxxx" databaseName="LOC1" currentSQLID="SYSA"/>
<jdbcDriver libraryRef="DB2JCC2Lib">
</dataSource>

类型 2 仅适用于与数据库资源的本地 z/OS 连接。您的 Windows 远离 z/OS,需要您使用类型 4 连接。类型 4 需要指定 serverName 和 portNumber。这些不适用于类型 2 连接。