4 Troubleshooting Deployment Errors/Exceptions

This topic describes the troubleshooting information for Errors/Exceptions that can occur due to flyway while deployment.

Errors / Exceptions on Flyway Deployment

The error description is given below:
org.springframework.beans.factory.UnsatisfiedDependencyException: 
Error creating bean with name 'application': Unsatisfied dependency 
expressed through field 'flywayApplicationConfig'; nested exception is 
org.springframework.beans.factory.BeanCreationException: Error creating 
bean with name 'executeDomain' defined in class path resource 
[oracle/fsgbu/plato/flyway/FlywayConfig.class]: Bean instantiation via 
factory method failed; nested exception...SQL State : 42000
In the error, the bean-name can be any of the following:
  • executeDomain
  • executePlato
  • executePlatoSec
  • executePlatoUI
  • executeSms
  • executeCmc
  • executeMidofcmc
  • executePlatofeed
  • executePlatobatch
  • executePlatoorch

Solution for Errors/Exceptions

  • At first for each case,, the service through Plato-configuration-service should be checked to see if it is suggesting the correct scheme via the plato-config-service.
  • After checking that it is to be ensured for that particular APPLICATION, the following entries are present in the PROPERTIES table in the plato Schema.

    Table 4-1 Properties Table

    BEAN PROPERTY_SET NEED TO BE PRESENT
    executeDomain flyway.domain.db.*
    executePlato flyway.plato.db.*
    executePlatoSec flyway.platosec.db.*
    executePlatoUI flyway.platoui.db.*
    executeSms flyway.sms.db.*
    executeCmc flyway.cmc.db.*
    executeMidofcmc flyway.domain.db.*
    executePlatofeed flyway.platofeed.db.*
    executePlatobatch flyway.platobatch.db.*
    executePlatoorch flyway.platoorch.db.*

Depending on whether for the flyway db connection, JNDI name is being used or the JDBC URL and other details are used, each property set will look as follows:

CASE 1: USING JDBC
flyway.domain.db.username
flyway.domain.db.password
flyway.domain.db.jdbcUrl
flyway.domain.db.driver-class-name
flyway.domain.schemas
flyway.domain.locations
flyway.domain.placeholderReplacement
flyway.domain.ignoreMissingMigrations
flyway.domain.outOfOrder
CASE 2: USING JNDI
flyway.domain.db.jndi
flyway.domain.schemas
flyway.domain.locations
flyway.domain.placeholderReplacement
flyway.domain.ignoreMissingMigrations
flyway.domain.outOfOrder
flyway.jndi.datasource.enabled

In each case, make sure that all the relevant placeholders are available in the scripts in the respective locations.

Error Description:
No value provided for placeholder: ${eureka.host}. Check your configuration!

In the example above, an error occurred due to the absence of passing the following parameter in the properties table:

flyway.domain.placeHolders.eureka.host

Solution:

Similarly, any placeholder where the error occurred must pass to the environment through the properties table or the command line arguments (as -D parameters).