ICS pricing is based on two aspects – the number of connections and the number of messages processed. But what constitutes a connection? What happens if I exceed the number of messages or connections?
Number of Connections
The overall model for ICS pricing is on page 34 of Oracle Platform as a Service and Infrastructure as a Service – Public Cloud Service Descriptions-Metered & Non-Metered. The key definition for a Hosted Connection is on Page 9 of this document. The critical wording for the connections is:
A Connection is counted per unique application, data source, third party software, Oracle software, Web Service or REST end point to which the Oracle Integration Cloud Service is connected. SOAP or REST Web Services that have the same base URI (combination of host and port) are counted as one Connection.
So you can define for example two ICS connections (one in and one out for example, or one per operation) to the same service aslong as the basic part of the URL e.g. icsallpurpose-xxxxxx.integration.us2.oraclecloud.com is the same. The ports will typically only become a countable to the same URL if you use different protocols e.g. HTTP, HTTPS, FTP. This simply comes down to the fact different protocols typically use different ports. But, if I daisy chained integrations within the same ICS instance; then assuming they are all HTTPS calls they would only consume 1 connection. This is regardless of how many different connections created to provide the full path. This is also important as when transitioning versions of end points you may need the current and previous endpoints available, which within this model would count as the same connection as typically the version identifier is in the subsequent path.
The number of connection types should not exceed 10 (including the two provided in the form of REST & SOAP).
Number of Messages
When it comes to the number of messages the limit is set to 100,000 per connection (or comparable to 1 million across all connections in a day). It is possible that if you’re closing on 1 million messages per day you will start to see performance degradation – if or how much degradation will depend upon the complexity of your integrations.
How ICS Tells You About Thresholds
ICS doesn’t impose these thresholds in a hard manner (i.e. prevent more connections being made or block messages). You will however get warning messages that you’re hitting the boundaries. The fact that these limits are not enforced has been seen in the shared demo instances of ICS available to partners and Oracle teams.
You can buy increased capacity with ICS, however today this is achieved by providing an additional pod as Oracle often refers to the deployment (two servers and management server). This however does have some issues – primarily managing your integration definitions across the pods, along with spreading load. It also means some thought to load sharing is needed – logical split, or front the pods with an additional load balancer? There is the intent to make ICS scalable, so capacity increase is achieved by adding additional server nodes to your current pod.