ibm-messaging / mq-jms-spring

Components to assist MQ JMS integration with Spring frameworks
Apache License 2.0
186 stars 102 forks source link

Not able to connect to IBm MQ using Springboot with SSl #105

Open rmohan17 opened 6 months ago

rmohan17 commented 6 months ago

Please include the following information in your ticket.

here is the code

Maven FIle:

<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">

4.0.0
<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>3.2.1</version>
    <relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.optum.eems</groupId>
<artifactId>eems-ibm-mq-app</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>eems-ibm-mq-app</name>
<description>eems-ibm-mq-app</description>
<properties>
    <java.version>17</java.version>
</properties>
<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>

    <dependency>
        <groupId>com.ibm.mq</groupId>
        <artifactId>mq-jms-spring-boot-starter</artifactId>
        <version>3.0.3</version>
    </dependency>

</dependencies>

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>

  1. Application Code. package com.optum.eems.eemsibmmqapp;

import com.ibm.mq.jakarta.jms.MQConnectionFactory; import com.ibm.mq.spring.boot.MQConnectionFactoryCustomizer; import jakarta.jms.Message; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.context.ConfigurableApplicationContext; import org.springframework.context.annotation.Bean; import org.springframework.jms.annotation.EnableJms; import org.springframework.jms.connection.JmsTransactionManager; import org.springframework.jms.core.JmsTemplate; import org.springframework.transaction.TransactionStatus; import org.springframework.transaction.annotation.EnableTransactionManagement;

import java.util.Date;

@SpringBootApplication @EnableJms @EnableTransactionManagement public class EemsIbmMqAppApplication {

static final String qName1 = "EBILL.POST_PROCESS_NRT_REQ"; // A queue from the default MQ Developer container config
static final String qName2 = "EBILL.POST_PROCESS_NRT_REQ"; // Another queue from the default MQ Developer container config

@Bean
public MQConnectionFactoryCustomizer myCustomizer() {
    MQConnectionFactoryCustomizer c = new MQConnectionFactoryCustomizer() {
        @Override
        public void customize(MQConnectionFactory factory) {
            System.out.println(">> In a customizer method that can modify class " + factory.getClass().getName());
        }
    };
    return c;

}

public static void main(String[] args) {

    // Launch the application
    ConfigurableApplicationContext context = SpringApplication.run(EemsIbmMqAppApplication.class, args);

    // Create a transaction manager object that will be used to control commit/rollback of operations.
    JmsTransactionManager tm = new JmsTransactionManager();

    printStarted();

    // Create the JMS Template object to control connections and sessions.
    JmsTemplate jmsTemplate = context.getBean(JmsTemplate.class);

    // Associate the connection factory with the transaction manager
    tm.setConnectionFactory(jmsTemplate.getConnectionFactory());

    // This starts a new transaction scope. "null" can be used to get a default transaction model
    TransactionStatus status = tm.getTransaction(null);

    // Create a single message with a timestamp
    String outMsg = "Hello from IBM MQ at " + new Date();

    // The default SimpleMessageConverter class will be called and turn a String
    // into a JMS TextMessage which we send to qName1. This operation will be made
    // part of the transaction that we initiated.
    jmsTemplate.convertAndSend(qName1, outMsg);

    // Commit the transaction so the message is now visible
    tm.commit(status);

    // But now we're going to start a new transaction to hold multiple operations.
    status = tm.getTransaction(null);
    // Read it from the queue where we just put it, and then send it straight on to
    // a different queue
    Message inMsg = jmsTemplate.receive(qName1);
    jmsTemplate.convertAndSend(qName2, inMsg);
    // This time we decide to rollback the transaction so the receive() and send() are
    // reverted. We end up with the message still on qName1.
    tm.rollback(status);

    System.out.println("Done.");
}

static void printStarted() {
    System.out.println();
    System.out.println("====================================================");
    System.out.println("MQ JMS Transaction Sample with JMS3 and TLS started.");
    System.out.println("====================================================");
}

}

  1. Props:
  2. ibm.mq.queueManager=WMQS102 ibm.mq.channel=GW_SECCLNT ibm.mq.connName=wmqrt0013.uhc.com(50001) ibm.mq.user=eeemqtst ibm.mq.password=afsafs ibm.mq.sslCipherSpec=ANY_TLS12_OR_HIGHER ibm.mq.sslBundle=ibmmq spring.jms.cache.enabled=true spring.ssl.bundle.jks.ibmmq.truststore.location=./certs/standard_trusts.jks spring.ssl.bundle.jks.ibmmq.truststore.password=asffs spring.ssl.bundle.jks.ibmmq.truststore.type=JKS spring.ssl.bundle.jks.ibmmq.keystore.location=./certs/eee_key.jks spring.ssl.bundle.jks.ibmmq.keystore.password=dhjasdh spring.ssl.bundle.jks.ibmmq.keystore.type=JKS

    Error i am getting. 2024-01-03T16:50:28.768-05:00 INFO 8024 --- [ main] c.o.e.e.EemsIbmMqAppApplication : Starting EemsIbmMqAppApplication using Java 21.0.1 with PID 8024 (/Users/rmohan30/Desktop/github/cp/mq/eems-ibm-mq-app/target/classes started by rmohan30 in /Users/rmohan30/Desktop/github/cp/mq/eems-ibm-mq-app) 2024-01-03T16:50:28.769-05:00 INFO 8024 --- [ main] c.o.e.e.EemsIbmMqAppApplication : No active profile set, falling back to 1 default profile: "default" 2024-01-03T16:50:29.185-05:00 INFO 8024 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port 8080 (http) 2024-01-03T16:50:29.189-05:00 INFO 8024 --- [ main] o.apache.catalina.core.StandardService : Starting service [Tomcat] 2024-01-03T16:50:29.189-05:00 INFO 8024 --- [ main] o.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/10.1.17] 2024-01-03T16:50:29.211-05:00 INFO 8024 --- [ main] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext 2024-01-03T16:50:29.211-05:00 INFO 8024 --- [ main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 422 ms

    In a customizer method that can modify class com.ibm.mq.jakarta.jms.MQConnectionFactory 2024-01-03T16:50:29.455-05:00 INFO 8024 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port 8080 (http) with context path '' 2024-01-03T16:50:29.460-05:00 INFO 8024 --- [ main] c.o.e.e.EemsIbmMqAppApplication : Started EemsIbmMqAppApplication in 0.853 seconds (process running for 1.114)

==================================================== MQ JMS Transaction Sample with JMS3 and TLS started.

Exception in thread "main" org.springframework.transaction.CannotCreateTransactionException: Could not create JMS transaction at org.springframework.jms.connection.JmsTransactionManager.doBegin(JmsTransactionManager.java:255) at org.springframework.transaction.support.AbstractPlatformTransactionManager.startTransaction(AbstractPlatformTransactionManager.java:531) at org.springframework.transaction.support.AbstractPlatformTransactionManager.getTransaction(AbstractPlatformTransactionManager.java:405) at com.optum.eems.eemsibmmqapp.EemsIbmMqAppApplication.main(EemsIbmMqAppApplication.java:56) Caused by: com.ibm.msg.client.jakarta.jms.DetailedJMSException: JMSWMQ0018: Failed to connect to queue manager 'WMQS102' with connection mode 'Client' and host name 'Client'. Check the queue manager is started and if running in client mode, check there is a listener running. Please see the linked exception for more information. at com.ibm.msg.client.jakarta.wmq.common.internal.Reason.reasonToException(Reason.java:595) at com.ibm.msg.client.jakarta.wmq.common.internal.Reason.createException(Reason.java:215) at com.ibm.msg.client.jakarta.wmq.internal.WMQConnection.(WMQConnection.java:458) at com.ibm.msg.client.jakarta.wmq.factories.WMQConnectionFactory.createV7ProviderConnection(WMQConnectionFactory.java:8683) at com.ibm.msg.client.jakarta.wmq.factories.WMQConnectionFactory.createProviderConnection(WMQConnectionFactory.java:8023) at com.ibm.msg.client.jakarta.jms.admin.JmsConnectionFactoryImpl._createConnection(JmsConnectionFactoryImpl.java:322) at com.ibm.msg.client.jakarta.jms.admin.JmsConnectionFactoryImpl.createConnection(JmsConnectionFactoryImpl.java:242) at com.ibm.mq.jakarta.jms.MQConnectionFactory.createCommonConnection(MQConnectionFactory.java:6026) at com.ibm.mq.jakarta.jms.MQConnectionFactory.createConnection(MQConnectionFactory.java:6055) at org.springframework.jms.connection.SingleConnectionFactory.doCreateConnection(SingleConnectionFactory.java:452) at org.springframework.jms.connection.SingleConnectionFactory.initConnection(SingleConnectionFactory.java:414) at org.springframework.jms.connection.SingleConnectionFactory.getConnection(SingleConnectionFactory.java:328) at org.springframework.jms.connection.SingleConnectionFactory.createConnection(SingleConnectionFactory.java:243) at org.springframework.jms.connection.JmsTransactionManager.createConnection(JmsTransactionManager.java:330) at org.springframework.jms.connection.JmsTransactionManager.doBegin(JmsTransactionManager.java:223) ... 3 more Caused by: com.ibm.mq.MQException: JMSCMQ0001: IBM MQ call failed with compcode '2' ('MQCC_FAILED') reason '2397' ('MQRC_JSSE_ERROR'). at com.ibm.msg.client.jakarta.wmq.common.internal.Reason.createException(Reason.java:203) ... 16 more Caused by: com.ibm.mq.jmqi.JmqiException: CC=2;RC=2397;AMQ9204: Connection to host 'wmqrt0013.uhc.com(50001)' rejected. [1=com.ibm.mq.jmqi.JmqiException[CC=2;RC=2397;AMQ9771: SSL handshake failed. [1=javax.net.ssl.SSLHandshakeException[PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target],3=wmqrt0013.uhc.com/10.86.36.32:50001 (wmqrt0013.uhc.com),4=SSLSocket.startHandshake,5=default]],3=wmqrt0013.uhc.com(50001),4=,5=RemoteTCPConnection.protocolConnect] at com.ibm.mq.jmqi.remote.api.RemoteFAP$Connector.jmqiConnect(RemoteFAP.java:13670) at com.ibm.mq.jmqi.remote.api.RemoteFAP$Connector.access$100(RemoteFAP.java:13202) at com.ibm.mq.jmqi.remote.api.RemoteFAP.jmqiConnect(RemoteFAP.java:1451) at com.ibm.mq.jmqi.remote.api.RemoteFAP.jmqiConnect(RemoteFAP.java:1392) at com.ibm.mq.ese.jmqi.InterceptedJmqiImpl.jmqiConnect(InterceptedJmqiImpl.java:377) at com.ibm.mq.ese.jmqi.ESEJMQI.jmqiConnect(ESEJMQI.java:562) at com.ibm.msg.client.jakarta.wmq.internal.WMQConnection.(WMQConnection.java:391) ... 15 more Caused by: com.ibm.mq.jmqi.JmqiException: CC=2;RC=2397;AMQ9771: SSL handshake failed. [1=javax.net.ssl.SSLHandshakeException[PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target],3=wmqrt0013.uhc.com/10.86.36.32:50001 (wmqrt0013.uhc.com),4=SSLSocket.startHandshake,5=default] at com.ibm.mq.jmqi.remote.impl.RemoteTCPConnection.protocolConnect(RemoteTCPConnection.java:1585) at com.ibm.mq.jmqi.remote.impl.RemoteConnection.connect(RemoteConnection.java:1013) at com.ibm.mq.jmqi.remote.impl.RemoteConnectionSpecification.getNewConnection(RemoteConnectionSpecification.java:691) at com.ibm.mq.jmqi.remote.impl.RemoteConnectionSpecification.getSessionFromNewConnection(RemoteConnectionSpecification.java:283) at com.ibm.mq.jmqi.remote.impl.RemoteConnectionSpecification.getSession(RemoteConnectionSpecification.java:170) at com.ibm.mq.jmqi.remote.impl.RemoteConnectionPool.getSession(RemoteConnectionPool.java:128) at com.ibm.mq.jmqi.remote.api.RemoteFAP$Connector.jmqiConnect(RemoteFAP.java:13402) ... 21 more Caused by: javax.net.ssl.SSLHandshakeException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target at java.base/sun.security.ssl.Alert.createSSLException(Alert.java:130) at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:378) at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:321) at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:316) at java.base/sun.security.ssl.CertificateMessage$T13CertificateConsumer.checkServerCerts(CertificateMessage.java:1318) at java.base/sun.security.ssl.CertificateMessage$T13CertificateConsumer.onConsumeCertificate(CertificateMessage.java:1195) at java.base/sun.security.ssl.CertificateMessage$T13CertificateConsumer.consume(CertificateMessage.java:1138) at java.base/sun.security.ssl.SSLHandshake.consume(SSLHandshake.java:393) at java.base/sun.security.ssl.HandshakeContext.dispatch(HandshakeContext.java:476) at java.base/sun.security.ssl.HandshakeContext.dispatch(HandshakeContext.java:447) at java.base/sun.security.ssl.TransportContext.dispatch(TransportContext.java:201) at java.base/sun.security.ssl.SSLTransport.decode(SSLTransport.java:172) at java.base/sun.security.ssl.SSLSocketImpl.decode(SSLSocketImpl.java:1506) at java.base/sun.security.ssl.SSLSocketImpl.readHandshakeRecord(SSLSocketImpl.java:1421) at java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:455) at java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:426) at com.ibm.mq.jmqi.remote.impl.RemoteTCPConnection$6.run(RemoteTCPConnection.java:1552) at com.ibm.mq.jmqi.remote.impl.RemoteTCPConnection$6.run(RemoteTCPConnection.java:1544) at java.base/java.security.AccessController.doPrivileged(AccessController.java:319) at com.ibm.mq.jmqi.remote.impl.RemoteTCPConnection.protocolConnect(RemoteTCPConnection.java:1544) ... 27 more Caused by: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target at java.base/sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:388) at java.base/sun.security.validator.PKIXValidator.engineValidate(PKIXValidator.java:271) at java.base/sun.security.validator.Validator.validate(Validator.java:256) at java.base/sun.security.ssl.X509TrustManagerImpl.checkTrusted(X509TrustManagerImpl.java:230) at java.base/sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:132) at java.base/sun.security.ssl.CertificateMessage$T13CertificateConsumer.checkServerCerts(CertificateMessage.java:1302) ... 42 more Caused by: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target at java.base/sun.security.provider.certpath.SunCertPathBuilder.build(SunCertPathBuilder.java:148) at java.base/sun.security.provider.certpath.SunCertPathBuilder.engineBuild(SunCertPathBuilder.java:129) at java.base/java.security.cert.CertPathBuilder.build(CertPathBuilder.java:297) at java.base/sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:383) ... 47 more

ibmmqmet commented 6 months ago

You are trying to use SSLBundle capability while specifying use of 3.0.2 Spring Boot, but that was only introduced in the 3.1.2 version of this package,

rmohan17 commented 6 months ago

@ibmmqmet We have changed spring boot version to 3.0.2 now i am getting this error, can you please advise urgently .

==================================================== MQ JMS Transaction Sample with JMS3 and TLS started.

Exception in thread "main" org.springframework.transaction.CannotCreateTransactionException: Could not create JMS transaction at org.springframework.jms.connection.JmsTransactionManager.doBegin(JmsTransactionManager.java:255) at org.springframework.transaction.support.AbstractPlatformTransactionManager.startTransaction(AbstractPlatformTransactionManager.java:400) at org.springframework.transaction.support.AbstractPlatformTransactionManager.getTransaction(AbstractPlatformTransactionManager.java:373) at com.optum.eems.eemsibmmqapp.EemsIbmMqAppApplication.main(EemsIbmMqAppApplication.java:56) Caused by: com.ibm.msg.client.jakarta.jms.DetailedJMSException: JMSWMQ0018: Failed to connect to queue manager 'WMQS102' with connection mode 'Client' and host name 'Client'. Check the queue manager is started and if running in client mode, check there is a listener running. Please see the linked exception for more information. at com.ibm.msg.client.jakarta.wmq.common.internal.Reason.reasonToException(Reason.java:595) at com.ibm.msg.client.jakarta.wmq.common.internal.Reason.createException(Reason.java:215) at com.ibm.msg.client.jakarta.wmq.internal.WMQConnection.(WMQConnection.java:458) at com.ibm.msg.client.jakarta.wmq.factories.WMQConnectionFactory.createV7ProviderConnection(WMQConnectionFactory.java:8683) at com.ibm.msg.client.jakarta.wmq.factories.WMQConnectionFactory.createProviderConnection(WMQConnectionFactory.java:8023) at com.ibm.msg.client.jakarta.jms.admin.JmsConnectionFactoryImpl._createConnection(JmsConnectionFactoryImpl.java:322) at com.ibm.msg.client.jakarta.jms.admin.JmsConnectionFactoryImpl.createConnection(JmsConnectionFactoryImpl.java:242) at com.ibm.mq.jakarta.jms.MQConnectionFactory.createCommonConnection(MQConnectionFactory.java:6026) at com.ibm.mq.jakarta.jms.MQConnectionFactory.createConnection(MQConnectionFactory.java:6055) at org.springframework.jms.connection.SingleConnectionFactory.doCreateConnection(SingleConnectionFactory.java:409) at org.springframework.jms.connection.SingleConnectionFactory.initConnection(SingleConnectionFactory.java:349) at org.springframework.jms.connection.SingleConnectionFactory.getConnection(SingleConnectionFactory.java:327) at org.springframework.jms.connection.SingleConnectionFactory.createConnection(SingleConnectionFactory.java:242) at org.springframework.jms.connection.JmsTransactionManager.createConnection(JmsTransactionManager.java:330) at org.springframework.jms.connection.JmsTransactionManager.doBegin(JmsTransactionManager.java:223) ... 3 more Caused by: com.ibm.mq.MQException: JMSCMQ0001: IBM MQ call failed with compcode '2' ('MQCC_FAILED') reason '2397' ('MQRC_JSSE_ERROR'). at com.ibm.msg.client.jakarta.wmq.common.internal.Reason.createException(Reason.java:203) ... 16 more Caused by: com.ibm.mq.jmqi.JmqiException: CC=2;RC=2397;AMQ9204: Connection to host 'wmqrt0013.uhc.com(50001)' rejected. [1=com.ibm.mq.jmqi.JmqiException[CC=2;RC=2397;AMQ9771: SSL handshake failed. [1=javax.net.ssl.SSLHandshakeException[PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target],3=wmqrt0013.uhc.com/10.86.36.32:50001 (wmqrt0013.uhc.com),4=SSLSocket.startHandshake,5=default]],3=wmqrt0013.uhc.com(50001),4=,5=RemoteTCPConnection.protocolConnect] at com.ibm.mq.jmqi.remote.api.RemoteFAP$Connector.jmqiConnect(RemoteFAP.java:13670) at com.ibm.mq.jmqi.remote.api.RemoteFAP$Connector.access$100(RemoteFAP.java:13202) at com.ibm.mq.jmqi.remote.api.RemoteFAP.jmqiConnect(RemoteFAP.java:1451) at com.ibm.mq.jmqi.remote.api.RemoteFAP.jmqiConnect(RemoteFAP.java:1392) at com.ibm.mq.ese.jmqi.InterceptedJmqiImpl.jmqiConnect(InterceptedJmqiImpl.java:377) at com.ibm.mq.ese.jmqi.ESEJMQI.jmqiConnect(ESEJMQI.java:562) at com.ibm.msg.client.jakarta.wmq.internal.WMQConnection.(WMQConnection.java:391) ... 15 more Caused by: com.ibm.mq.jmqi.JmqiException: CC=2;RC=2397;AMQ9771: SSL handshake failed. [1=javax.net.ssl.SSLHandshakeException[PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target],3=wmqrt0013.uhc.com/10.86.36.32:50001 (wmqrt0013.uhc.com),4=SSLSocket.startHandshake,5=default] at com.ibm.mq.jmqi.remote.impl.RemoteTCPConnection.protocolConnect(RemoteTCPConnection.java:1585) at com.ibm.mq.jmqi.remote.impl.RemoteConnection.connect(RemoteConnection.java:1013) at com.ibm.mq.jmqi.remote.impl.RemoteConnectionSpecification.getNewConnection(RemoteConnectionSpecification.java:691) at com.ibm.mq.jmqi.remote.impl.RemoteConnectionSpecification.getSessionFromNewConnection(RemoteConnectionSpecification.java:283) at com.ibm.mq.jmqi.remote.impl.RemoteConnectionSpecification.getSession(RemoteConnectionSpecification.java:170) at com.ibm.mq.jmqi.remote.impl.RemoteConnectionPool.getSession(RemoteConnectionPool.java:128) at com.ibm.mq.jmqi.remote.api.RemoteFAP$Connector.jmqiConnect(RemoteFAP.java:13402) ... 21 more Caused by: javax.net.ssl.SSLHandshakeException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target at java.base/sun.security.ssl.Alert.createSSLException(Alert.java:130) at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:378) at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:321) at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:316) at java.base/sun.security.ssl.CertificateMessage$T13CertificateConsumer.checkServerCerts(CertificateMessage.java:1318) at java.base/sun.security.ssl.CertificateMessage$T13CertificateConsumer.onConsumeCertificate(CertificateMessage.java:1195) at java.base/sun.security.ssl.CertificateMessage$T13CertificateConsumer.consume(CertificateMessage.java:1138) at java.base/sun.security.ssl.SSLHandshake.consume(SSLHandshake.java:393) at java.base/sun.security.ssl.HandshakeContext.dispatch(HandshakeContext.java:476) at java.base/sun.security.ssl.HandshakeContext.dispatch(HandshakeContext.java:447) at java.base/sun.security.ssl.TransportContext.dispatch(TransportContext.java:201) at java.base/sun.security.ssl.SSLTransport.decode(SSLTransport.java:172) at java.base/sun.security.ssl.SSLSocketImpl.decode(SSLSocketImpl.java:1506) at java.base/sun.security.ssl.SSLSocketImpl.readHandshakeRecord(SSLSocketImpl.java:1421) at java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:455) at java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:426) at com.ibm.mq.jmqi.remote.impl.RemoteTCPConnection$6.run(RemoteTCPConnection.java:1552) at com.ibm.mq.jmqi.remote.impl.RemoteTCPConnection$6.run(RemoteTCPConnection.java:1544) at java.base/java.security.AccessController.doPrivileged(AccessController.java:319) at com.ibm.mq.jmqi.remote.impl.RemoteTCPConnection.protocolConnect(RemoteTCPConnection.java:1544) ... 27 more Caused by: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target at java.base/sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:388) at java.base/sun.security.validator.PKIXValidator.engineValidate(PKIXValidator.java:271) at java.base/sun.security.validator.Validator.validate(Validator.java:256) at java.base/sun.security.ssl.X509TrustManagerImpl.checkTrusted(X509TrustManagerImpl.java:230) at java.base/sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:132) at java.base/sun.security.ssl.CertificateMessage$T13CertificateConsumer.checkServerCerts(CertificateMessage.java:1302) ... 42 more Caused by: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target at java.base/sun.security.provider.certpath.SunCertPathBuilder.build(SunCertPathBuilder.java:148) at java.base/sun.security.provider.certpath.SunCertPathBuilder.engineBuild(SunCertPathBuilder.java:129) at java.base/java.security.cert.CertPathBuilder.build(CertPathBuilder.java:297) at java.base/sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:383) ... 47 more

rmohan17 commented 6 months ago

@ibmmqmet , can you please provide updates on this.