Troubleshooting
Problem
This document describes how to test DDM/DRDA connectivity (TCP/IP) between two IBM i systems
Diagnosing The Problem
TCP/IP connectivity testing should start with PING, however, PING only tests the ability of the network to pass ICMP traffic. It does not test TCP/IP sockets traffic.
To test TCP/IP socket connectivity to the IBM i DDM/DRDA server, execute (on IBM i command line):
JAVA CLASS('com.ibm.as400.util.JPing') PARM('<RemoteIBMiName>' '-s' 'as-ddm') CLASSPATH('/QIBM/ProdData/HTTP/Public/jt400/lib/jt400.jar')
Replacing <RemoteIBMiName> with the correct name or IP address of the remote system).
You see messages similar to the following if the test is successful:
Verifying connections to system <RemoteIBMiName>...
Successfully connected to server application: as-ddm
Connection verified
Java program completed
Press <enter> to exit java.
Verifying connections to system <RemoteIBMiName>...
Successfully connected to server application: as-ddm
Connection verified
Java program completed
Press <enter> to exit java.
If the test is unsuccessful, run it again using the verbose option to get more details:
JAVA CLASS('com.ibm.as400.util.JPing') PARM('<RemoteIBMiName>' '-s' 'as-ddm' '-v') CLASSPATH('/QIBM/ProdData/HTTP/Public/jt400/lib/jt400.jar')
The output for a successful connection looks like the following.
Toolbox for Java - JDBC 4.2 Open Source Software, JTOpen 21.0.1 codebase 5770-SS1 V7R5M0.00 built=2025-02-25 15:58:10 (GMT)
java.home=/QOpenSys/QIBM/ProdData/JavaVM/jdk80/64bit/jre java.vm.vendor=IBM Corporation java.vm.info=JRE 1.8.0 OS/400 ppc64-64-Bi
t Compressed References 20241212_83587 (JIT enabled, AOT enabled)
OpenJ9 - 32d7c6c9a17
OMR - ab5c961de
IBM - dd9cff8 java.runtime.version=8.0.8.40 - pap6480sr8fp40-20250123_01(SR8 FP40) java.fullversion=8.0.8.40 - pap6480sr8fp4
0-20250123_01(SR8 FP40)
JRE 1.8.0 OS/400 ppc64-64-Bit Compressed References 20241212_83587 (JIT enabled, AOT enabled)
OpenJ9 - 32d7c6c9a17
OMR - ab5c961de
IBM - dd9cff8 java.vm.version=2.9 java.version=1.8.0_441 os.name=OS/400 os.version=V7R5M0Verifying connections to system RCH760A...Wed Jun 4 10:39:58:863 CDT 2025 Setting so timeout: 20000
Wed Jun 4 10:39:58:889 CDT 2025 Class com.ibm.as400.access.AS400 was loaded from file:/QIBM/UserData/Java400/ext/jt400.jar!/com/
ibm/as400/access/AS400.class
Wed Jun 4 10:39:58:890 CDT 2025 Detected os.name: OS/400
Wed Jun 4 10:39:58:891 CDT 2025 Detected os.version: V7R5M0
Wed Jun 4 10:39:58:891 CDT 2025 Getting system property: 'com.ibm.as400.access.AS400.signonHandler'
Wed Jun 4 10:39:58:891 CDT 2025 Value found in system properties: 'null'
Wed Jun 4 10:39:58:892 CDT 2025 Value found in jt400.properties file: 'null'
Wed Jun 4 10:39:58:892 CDT 2025 Value not found.
Wed Jun 4 10:39:58:892 CDT 2025 Getting system property: 'com.ibm.as400.access.AS400.guiAvailable'
Wed Jun 4 10:39:58:892 CDT 2025 Value found in system properties: 'null'
Wed Jun 4 10:39:58:892 CDT 2025 Value found in jt400.properties file: 'null'
Wed Jun 4 10:39:58:892 CDT 2025 Value not found.
Wed Jun 4 10:39:58:892 CDT 2025 Getting system property: 'com.ibm.as400.access.AS400.mustAddLanguageLibrary'
Wed Jun 4 10:39:58:893 CDT 2025 Value found in system properties: 'null'
Wed Jun 4 10:39:58:893 CDT 2025 Value found in jt400.properties file: 'null'
Wed Jun 4 10:39:58:893 CDT 2025 Value not found.
Wed Jun 4 10:39:58:893 CDT 2025 Getting system property: 'com.ibm.as400.access.AS400.mustUseSockets'
Wed Jun 4 10:39:58:893 CDT 2025 Value found in system properties: 'null'
Wed Jun 4 10:39:58:893 CDT 2025 Value found in jt400.properties file: 'null'
Wed Jun 4 10:39:58:893 CDT 2025 Value not found.
Wed Jun 4 10:39:58:893 CDT 2025 Getting system property: 'com.ibm.as400.access.AS400.mustUseNetSockets'
Wed Jun 4 10:39:58:894 CDT 2025 Value found in system properties: 'null'
Wed Jun 4 10:39:58:894 CDT 2025 Value found in jt400.properties file: 'null'
Wed Jun 4 10:39:58:894 CDT 2025 Value not found.
Wed Jun 4 10:39:58:894 CDT 2025 Getting system property: 'com.ibm.as400.access.AS400.mustUseSuppliedProfile'
Wed Jun 4 10:39:58:894 CDT 2025 Value found in system properties: 'null'
Wed Jun 4 10:39:58:894 CDT 2025 Value found in jt400.properties file: 'null'
Wed Jun 4 10:39:58:894 CDT 2025 Value not found.
Wed Jun 4 10:39:58:894 CDT 2025 Getting system property: 'com.ibm.as400.access.AS400.threadUsed'
Wed Jun 4 10:39:58:895 CDT 2025 Value found in system properties: 'null'
Wed Jun 4 10:39:58:895 CDT 2025 Value found in jt400.properties file: 'null'
Wed Jun 4 10:39:58:895 CDT 2025 Value not found.
Wed Jun 4 10:39:58:898 CDT 2025 Opening socket for service 5 to system...<RemoteIBMiName> port:446
Wed Jun 4 10:39:58:914 CDT 2025 Getting socket login timeout is set: false
Wed Jun 4 10:39:58:914 CDT 2025 Connect to socket: system '<RemoteIBMiName>', port 446, login timeout 0 ms.
Wed Jun 4 10:39:58:956 CDT 2025 Setting socket options...
Wed Jun 4 10:39:58:956 CDT 2025 Setting so timeout: 20000
Wed Jun 4 10:39:58:957 CDT 2025 Socket properties:
Wed Jun 4 10:39:58:957 CDT 2025 Remote address: <RemoteIBMiName>/172.16.2.191
Wed Jun 4 10:39:58:957 CDT 2025 Remote port: 446
Wed Jun 4 10:39:58:957 CDT 2025 Local address: /172.16.2.130
Wed Jun 4 10:39:58:958 CDT 2025 Local port: 55380
Wed Jun 4 10:39:58:958 CDT 2025 Keep alive: false
Wed Jun 4 10:39:58:974 CDT 2025 Receive buffer size: 65535
Wed Jun 4 10:39:58:974 CDT 2025 Send buffer size: 65535
Wed Jun 4 10:39:58:974 CDT 2025 So linger: -1
Wed Jun 4 10:39:58:974 CDT 2025 So timeout: 20000
Wed Jun 4 10:39:58:974 CDT 2025 TCP no delay: false
Wed Jun 4 10:39:58:974 CDT 2025 Starting an inet socket to as-ddm
Wed Jun 4 10:39:58:975 CDT 2025 Checking for multiple Toolbox versions.
Wed Jun 4 10:39:58:977 CDT 2025 Path of AS400 class: file:/QIBM/UserData/Java400/ext/jt400.jar!/com/ibm/as400/access/AS400.clas
s
Wed Jun 4 10:39:58:977 CDT 2025 Path of loaded impl class: file:/QIBM/UserData/Java400/ext/jt400.jar!/com/ibm/as400/access/Sock
etContainerInet.class
Wed Jun 4 10:39:58:978 CDT 2025 Ping DDM: Writing data
Wed Jun 4 10:39:58:978 CDT 2025 Ping DDM: flushing write
Wed Jun 4 10:39:58:978 CDT 2025 Ping DDM: Reading data
Wed Jun 4 10:39:58:979 CDT 2025 Ping DDM: 113 bytes read
Successfully connected to server application: as-ddm
Connection verified
Java program completed
The section in bold might provide some clues if the issue is in address resolution for a host name.
See details here: Using the JPing Utility
Note that, on the remote system, the idle timer on listening port 446 will be reset when any connection attempt hits the DDM/DRDA server.
To check the idle timer on the remote system, execute :
Note that, on the remote system, the idle timer on listening port 446 will be reset when any connection attempt hits the DDM/DRDA server.
To check the idle timer on the remote system, execute :
NETSTAT *CNN
Next, <F15> and set:
Local port range: Lower value . . . . . . . . 446...and press <enter> <enter>
If the DDM/DRDA server was recently contacted, the idle time will be low (since last connect). If it is high, then no connection attempts have reached that service.
An additional test is to simply create a DDM file. For example:
===> CRTDDMF FILE(TESTDDM) RMTFILE(QIWS/QCUSTCDT) RMTLOCNAME('1.1.1.1' *IP) (replacing 1.1.1.1 with correct remote system IP address) and then:
===> DSPPFM TESTDDM
An authorization failure (and the idle timer being reset on listening port 446 on remote system) indicates that the connection (but not the authorization) was successful.
Information regarding fixing DDM/DRDA authorization failures can be found here:
Related Information
[{"Business Unit":{"code":"BU070","label":"IBM Infrastructure"},"Product":{"code":"SWG60","label":"IBM i"},"Component":"","Platform":[{"code":"PF012","label":"IBM i"}],"Version":"All Versions","Edition":"","Line of Business":{"code":"LOB68","label":"Power HW"}}]
Was this topic helpful?
Document Information
Modified date:
17 June 2025
UID
ibm10720343