We’re working on a version that breaks our customers out from a shared schema solution to a schema per customer approach. When our app servers start up they try to run liquibase against each customer schema. Each server runs a max of 5 customers concurrently. We typically only have 2 servers that have the ability to run these. So at startup we could potentially be running as many as 10 liquibase processes against different schemas from within our network. Wer’e running into an issue where some of the threads will receive throttling errors:
Caused by: java.io.IOException: Server returned HTTP response code: 429 for URL: http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.4.xsd
at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1924)
at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1520)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLEntityManager.setupCurrentEntity(XMLEntityManager.java:676)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLVersionDetector.determineDocVersion(XMLVersionDetector.java:150)
at java.xml/com.sun.org.apache.xerces.internal.impl.xs.opti.SchemaParsingConfig.parse(SchemaParsingConfig.java:593)
at java.xml/com.sun.org.apache.xerces.internal.impl.xs.opti.SchemaParsingConfig.parse(SchemaParsingConfig.java:696)
at java.xml/com.sun.org.apache.xerces.internal.impl.xs.opti.SchemaDOMParser.parse(SchemaDOMParser.java:530)
at java.xml/com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.getSchemaDocument(XSDHandler.java:2226)
What is the throttling rate we’re up against? Also is there a way for us to avoid having to make these requests to liquibase.org? Is it as simple as copying the schema definition to our own location?
Thank you