Purpose: This guide provides a structured approach to troubleshooting JMS API connectivity and functionality issues. Follow the steps sequentially for optimal results.
This comprehensive troubleshooting guide is designed to help technical teams diagnose and resolve common JMS API issues quickly and efficiently. The guide follows a systematic approach starting with basic sanity checks and progressing to detailed API testing procedures.
Prerequisites: Ensure you have proper SSH access and kubectl permissions before proceeding.
# Connect to control server
ssh cont160150
# Switch to UAT namespace
source ke-msb-uat
What to look for: Pods should be in "Running" state. Check for any restart loops or error conditions.
# List JMS service pods
kubectl get pods | grep az-int-flexjmsservice
# Get detailed pod information
kubectl describe pod <pod-name>
Health Check: Verify load balancer configuration and test connectivity to backend services.
# Access load balancer
ssh -p 7779 10.0.1.59
# Check HAProxy configuration
cat /etc/haproxy/haproxy.cfg | grep -C15 2235
# Test connectivity
telnet 10.137.161.200 2235
# Check service status
systemctl status haproxy
Important: Ensure the XML payload is properly formatted. The data section should contain the complete SOAP envelope structure, not just raw field values.
curl --location 'https://10.137.160.59:38443/dtb-gateway/DTBK/Sandbox-DSBCustomerService/1.0' \
--header 'SOAPAction: CreateRetailKYC' \
--header 'Content-Type: application/json' \
--header 'X-API-Key: cecd9d79-915e-4a30-b5a1-7279f7648126' \
--header 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJDT0Z3OG9Hc3dLOWJESl9oMHdfdUZVVmZaR0NESGhkT0pmRjNLbGRBSGRjIn0.eyJqdGkiOiJjYWNjMjkzYi0yN2UwLTQ1NWQtYjZhNS1lZjBmNmQwZTU4OTMiLCJleHAiOjE3ODI4MDE2ODQsIm5iZiI6MCwiaWF0IjoxNzUxMjY1Njg0LCJpc3MiOiJodHRwOi8vMTAuMTM3LjE2MC41OTozMDMwL2F1dGgvcmVhbG1zL0RUQktBUElHVyIsImF1ZCI6IktFQVBJQ2xpZW50Iiwic3ViIjoiMmExOWY5ODQtNmU1ZC00OTRiLWI1YjAtY2FmM2IyOWQ0MGEzIiwidHlwIjoiQmVhcmVyIiwiYXpwIjoiS0VBUElDbGllbnQiLCJhdXRoX3RpbWUiOjAsInNlc3Npb25fc3RhdGUiOiIzMmQzMTkzZC03Nzg0LTMzYWQtYjM3YS1jYWY5MmQ3NWNkOWYiLCJhY3IiOiIxIiwiY2xpZW50X3Nlc3Npb24iOiI4ZDhlY2Y0Zi1lYjIyLTQxN2UtODNiZS01Y2Y4MWJhNWNlODUiLCJhbGxvd2VkLW9yaWdpbnMiOltdLCJyZWFsbV9hY2Nlc3MiOnsicm9sZXMiOlsiS0VGaW9yYW5vQXBwUm9sZSIsInVtYV9hdXRob3JpemF0aW9uIl19LCJyZXNvdXJjZV9hY2Nlc3MiOnsiYWNjb3VudCI6eyJyb2xlcyI6WyJtYW5hZ2UtYWNjb3VudCIsInZpZXctcHJvZmlsZSJdfX0sIm5hbWUiOiJLRSBGaW9yYW5vIEFwcCBVc2VyIiwicHJlZmVycmVkX3VzZXJuYW1lIjoia2VfZmlvcmFub19hcHBfdXNlciIsImdpdmVuX25hbWUiOiJLRSBGaW9yYW5vIEFwcCIsImZhbWlseV9uYW1lIjoiVXNlciIsImVtYWlsIjoia2VfZmlvcmFub19hcHBfdXNlckBkdGJhZnJpY2EuY29tIn0.X4bfT97mSL2hqloGnRW9i539oqXRf0ROypF5qZBJ8u1wZ6KlTYhA7bs4k_iOsqbNTGTxtrDVPaJ7McIOuLGg049Evl_JsWgI0L59j9nY3oGM_Mz8b12Pi7hGQusPKjHIcD5K-NPbiQ10VhkP-gVMma7mpAm_icd1UsUtu3ryt_Ee4N7qqHdzpLEPv-ugmW84uB1Frj7kXeeGLDtR9x1nE-2SlMUxpD4NXMdc2C6YpH_lrjFOvrrek0UyrKoGuk-6IMOf4-hJaKIr7GWOGmx0N6wPNFyll5xbtwHe9AYn9GRR0X8A0mPBjYhqnoAh9pN91l2tv-pGtCD5NQ7zJjvg' \
--header 'Cookie: SERVERID=LBS-FCUBS-FIGSUAT-M1-server1; SERVERID=LBS-FCUBS-FIGSUAT-M1-server1' \
--data '<?xml version="1.0" encoding="UTF-8"?>
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Header />
<s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<DSB_KYCRETAIL_REQ xmlns="http://com.dtbafrica.dsbflex.customerservice/service/DSBCustomerService">
<DSB_HEADER>
<SOURCE>XMLSYBRIN</SOURCE>
<XREF>{{msgId}}</XREF>
<USER_ID>XMLSYB</USER_ID>
<PASSWORD>{{encryptedPassword}}</PASSWORD>
<SERVICE>FCUBSCustomerService</SERVICE>
<OPERATION>CreateKYC</OPERATION>
</DSB_HEADER>
<DSB_BODY>
<KYC_MASTER_FULL>
<CUSTOMER_FULL_NAME>JOHN DOE</CUSTOMER_FULL_NAME>
<KYC_CUSTOMER_TYPE>R</KYC_CUSTOMER_TYPE>
<RISK_LEVEL>Level1</RISK_LEVEL>
<KYC_RETAIL>
<DECLARED />
<RESIDENT>Y</RESIDENT>
<PEP>N</PEP>
<LOCAL_ADDRESS>BUSIBWABO BUSIA</LOCAL_ADDRESS>
<LOCAL_ADDR_CNTRY>KE</LOCAL_ADDR_CNTRY>
<HOME_CNTRY_ADDRESS>BUSIBWABO BUSIA</HOME_CNTRY_ADDRESS>
<HOME_ADDR_CNTRY>KE</HOME_ADDR_CNTRY>
<US_RESIDENT>N</US_RESIDENT>
<VISITED_US_PREV>N</VISITED_US_PREV>
<NATIONALITY>KE</NATIONALITY>
<BIRTH_PLACE>NAROBI</BIRTH_PLACE>
<BIRTH_COUNTRY>KE</BIRTH_COUNTRY>
<BIRTH_DATE>1994-12-24</BIRTH_DATE>
<MOBILE_ISD_CODE>254</MOBILE_ISD_CODE>
<MOBILE_TEL_NUMBER>0712345678</MOBILE_TEL_NUMBER>
<ACCOUNT_PURPOSE>414-11</ACCOUNT_PURPOSE>
<ACCOUNT_TYPE>INDIVIDUAL</ACCOUNT_TYPE>
<PASSPORT_NUMBER />
<PASSPORT_EXPIRY_DATE />
<KYC_CURRENCY>KES</KYC_CURRENCY>
<POA>N</POA>
<INCOME_SALARY>N</INCOME_SALARY>
<INCOME_RENTAL>N</INCOME_RENTAL>
<INCOME_INVESTMENT>N</INCOME_INVESTMENT>
<INCOME_BUSINESS>N</INCOME_BUSINESS>
<INCOME_PROF_BIZ>N</INCOME_PROF_BIZ>
<INCOME_OVERSEAS>N</INCOME_OVERSEAS>
<TOTAL_INCOME>0</TOTAL_INCOME>
<TOTAL_NET_WORTH>0</TOTAL_NET_WORTH>
<KYC_COMMENT>BENARD OLAGE</KYC_COMMENT>
<SALES_OFF_COMMENT>BENARD OLAGE</SALES_OFF_COMMENT>
<APPROVERS_COMMENT>MAWINDA</APPROVERS_COMMENT>
</KYC_RETAIL>
</KYC_MASTER_FULL>
</DSB_BODY>
</DSB_KYCRETAIL_REQ>
</s:Body>
</s:Envelope>'
Postman Setup: Add this script to your Postman collection's pre-request script section to automatically generate encrypted passwords.
// Generate random message ID (16 characters)
let msgId = '';
for (let i = 0; i < 16; i++) {
msgId += pm.variables.replaceIn('{{$randomAlphaNumeric}}');
}
pm.variables.set("msgId", msgId);
// Encrypt password using Triple DES
const password = "ORACLE1";
const hashed = CryptoJS.SHA512(msgId);
const keyHex = CryptoJS.enc.Hex.parse(hashed.toString().substring(0, 48));
const iv = CryptoJS.enc.Hex.parse("0000000000000000");
const encrypted = CryptoJS.TripleDES.encrypt(password, keyHex, {
iv: iv,
mode: CryptoJS.mode.CBC,
padding: CryptoJS.pad.Pkcs7
});
const encryptedBase64 = encrypted.toString();
pm.environment.set("encryptedPassword", encryptedBase64);
console.log("Generated msgId:", msgId);
console.log("Encrypted password set successfully");
Success Response: Example of a successful KYC creation response
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<dsb:DSB_KYCRETAIL_RES xmlns:dsb="http://com.dtbafrica.dsbflex.customerservice/service/DSBCustomerService">
<dsb:DSB_HEADER>
<dsb:SOURCE>XMLSYBRIN</dsb:SOURCE>
<dsb:XREF>vbt5yr5x9cxw0ore</dsb:XREF>
<dsb:USER_ID>XMLSYB</dsb:USER_ID>
<dsb:PASSWORD>XXXXXXXXXXXXXXXX</dsb:PASSWORD>
<dsb:SERVICE>FCUBSCustomerService</dsb:SERVICE>
<dsb:OPERATION>CreateKYC</dsb:OPERATION>
<dsb:MESSAGE_STATUS>SUCCESS</dsb:MESSAGE_STATUS>
</dsb:DSB_HEADER>
<dsb:DSB_BODY>
<dsb:KYC_MASTER_FULL>
<dsb:KYC_REFERENCE_NUM>000ZKYC25170Z8WH</dsb:KYC_REFERENCE_NUM>
<dsb:CUSTOMER_FULL_NAME>JOHN DOE</dsb:CUSTOMER_FULL_NAME>
<dsb:KYC_CUSTOMER_TYPE>R</dsb:KYC_CUSTOMER_TYPE>
<dsb:RISK_LEVEL>Level1</dsb:RISK_LEVEL>
</dsb:KYC_MASTER_FULL>
</dsb:DSB_BODY>
</dsb:DSB_KYCRETAIL_RES>
</soap:Body>
</soap:Envelope>