Spring boot, jdbc şablonu manuel uygulama kavanozu başlatıldıktan sonra çalışır, ancak cron ile çalışmaz. Arkasındaki sebep ne olabilir?

0

Soru

Oracle veritabanına bağlanan Amazon Ec2 üzerinden bir spring boot uygulaması kullanıyorum. Uygulama.özellikler dosyası aşağıdaki ilgili özelliklere sahiptir-

hibernate.dialect=org.hibernate.dialect.Oracle12cDialect
hibernate.show_sql=true
hibernate.format_sql=true

# dbcp2 settings
spring.datasource.dbcp2.initial-size=10
spring.datasource.dbcp2.max-total=100
spring.datasource.dbcp2.pool-prepared-statements=true
spring.jdbc.template.max-rows=500
spring.datasource.dbcp2.max-open-prepared-statements=100

logging.level.org.springframework.jdbc.core.JdbcTemplate=DEBUG
logging.level.org.springframework.jdbc.core.StatementCreatorUtils=TRACE

# Schema
spring.appds.jdbcurl = jdbc:oracle:thin:@xx.r.zz.tt:1521/tttt
spring.appds.username = userAPP
spring.appds.password = passwordApp
spring.appds.driverClassName = oracle.jdbc.OracleDriver

Uygulama kavanozu, kök klasörden kök ayrıcalıkları kullanılarak bir cron üzerinden çalıştırılır.

Uygulama o zamandan beri bir jdbctemplate sorgusu için veri döndürmüyor.

SELECT *
FROM TABLE(lic.skd_es_i.e_g_app_sh_li(key => 54234
, date_from => NULL
, date_to => NULL
, use_country => 'IT'
, work_title => ''
, source => 'LOCAL'));

Ancak aynı sorgu her zaman veritabanı üzerinde çalışıyordu.

Bugün spring boot uygulama kavanozunu jar konumuna manuel olarak giderek yeniden başlattığımda işe yarıyor.

Bunun arkasındaki nedenin ne olabileceğini merak ediyorum?

cron java jdbctemplate spring-boot
2021-11-15 10:44:16
1

En iyi cevabı

0

Jar konumuna manuel olarak gidip uygulamayı başlatarak uygulamayı başlattığımda, sorgu çalışmaya başladı.

Daha sonra sorunun spring boot uygulaması için çalışma dizininde olduğunu fark ettim. Cron, çalışma dizini olarak 'root' kullanarak uygulama jar'ını başlatırken, Spring boot jar yapılandırma dosyası uygulamasını bekliyordu.özellikler veya uygulama.yml-aşağıdaki öncelik sırasına göre önceden belirlenmiş 4 konumda:

  1. Geçerli dizinin A / config alt dizini
  2. Geçerli dizin
  3. Bir sınıf yolu / yapılandırma paketi
  4. Sınıf yolu kökü

Bu nedenle, cron işleri için çalışma dizinini doğru konuma (bu durumda spring boot jar konumu) işaret ederek, veri kaynakları doğru şekilde yüklendi.

Referans - https://www.baeldung.com/spring-properties-file-outside-jar

2021-11-18 12:57:02

Diğer dillerde

Bu sayfa diğer dillerde

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................