Sunday, March 24, 2024

#1012 - OIC Rapid Adapter Builder Enhancements

There have been some enhancements to the Rapid Adapter Builder -


The project directory structure has changes somewhat - 

api - this is used when your input is an open api spec.

misc - this is used when your input is a postman collection. 

Note, the OIC instance connect information has been externalised.

This makes sense, imagine an oracle partner creating custom adapters. The partner will not know the OIC instance details of the end-consumers.


Check out the documentation here







Sunday, March 3, 2024

#1011 OIC 24.02 New Features - Observability / REST API

Some nice new features coming with 24.02 - 

1. Activity Stream now shows which user triggered an integration flow - 


2. New REST API attributes for min/max execution duration.








Let's try this out on the following flows - 


So the 3 flows executed as follows - 

  • 10.26 seconds
    • DUg3ptn3Ee69UfUKGnU7wg
  • 5.14 seconds
    • KgPdvtn3Ee6_QJ3NwcOM1g 
  • 2.03 seconds
    • INMd3tn3Ee69UfUKGnU7wg
I run the api with minDuration=1000 msecs
https://design.integration.us-phoenix-1.ocp.oraclecloud.com/ic/api/integration/v1/monitoring/instances?integrationInstance=myOICInstance&q={timewindow:'1h', code:'AA_ORDERPROCESS', minDuration:'1000'}

Count = 3 is returned.





 I run again with minDuration = 5000 msecs - This time only 2 are returned - 
those with the following instance ids -

- KgPdvtn3Ee6_QJ3NwcOM1g (5.14 secs)
- DUg3ptn3Ee69UfUKGnU7wg (10.26 secs)

So this returns those instances that took at least 5000 msecs to execute.





Next test is with maxDuration = 3000 msecs -






















This returns only 1 flow - that with the instance id INMd3tn3Ee69UfUKGnU7wg (2.03 secs)

I try again with max set to 6000 msecs - 
























This returns 2 flows - 

- KgPdvtn3Ee6_QJ3NwcOM1g (5.14 secs)
- INMd3tn3Ee69UfUKGnU7w (2.03 secs)

i.e. those instances that executed within 6 seconds.

 






Thursday, February 22, 2024

#1010 AS2 Trigger / Invoke

The use case is to receive / send pdfs over AS2. No trading partner management is required.

I begin with the receive -

Create a Trigger AS2 Connection in OIC - 


Create a Sync Integration 


The logic is simple, just write the pdf to OIC File Server.

The Trigger configuration is basic - 






























The mapping uses the function - 



The target is - 


The FTP Invoke - 
























Let's try this out from Postman - 


I also added the AS2 headers - 


I check out the activity stream in OIC - 
























I check the ftp directory/folder for the file - 

note the file name - out-3.pdf. This is not the first time I've tested this!

So the basic inbound flow works.

Now let's look at using the AS2 adapter as an Invoke - 

Here I create a new scheduled integration that lists the files in the /In folder and then invokes the receive integration I just described.

The invoke connection uses the endpoint of the receive integration - 


The scheduled integration is as follows - 


The For-Each


Here is the configuration of the AS2 invoke - 


The mapping is simple - the reference returned by the GetFile operation has to be encoded to Base64 - 













That's it - let's test!

1 file processed - 


Check out the ftp folder - 




Monday, February 19, 2024

#1009 OIC Service Metrics and OCI Dashboards

 












OIC Service Metrics are available via your OIC instance page in the OCI console. 

The metrics names and description are as follows -



Let me start with a very simple example - a sync integration that waits a couple of seconds and then returns a success message -


I execute this 3 times and then check out the metrics - 

Received messages shows 3, 
same for Successful messages and Inbound requests - all set to 3.

The Inbound request processing time metric also surfaces.

I then check out Consumed messages (messages from a billing perspective) and see also 3




 I now run another sync integration - this one invokes the ATP adapter to write a new order to my Orders table.

























Back to the Service Metrics in OCI - I see the 1 new message in Successful messages, Receive Messages etc.

I also see the Outbound requests is 1 (the outbound request from the integration to ATP)

The metric for Outbound request invocation time also surfaces -

Time shown in msecs.

Finally, the one constant in all of this - Configured messages -  


This shows the number of message packs assigned to this instance.


The next scenario includes a sync integration that invokes another sync integration - 

This time I generate a DB error as I use the same orderNr (Primary Key).

I check the Messages failed count metric - 


It shows 2 here - 1 for the integration that writes to ATP and 1 for the integration that invokes it.

You will have seen the link to OCI Dashboards, while playing around with the Service Metrics -

Let's now look at them 


I add a widget - 

I create my first widget - 


Then add a few more - 


We can also create alarms based on these metrics - 

Let's create one on the Message Failed Count metric - 


I define the alarm as follows - 


I run the integration 3 times, each time with an error.

I see the 3 errors on the alarm data tab - 


I also get the relevant email -