Источник данных WLST и неизвестный хост - PullRequest
0 голосов
/ 11 июня 2018

Я использую онлайн-скрипт WLST для настройки сервера WebLogic во время сборки образа Docker.По сути, сборка образа Docker запускает WebLogic и выполняет следующий скрипт

import os

import time
import getopt
import sys
import re

# Deployment Information
domainname = os.environ.get('DOMAIN_NAME', 'base_domain')
domainhome = os.environ.get('DOMAIN_HOME', '/u01/oracle/user_projects/domains/' + domainname)
cluster_name = os.environ.get("CLUSTER_NAME", "DockerCluster")
admin_name = os.environ.get("ADMIN_NAME", "AdminServer")

connect(username,password,server_url)
edit()


print ""
print "================== DataSource ==================="
startEdit()

# Create Datasource
# ==================
cd('/')
cmo.createJDBCSystemResource(dsname)

cd('/JDBCSystemResources/' + dsname + '/JDBCResource/' + dsname)
cmo.setName(dsname)

cd('/JDBCSystemResources/' + dsname + '/JDBCResource/' + dsname)
cd('JDBCDataSourceParams/' + dsname)
set('JNDINames', jarray.array([String(dsjndiname)], String))

cd('/JDBCSystemResources/' + dsname + '/JDBCResource/' + dsname)
cd('JDBCDriverParams/' + dsname)
cmo.setDriverName(dsdriver)
cmo.setUrl(dsurl)
set('PasswordEncrypted', encrypt(dspassword))

print 'create JDBCDriverParams Properties'
cd('Properties/' + dsname)
cmo.createProperty('user')
cd('Properties/user')
cmo.setValue(dsusername)

print 'create JDBCConnectionPoolParams'
cd('/JDBCSystemResources/' + dsname + '/JDBCResource/' + dsname)
cd('JDBCConnectionPoolParams/' + dsname)
set('TestTableName','SQL SELECT 1 FROM DUAL')

# Assign
# ======
#assign('JDBCSystemResource', dsname, 'Target', admin_name)
#assign('JDBCSystemResource', dsname, 'Target', cluster_name)
cd('/SystemResources/' + dsname)

set('Targets',jarray.array([ObjectName('com.bea:Name=' + targetname + ',Type=' + targettype)], ObjectName))


# Update Domain, Close It, Exit
# ==========================
#save()
activate()

print ""
#disconnect()
exit()

Проблема в том, что хост базы данных не существует во время сборки, поскольку это имя контейнера другого контейнера Docker вокружение docker-compose.С помощью этого сценария установка цели для источника данных вызывает исключение, так как имя хоста не может быть разрешено, таким образом сбой вызова активации, а также всех следующих сценариев WLST, который зависит от источника данных.Тем не менее, я не хочу устанавливать цель вручную после запуска и запуска всей среды.Как мне избежать исключения в этом случае?

1 Ответ

0 голосов
/ 13 июня 2018

Установите исходную и минимальную емкость источника данных на 0, это позволяет активировать без тестирования и должно пропустить вашу ошибку.

...