Skip to content

IMS update customer api#112

Open
adn1107 wants to merge 26 commits into
mainfrom
ims-update-customer-api
Open

IMS update customer api#112
adn1107 wants to merge 26 commits into
mainfrom
ims-update-customer-api

Conversation

@adn1107

@adn1107 adn1107 commented Jun 26, 2026

Copy link
Copy Markdown
Member

PR Summary: Fix z/OS Connect Deployment and IMS Configuration

Overview

Resolves API 404 errors and improves deployment reliability by fixing version compatibility issues, deployment configuration, and IMS region setup.

Key Changes

🔧 Fixed z/OS Connect Version Compatibility

  • Downgraded Gradle plugin from 1.6.0 to 1.5.1 to match z/OS Connect server 3.0.101
  • Updated API context root configuration to /api
  • Aligned Docker Compose image version with server

📦 Improved Deployment Configuration

  • Simplified Wazi Deploy template to use WAR filename as context root
  • Updated setup script to create configs for api.war and bank-frontend-vanilla.war
  • Removed premature WAR file copy from setup script (now handled by Wazi Deploy)
  • Cleaned up unnecessary conditional logic in config paths

🛠️ Enhanced IMS Region Setup

  • Always run zconfig rm to cleanup leftover datasets
  • Prevents "Data set already exists" errors during region creation

📝 Documentation

  • Added comments explaining environment variable pass-through in docker-compose
  • Clarified setup requirements for container startup

Deployment URLs

  • API: http://host:9080/api/
  • Frontend: http://host:9080/bank-frontend-vanilla/

Testing

  • ✅ API successfully deploys at /api context root
  • ✅ Frontend successfully deploys at /bank-frontend-vanilla context root
  • ✅ IMS region setup completes without dataset conflicts
  • ✅ Setup script runs without file not found errors

Impact

  • Fixes 404 errors when accessing customer endpoints
  • Improves deployment reliability and consistency
  • Simplifies configuration maintenance

adn1107 added 18 commits June 24, 2026 19:49
Add comprehensive DISPLAY statements to IBSCUDAT and IBTRAN programs to log:
- Input data and parameters
- Database operation status codes
- Data values before/after updates
- Success/failure of each operation

This will help troubleshoot issues in IMS region logs.

Signed-off-by: Andrew Nguyen <andy.nguyen@ibm.com>
Fix IGYPS0007-E errors where DISPLAY statements had string literals
improperly continued across lines. Combined DISPLAY statements and
their variables onto single lines to comply with COBOL syntax rules.

Signed-off-by: Andrew Nguyen <andy.nguyen@ibm.com>
- Removed verbose debug messages
- Kept essential debug points for troubleshooting
- Reduced from 641 to 576 lines to avoid EDC5003I truncation error
- Split long DISPLAY statements to stay within 72-column limit
- Fixed IGYPS2121-S compilation errors
- Ensures proper COBOL syntax compliance
- Fixed undefined api_name error during WaziDeploy deployment
- Added conditional check with 'bankz-api' as fallback value
- Ensures template can be parsed before loop variable is set

Signed-off-by: Andrew Nguyen <andy.nguyen@ibm.com>
- Added PUT /ims/customers/{customerId} endpoint to OpenAPI spec
- Created response mapping for IBSCUDAT transaction
- Updated frontend customer-details.html with update functionality
- Added updateCustomer API function in api.js
- Updated zosAsset.yaml files for IMS transactions
- Updated docker-compose.yaml configuration
- Updated API README with new endpoint documentation

Signed-off-by: Andrew Nguyen <andy.nguyen@ibm.com>
- Changed baseUrl from '/api' to '' (empty string)
- API is deployed at root context (/) per ibm-web-ext.xml configuration
- Frontend will now correctly call endpoints at root path
- Resolves 404 errors when accessing customer endpoints

Signed-off-by: Andrew Nguyen <andy.nguyen@ibm.com>
- Downgrade plugin from 1.6.0 to 1.5.1 for compatibility with z/OS Connect 3.0.101
- Set context-root to /api in ibm-web-ext.xml
- Update frontend config.js to use /api baseUrl
- Resolves compatibility issues causing API deployment failures

Signed-off-by: Andrew Nguyen <andy.nguyen@ibm.com>
…nt context roots

- Add frontend WAR configuration to setup script (contextRoot='/')
- Update Wazi Deploy template to use correct context roots:
  - API: /api (instead of /bankz-api)
  - Frontend: / (instead of /bank-frontend-vanilla)
- Ensures consistent deployment across setup and Wazi Deploy workflows

Signed-off-by: Andrew Nguyen <andy.nguyen@ibm.com>
- Change Docker image from 3.0.104 to 3.0.101
- Matches the z/OS Connect server version running on the target system
- Ensures compatibility between local development and deployment environment

Signed-off-by: Andrew Nguyen <andy.nguyen@ibm.com>
- Update setup script to deploy frontend at /bank-frontend-vanilla
- Update Wazi Deploy template to use /bank-frontend-vanilla context root
- Frontend will now be accessible at http://host:port/bank-frontend-vanilla/

Signed-off-by: Andrew Nguyen <andy.nguyen@ibm.com>
- Remove conditional check that skipped cleanup when no IMS region found
- Always attempt zconfig rm even if region not listed in zconfig ls
- Prevents 'Data set already exists' errors from leftover datasets
- Ensures clean state before creating new IMS region

Signed-off-by: Andrew Nguyen <andy.nguyen@ibm.com>
- Remove cp command that tries to copy non-existent WAR file during setup
- WAR files are built later and deployed by Wazi Deploy
- Setup script now only creates configuration files
- Prevents 'No such file or directory' error during initial setup
- Wazi Deploy handles copying WAR files and creating configs for both API and frontend

Signed-off-by: Andrew Nguyen <andy.nguyen@ibm.com>
- Revert Wazi Deploy template to simple contextRoot='/{{ api_name }}' format
- Update setup script to use 'api' as WAR name to match build output
- api.war deploys at /api, bank-frontend-vanilla.war at /bank-frontend-vanilla
- Simpler and more maintainable than conditional logic

Signed-off-by: Andrew Nguyen <andy.nguyen@ibm.com>
- Simplify dest path from '{{api_name if api_name is defined else "bankz-api"}}.xml' to '{{api_name}}.xml'
- api_name is always defined in the loop context, so conditional is unnecessary
- Cleaner and more maintainable configuration

Signed-off-by: Andrew Nguyen <andy.nguyen@ibm.com>
…ker-compose

- Add comment explaining that environment variables must be set on host before starting containers
- Clarify that format '- VAR_NAME' (without =value) passes host environment values to container
- Provide example of how to set variables before running docker-compose up
- Add pragma allowlist secret comments for password references

Signed-off-by: Andrew Nguyen <andy.nguyen@ibm.com>
@adn1107 adn1107 requested a review from AndrewTwydell June 26, 2026 03:32
adn1107 added 7 commits June 26, 2026 14:11
- Exclude IBTRAN.cbl from z/OS Connect processing (uses JNI/POINTER types)
- Create LP(32) with JAVAIOP(JAVA64) build config for IBTRAN
- Use 31-bit to 64-bit Java bridge (IBM recommended approach)
- Add proper compile parms: PGMNAME(LONGMIXED),DLL,RENT,NOEXP
- Add proper link parms: DYNAM(DLL),CASE(MIXED)
- Include DFSLI000, DLITCBL entry, and JNI/JVM library paths
- Update Languages.yaml to include IBTRAN-specific configuration

Based on working reference from ansible-ims-bank-app

Fixes:
- BAQW0051E: Unsupported POINTER data types in z/OS Connect
- CEE3588S: AMODE mismatch when calling JVM

Signed-off-by: Andrew Nguyen <andy.nguyen@ibm.com>
- Add igzxjni2 and libjvm31 to link edit stream for proper JNI bridge
- Apply lowercase filter to JVM options file path
- Add missing response files for deposit endpoint

These changes ensure IBTRAN can properly call 64-bit JVM from 31-bit code

Signed-off-by: Andrew Nguyen <andy.nguyen@ibm.com>
- Add cobol_java_home to IMS config (/usr/lpp/IBM/cobol_6.4)
- Add cobolJavaHome and javaHome variables to CobolIBTRAN.yaml
- Include JNI library paths in SYSLIB concatenation for link edit
- Simplify linkEditStream to just DFSLI000 and DLITCBL entry

This ensures the linker can find igzxjni2.x and libjvm31.x files

Signed-off-by: Andrew Nguyen <andy.nguyen@ibm.com>
- Add INCLUDE '/usr/lpp/IBM/cobol_6.4/lib/igzxjni2.x' for JNI bridge
- Add INCLUDE '/usr/lpp/java/J8.0_64/lib/j9vm/libjvm31.x' for 31-bit JVM stub

These explicit paths in linkEditStream ensure the linker finds the
side deck files needed for 31-bit to 64-bit Java interop

Signed-off-by: Andrew Nguyen <andy.nguyen@ibm.com>
- Updated cobol_java_home from /usr/lpp/IBM/cobol_6.4 to /usr/lpp/IBM/cobol/igyv6r5
- Updated javaHome from /usr/lpp/java/J8.0_64 to /usr/lpp/java/java21/J21.0_64
- Updated igzxjni2.x path to /usr/lpp/IBM/cobol/igyv6r5/lib/igzxjni2.x
- Updated libjvm31.x path to /usr/lpp/java/java21/J21.0_64/lib/j9vm/libjvm31.x

These paths were verified on the z/OS system and are required for the
31-bit to 64-bit JNI bridge used by IBTRAN to call Java from COBOL.
@adn1107 adn1107 force-pushed the ims-update-customer-api branch from 1eb67e1 to e7cb4f9 Compare June 28, 2026 03:56
- Add missing ENTRY DLITCBL statement in link-edit stream
- Update compile parameters to match working Ansible configuration
- Add XREF parameter and reorder compile options
- Ensures proper IMS initialization for COBOL calling 64-bit Java

Resolves CEE3588S error when IBTRAN calls into libjvm.so

Signed-off-by: Andrew Nguyen <andy.nguyen@ibm.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant