Hi,
Let me update on the issue with the Debezium AS400/IBM i connector.
ENVIRONMENT
- Debezium Connector: io.debezium.connector.db2as400.As400RpcConnector
- Confluent Kafka Connect: 7.9.6 (self-managed, standalone mode)
- Java: OpenJDK 21 (Red Hat build 21.0.11+10-LTS)
- OS: Red Hat Linux
- Target: Confluent Cloud Kafka
- IBM i (AS400) Host: *.*.*.*, Port: 992 (SSL only, non-SSL ports blocked)
PROBLEM:
When I register the connector via the Kafka Connect REST API (POST /connectors), the request times out after ~90 seconds and returns:
HTTP 500 - Request timed out
Looking at the Connect worker logs, I can see the following error repeating multiple times before the final timeout:
java.util.concurrent.TimeoutException: Idle timeout expired: 30000/30000 ms
This fires 3 times and then Connect gives up with:
org.apache.kafka.connect.runtime.rest.errors.ConnectRestException: Request timed out
WHAT WE HAVE TRIED
1. Added --add-opens JVM flags for Java 21 module restrictions:
--add-opens java.base/java.util=ALL-UNNAMED
--add-opens java.base/java.lang=ALL-UNNAMED
--add-opens java.base/
java.io=ALL-UNNAMED
--add-opens java.base/sun.net.util=ALL-UNNAMED
--add-opens java.base/
java.net=ALL-UNNAMED
2. Extracted SSL certificate from PFX file provided by the AS400 team:
openssl pkcs12 -legacy -in as400.pfx -nokeys -out as400.crt -passin file:/tmp/pfxpass.txt
3. Imported certificate into JVM truststore:
keytool -importcert -file as400.crt -alias as400-ibmi \
-keystore /opt/confluent-7.9.6/etc/kafka/as400_truststore.jks \
-storepass changeit -noprompt
4. Confirmed network connectivity:
- telnet to 172.17.18.30 port 992 succeeds
- SSL handshake appears to succeed (no certificate error in logs)
CONNECTOR CONFIGURATION
{
"name": "ace-db2-ibmi-source",
"config": {
"name": "ace-db2-ibmi-source",
"connector.class": "io.debezium.connector.db2as400.As400RpcConnector",
"tasks.max": "1",
"topic.prefix": "db2_",
"database.hostname": "0.0.0.0",
"database.port": "992",
"database.user": "AFLITESTQL",
"database.password": "******",
"database.schema": "LD7DTA",
"secure": "true",
"ssl.truststore.location": "/opt/confluent-7.9.6/etc/kafka/as400_truststore.jks",
"ssl.truststore.password": "******
"ssl.truststore.type": "JKS",
"table.include.list": "LD7DTA.CHDRPF,LD7DTA.ACMVPF",
"snapshot.mode": "initial",
"signal.data.collection": "ASNCDC.DEBEZIUM_SIGNAL",
"producer.override.bootstrap.servers": "<confluent-cloud-bootstrap>:9092",
"producer.override.security.protocol": "SASL_SSL",
"producer.override.sasl.mechanism": "PLAIN",
"producer.override.sasl.jaas.config": "org.apache.kafka.common.security.plain.PlainLoginModule required username='<API_KEY>' password='<API_SECRET>';",
"key.converter": "org.apache.kafka.connect.json.JsonConverter",
"key.converter.schemas.enable": "true",
"value.converter": "org.apache.kafka.connect.json.JsonConverter",
"value.converter.schemas.enable": "true",
"topic.creation.enable": "true",
"topic.creation.default.replication.factor": "1",
"topic.creation.default.partitions": "3",
"errors.log.enable": "true",
"errors.log.include.messages": "true",
"errors.tolerance": "none"
}
}
OBSERVATIONS
1. Other Debezium connectors (PostgreSQL) are working fine on the same Kafka Connect worker — so the issue is specific to the AS400 connector.
2. The AS400 team has confirmed that non-SSL ports are blocked. Only port 992 (SSL) is accessible.
QUESTIONS
1. Is the "idle timeout expired: 30000ms" error typically an SSL certificate trust issue, or does it indicate the IBM i host servers are not running/responding?
2. Is there a specific way to configure the SSL truststore for the Debezium AS400 connector that is different from the standard JVM truststore approach?
3. Are there any known issues with the As400RpcConnector on Java 21 with SSL on port 992?
4. Is the "signal.data.collection" property mandatory for initial snapshot? Could it be causing the timeout if the signal table does not exist on the AS400?
5. Are there any additional connector properties specific to SSL configuration for this connector that we may be missing?
Any guidance or pointers from the community would be greatly appreciated.
Thanks & Regards
Charan Subramanya