Cloud Pak for Integration

 View Only

Connect ACE toolkit to Integration server running on CP4I

By Keshav Anand posted Fri January 14, 2022 06:40 AM

  

Overview

Developers usually create a local ACE Integration Server on their workstations to develop and unit test their integration code quickly. Deploying bar files to local integration server is easy. Developers just need to "drag-and-drop" bar files onto the Integration Server.

However, there are scenarios where developers may want to deploy bar files directly onto a remote Integration server running on CP4I directly from their toolkits. Here is a quick recipe which helps you connect to a remote Integration Server running on CP4I underpinned by OpenShift. Towards the end, I also share steps to start a debugger on the remote integration server.

Recipe

1. Pick a sample bar file to deploy through the ACE dashboard from the Platform Navigator.

2. On the configurations page, add a server.conf.yaml configuration with the following parameters and finish deploying the Integration Server.
ResourceManagers:
JVM:
jvmDebugPort: 9997
RestAdminListener:
requireClientCert: false


3. After the Integration server is up and running,  find out the service name. This usually starts with the name of the integration server. Use the following command to get the service name.
oc get svc | grep <integration_server_name>

4. Use the service name to create a route to Admin UI running at port 7600.
oc create route passthrough <route_name> --service=<service_name> --hostname=<dns_address_of_route> --port=7600

For example:
oc create route passthrough dev-ace-toolkit --service=dev-ace-is --hostname=dev-tookit-cp4i.cp4i-dev-4c84f19c22c6eb1784ba9d2966faea77-0000.eu-gb.containers.appdomain.cloud --port=7600 -n cp4i


5. Now retrieve the admin credential to login to the Admin UI.
oc exec -it <Integration_Server_Pod> --cat initial-config/webusers/admin-users.txt

For example:
oc exec -it test-ace-is-is-96896cfcd-df6jg -- cat initial-config/webusers/admin-users.txt

6. On a browser window, access the Admin UI using the route address you created in  step 4 and login using the credentials you retrieved from step 5.


   You have now successfully verified the login credentials.

7. Open the IBM ACE toolkit, in the Integration Explorer window click on Connect to an integration server. Specify the following details
 
  • Hostname - dev-tookit-cp4i.cp4i-dev-4c84f19c22c6eb1784ba9d2966faea77-0000.eu-gb.containers.appdomain.cloud
  • Port: 443
  • Username: ibm-ace-dashboard-admin
  • Password: <retrieved from step 5>
  • Check the Use HTTPS option.

8. Click Finish to connect to the Integration Server.

Running Debugger on remote Integration Server

We added the debug port in Server Config yaml while creating the server. We can now use it to start a debugger on the Integration Server.

1. On the command line, start a port forwarding session at the debug port.
oc port-forward <Integration_Server_Pod> <debug_port>:<debug_port>

For example:
oc port-forward dev-ace-is-75d595c5c7-7hb9q 9997:9997


2. On the ACE toolkit, switch to the Debug perspective. Click on Debug Configurations..

3. Set the hostname to 127.0.0.1 and port to 9997 and click on Debug.


4. You can now start debugging your message flow.

Conclusion:

You have now successfully connected your ACE toolkit to a remote Integration Server. You can use this to do the following.
- Deploy bar files directly on the remote Integration Server with "drag-and-drop" feature on the ACE toolkit.
- Stop or start applications and message flows from the ACE toolkit.
- Start debugger on the Integration Server to troubleshoot any message flows.


#toolkit
#AppConnectEnterprise(ACE)
#IBMCloudPakforIntegration(ICP4I)
3 comments
149 views

Permalink

Comments

Tue February 07, 2023 02:32 PM

When creating the route, you can specify a unique name and host name from either of the default routes that are created when the IS is created. As long as the name of the route and the host name are not the same as the defaults, it should create without any errors.

In this unique route, you would specify the 7600 port.

Now when you connect to the IS from the Toolkit, you will want to specify the unique host that was used in the created route. Not what is specified in the default routes.

The default routes are a managed resource and any changes made to them directly will be overwritten after a few minutes, reverting the targetPort back to https.

Thu January 26, 2023 03:54 PM

Hi Keshav,

I recently ran through the steps and initially came across a few errors. I was receiving a similar error to ASHOK's comment: "host doesn't exist"

I noticed once I created an Integration server, a default route with the same name as the server was created. Therefore the route created during step 4 will show an error with the reason being 'HostAlreadyClaimed'. I was unable to connect to the Admin UI.

The "default" route that's created with the same name as the integration server has a targetPort: https. I edited the YAML for the route and changed TargetPort https -> 7600. Once saved, I was able to access the Admin UI for the integration server. I then deleted the route created in step 4.

I hope this helps anyone running into issues. 

Wed September 21, 2022 01:00 PM

Hi Keshav,

I followed till step-5 , then after I'm receiving below error, could you assist me what am I doing wrong.

Error - "This might have occurred if the host name that you specified is not known on your network"